git add -f bin/default/librpc/gen_ndr/packet-dcerpc-*
authorStefan Metzmacher <metze@samba.org>
Mon, 7 Oct 2013 06:26:42 +0000 (08:26 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 4 Nov 2013 11:19:21 +0000 (12:19 +0100)
116 files changed:
bin/default/librpc/gen_ndr/packet-dcerpc-atsvc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-atsvc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-audiosrv.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-audiosrv.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-auth.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-auth.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-browser.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-browser.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dbgidl.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dbgidl.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dfs.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dfs.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dns.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dns.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dsbackup.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dsbackup.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dssetup.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-dssetup.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-echo.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-echo.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-efs.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-efs.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-epmapper.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-epmapper.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-file_id.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-file_id.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-frsapi.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-frsapi.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-initshutdown.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-initshutdown.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-keysvc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-keysvc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-krb5pac.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-krb5pac.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-lsa.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-lsa.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-mgmt.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-mgmt.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-misc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-misc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-msgsvc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-msgsvc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-nbt.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-nbt.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-notify.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-notify.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-orpc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-orpc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-oxidresolver.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-oxidresolver.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-policyagent.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-policyagent.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-remact.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-remact.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-rot.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-rot.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-samr.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-samr.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-scerpc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-scerpc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-schannel.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-schannel.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-server_id.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-server_id.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-smb_acl.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-smb_acl.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-trkwks.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-trkwks.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-unixinfo.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-unixinfo.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-w32time.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-w32time.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-winreg.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-winreg.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-wzcsvc.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-wzcsvc.h [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-xattr.c [new file with mode: 0644]
bin/default/librpc/gen_ndr/packet-dcerpc-xattr.h [new file with mode: 0644]

diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-atsvc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-atsvc.c
new file mode 100644 (file)
index 0000000..7401107
--- /dev/null
@@ -0,0 +1,1637 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/atsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/atsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-atsvc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_atsvc = -1;
+static gint ett_atsvc_atsvc_DaysOfMonth = -1;
+static gint ett_atsvc_atsvc_Flags = -1;
+static gint ett_atsvc_atsvc_DaysOfWeek = -1;
+static gint ett_atsvc_atsvc_JobInfo = -1;
+static gint ett_atsvc_atsvc_JobEnumInfo = -1;
+static gint ett_atsvc_atsvc_enum_ctr = -1;
+
+
+/* Header field declarations */
+static gint hf_atsvc_atsvc_JobEnumInfo_days_of_month = -1;
+static gint hf_atsvc_atsvc_JobEnum_resume_handle = -1;
+static gint hf_atsvc_atsvc_JobEnum_servername = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eight = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Third = -1;
+static gint hf_atsvc_atsvc_JobInfo_days_of_week = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyseventh = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_job_id = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Seventeenth = -1;
+static gint hf_atsvc_atsvc_JobGetInfo_job_info = -1;
+static gint hf_atsvc_atsvc_JobDel_servername = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fifth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thitteenth = -1;
+static gint hf_atsvc_atsvc_enum_ctr_entries_read = -1;
+static gint hf_atsvc_atsvc_enum_ctr_first_entry = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE = -1;
+static gint hf_atsvc_opnum = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eighteenth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Ninteenth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentysecond = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Second = -1;
+static gint hf_atsvc_status = -1;
+static gint hf_atsvc_atsvc_JobEnum_ctr = -1;
+static gint hf_atsvc_atsvc_JobInfo_command = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Sixteenth = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_command = -1;
+static gint hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE = -1;
+static gint hf_atsvc_atsvc_JobAdd_servername = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fourth = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_days_of_week = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_First = -1;
+static gint hf_atsvc_atsvc_JobEnum_total_entries = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_job_time = -1;
+static gint hf_atsvc_atsvc_JobAdd_job_id = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyninth = -1;
+static gint hf_atsvc_atsvc_JobDel_max_job_id = -1;
+static gint hf_atsvc_atsvc_JobGetInfo_job_id = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentythird = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fifteenth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyeighth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twelfth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY = -1;
+static gint hf_atsvc_atsvc_JobInfo_flags = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Seventh = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfirst = -1;
+static gint hf_atsvc_atsvc_JobGetInfo_servername = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Tenth = -1;
+static gint hf_atsvc_atsvc_JobAdd_job_info = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Fourteenth = -1;
+static gint hf_atsvc_atsvc_JobEnum_preferred_max_len = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfourth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Thirtieth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentyfifth = -1;
+static gint hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Sixth = -1;
+static gint hf_atsvc_atsvc_JobDel_min_job_id = -1;
+static gint hf_atsvc_atsvc_JobInfo_job_time = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Ninth = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Eleventh = -1;
+static gint hf_atsvc_atsvc_DaysOfMonth_Twentysixth = -1;
+static gint hf_atsvc_atsvc_JobInfo_days_of_month = -1;
+static gint hf_atsvc_atsvc_JobEnumInfo_flags = -1;
+
+static gint proto_dcerpc_atsvc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_atsvc = {
+       0x1ff70682, 0x0a51, 0x30e8,
+       { 0x07, 0x6d, 0x74, 0x0b, 0xe8, 0xce, 0xe9, 0x8b }
+};
+static guint16 ver_dcerpc_atsvc = 1;
+
+static const true_false_string atsvc_DaysOfMonth_First_tfs = {
+   "First is SET",
+   "First is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Second_tfs = {
+   "Second is SET",
+   "Second is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Third_tfs = {
+   "Third is SET",
+   "Third is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Fourth_tfs = {
+   "Fourth is SET",
+   "Fourth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Fifth_tfs = {
+   "Fifth is SET",
+   "Fifth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Sixth_tfs = {
+   "Sixth is SET",
+   "Sixth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Seventh_tfs = {
+   "Seventh is SET",
+   "Seventh is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Eight_tfs = {
+   "Eight is SET",
+   "Eight is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Ninth_tfs = {
+   "Ninth is SET",
+   "Ninth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Tenth_tfs = {
+   "Tenth is SET",
+   "Tenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Eleventh_tfs = {
+   "Eleventh is SET",
+   "Eleventh is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twelfth_tfs = {
+   "Twelfth is SET",
+   "Twelfth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Thitteenth_tfs = {
+   "Thitteenth is SET",
+   "Thitteenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Fourteenth_tfs = {
+   "Fourteenth is SET",
+   "Fourteenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Fifteenth_tfs = {
+   "Fifteenth is SET",
+   "Fifteenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Sixteenth_tfs = {
+   "Sixteenth is SET",
+   "Sixteenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Seventeenth_tfs = {
+   "Seventeenth is SET",
+   "Seventeenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Eighteenth_tfs = {
+   "Eighteenth is SET",
+   "Eighteenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Ninteenth_tfs = {
+   "Ninteenth is SET",
+   "Ninteenth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyth_tfs = {
+   "Twentyth is SET",
+   "Twentyth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyfirst_tfs = {
+   "Twentyfirst is SET",
+   "Twentyfirst is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentysecond_tfs = {
+   "Twentysecond is SET",
+   "Twentysecond is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentythird_tfs = {
+   "Twentythird is SET",
+   "Twentythird is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyfourth_tfs = {
+   "Twentyfourth is SET",
+   "Twentyfourth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyfifth_tfs = {
+   "Twentyfifth is SET",
+   "Twentyfifth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentysixth_tfs = {
+   "Twentysixth is SET",
+   "Twentysixth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyseventh_tfs = {
+   "Twentyseventh is SET",
+   "Twentyseventh is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyeighth_tfs = {
+   "Twentyeighth is SET",
+   "Twentyeighth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Twentyninth_tfs = {
+   "Twentyninth is SET",
+   "Twentyninth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Thirtieth_tfs = {
+   "Thirtieth is SET",
+   "Thirtieth is NOT SET",
+};
+static const true_false_string atsvc_DaysOfMonth_Thirtyfirst_tfs = {
+   "Thirtyfirst is SET",
+   "Thirtyfirst is NOT SET",
+};
+static const true_false_string atsvc_Flags_JOB_RUN_PERIODICALLY_tfs = {
+   "JOB_RUN_PERIODICALLY is SET",
+   "JOB_RUN_PERIODICALLY is NOT SET",
+};
+static const true_false_string atsvc_Flags_JOB_EXEC_ERROR_tfs = {
+   "JOB_EXEC_ERROR is SET",
+   "JOB_EXEC_ERROR is NOT SET",
+};
+static const true_false_string atsvc_Flags_JOB_RUNS_TODAY_tfs = {
+   "JOB_RUNS_TODAY is SET",
+   "JOB_RUNS_TODAY is NOT SET",
+};
+static const true_false_string atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs = {
+   "JOB_ADD_CURRENT_DATE is SET",
+   "JOB_ADD_CURRENT_DATE is NOT SET",
+};
+static const true_false_string atsvc_Flags_JOB_NONINTERACTIVE_tfs = {
+   "JOB_NONINTERACTIVE is SET",
+   "JOB_NONINTERACTIVE is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs = {
+   "DAYSOFWEEK_MONDAY is SET",
+   "DAYSOFWEEK_MONDAY is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs = {
+   "DAYSOFWEEK_TUESDAY is SET",
+   "DAYSOFWEEK_TUESDAY is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs = {
+   "DAYSOFWEEK_WEDNESDAY is SET",
+   "DAYSOFWEEK_WEDNESDAY is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs = {
+   "DAYSOFWEEK_THURSDAY is SET",
+   "DAYSOFWEEK_THURSDAY is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs = {
+   "DAYSOFWEEK_FRIDAY is SET",
+   "DAYSOFWEEK_FRIDAY is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs = {
+   "DAYSOFWEEK_SATURDAY is SET",
+   "DAYSOFWEEK_SATURDAY is NOT SET",
+};
+static const true_false_string atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs = {
+   "DAYSOFWEEK_SUNDAY is SET",
+   "DAYSOFWEEK_SUNDAY is NOT SET",
+};
+static int atsvc_dissect_element_JobInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnumInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_enum_ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_enum_ctr_first_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_enum_ctr_first_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_enum_ctr_first_entry__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobAdd_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobAdd_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobAdd_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobAdd_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobAdd_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobAdd_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobDel_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobDel_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobDel_min_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobDel_max_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_preferred_max_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobGetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobGetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobGetInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobGetInfo_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobGetInfo_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int atsvc_dissect_element_JobGetInfo_job_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL:        First =  0x00000001 , */
+/* IDL:        Second =  0x00000002 , */
+/* IDL:        Third =  0x00000004 , */
+/* IDL:        Fourth =  0x00000008 , */
+/* IDL:        Fifth =  0x00000010 , */
+/* IDL:        Sixth =  0x00000020 , */
+/* IDL:        Seventh =  0x00000040 , */
+/* IDL:        Eight =  0x00000080 , */
+/* IDL:        Ninth =  0x00000100 , */
+/* IDL:        Tenth =  0x00000200 , */
+/* IDL:        Eleventh =  0x00000400 , */
+/* IDL:        Twelfth =  0x00000800 , */
+/* IDL:        Thitteenth =  0x00001000 , */
+/* IDL:        Fourteenth =  0x00002000 , */
+/* IDL:        Fifteenth =  0x00004000 , */
+/* IDL:        Sixteenth =  0x00008000 , */
+/* IDL:        Seventeenth =  0x00010000 , */
+/* IDL:        Eighteenth =  0x00020000 , */
+/* IDL:        Ninteenth =  0x00040000 , */
+/* IDL:        Twentyth =  0x00080000 , */
+/* IDL:        Twentyfirst =  0x00100000 , */
+/* IDL:        Twentysecond =  0x00200000 , */
+/* IDL:        Twentythird =  0x00400000 , */
+/* IDL:        Twentyfourth =  0x00800000 , */
+/* IDL:        Twentyfifth =  0x01000000 , */
+/* IDL:        Twentysixth =  0x02000000 , */
+/* IDL:        Twentyseventh =  0x04000000 , */
+/* IDL:        Twentyeighth =  0x08000000 , */
+/* IDL:        Twentyninth =  0x10000000 , */
+/* IDL:        Thirtieth =  0x20000000 , */
+/* IDL:        Thirtyfirst =  0x40000000 , */
+/* IDL: } */
+
+int
+atsvc_dissect_bitmap_DaysOfMonth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_atsvc_atsvc_DaysOfMonth);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_First, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "First");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Second, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "Second");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Third, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "Third");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Fourth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "Fourth");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Fifth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "Fifth");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Sixth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "Sixth");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Seventh, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "Seventh");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Eight, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "Eight");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Ninth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "Ninth");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Tenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "Tenth");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Eleventh, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "Eleventh");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twelfth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "Twelfth");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Thitteenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "Thitteenth");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Fourteenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "Fourteenth");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Fifteenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "Fifteenth");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Sixteenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "Sixteenth");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Seventeenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "Seventeenth");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Eighteenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "Eighteenth");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Ninteenth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "Ninteenth");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "Twentyth");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyfirst, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "Twentyfirst");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentysecond, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "Twentysecond");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentythird, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "Twentythird");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyfourth, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "Twentyfourth");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyfifth, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "Twentyfifth");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentysixth, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "Twentysixth");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyseventh, tvb, offset-4, 4, flags);
+       if (flags&( 0x04000000 )){
+               proto_item_append_text(item, "Twentyseventh");
+               if (flags & (~( 0x04000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04000000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyeighth, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "Twentyeighth");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Twentyninth, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "Twentyninth");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Thirtieth, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "Thirtieth");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "Thirtyfirst");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        JOB_RUN_PERIODICALLY =  0x01 , */
+/* IDL:        JOB_EXEC_ERROR =  0x02 , */
+/* IDL:        JOB_RUNS_TODAY =  0x04 , */
+/* IDL:        JOB_ADD_CURRENT_DATE =  0x08 , */
+/* IDL:        JOB_NONINTERACTIVE =  0x10 , */
+/* IDL: } */
+
+int
+atsvc_dissect_bitmap_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint8 flags;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_atsvc_atsvc_Flags);
+       }
+
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY, tvb, offset-1, 1, flags);
+       if (flags&( 0x01 )){
+               proto_item_append_text(item, "JOB_RUN_PERIODICALLY");
+               if (flags & (~( 0x01 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR, tvb, offset-1, 1, flags);
+       if (flags&( 0x02 )){
+               proto_item_append_text(item, "JOB_EXEC_ERROR");
+               if (flags & (~( 0x02 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x04 )){
+               proto_item_append_text(item, "JOB_RUNS_TODAY");
+               if (flags & (~( 0x04 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE, tvb, offset-1, 1, flags);
+       if (flags&( 0x08 )){
+               proto_item_append_text(item, "JOB_ADD_CURRENT_DATE");
+               if (flags & (~( 0x08 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE, tvb, offset-1, 1, flags);
+       if (flags&( 0x10 )){
+               proto_item_append_text(item, "JOB_NONINTERACTIVE");
+               if (flags & (~( 0x10 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DAYSOFWEEK_MONDAY =  0x01 , */
+/* IDL:        DAYSOFWEEK_TUESDAY =  0x02 , */
+/* IDL:        DAYSOFWEEK_WEDNESDAY =  0x04 , */
+/* IDL:        DAYSOFWEEK_THURSDAY =  0x08 , */
+/* IDL:        DAYSOFWEEK_FRIDAY =  0x10 , */
+/* IDL:        DAYSOFWEEK_SATURDAY =  0x20 , */
+/* IDL:        DAYSOFWEEK_SUNDAY =  0x40 , */
+/* IDL: } */
+
+int
+atsvc_dissect_bitmap_DaysOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint8 flags;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_atsvc_atsvc_DaysOfWeek);
+       }
+
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x01 )){
+               proto_item_append_text(item, "DAYSOFWEEK_MONDAY");
+               if (flags & (~( 0x01 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x02 )){
+               proto_item_append_text(item, "DAYSOFWEEK_TUESDAY");
+               if (flags & (~( 0x02 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x04 )){
+               proto_item_append_text(item, "DAYSOFWEEK_WEDNESDAY");
+               if (flags & (~( 0x04 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x08 )){
+               proto_item_append_text(item, "DAYSOFWEEK_THURSDAY");
+               if (flags & (~( 0x08 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x10 )){
+               proto_item_append_text(item, "DAYSOFWEEK_FRIDAY");
+               if (flags & (~( 0x10 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x20 )){
+               proto_item_append_text(item, "DAYSOFWEEK_SATURDAY");
+               if (flags & (~( 0x20 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20 ));
+
+       proto_tree_add_boolean(tree, hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY, tvb, offset-1, 1, flags);
+       if (flags&( 0x40 )){
+               proto_item_append_text(item, "DAYSOFWEEK_SUNDAY");
+               if (flags & (~( 0x40 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_time; */
+/* IDL:        atsvc_DaysOfMonth days_of_month; */
+/* IDL:        atsvc_DaysOfWeek days_of_week; */
+/* IDL:        atsvc_Flags flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *command; */
+/* IDL: } */
+
+static int
+atsvc_dissect_element_JobInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobInfo_job_time, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobInfo_days_of_month, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobInfo_days_of_week, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobInfo_flags, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobInfo_command_, NDR_POINTER_UNIQUE, "Pointer to Command (uint16)",hf_atsvc_atsvc_JobInfo_command);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_atsvc_atsvc_JobInfo_command, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+atsvc_dissect_struct_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobInfo);
+       }
+       
+       offset = atsvc_dissect_element_JobInfo_job_time(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobInfo_days_of_month(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobInfo_days_of_week(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobInfo_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobInfo_command(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        uint32 job_time; */
+/* IDL:        atsvc_DaysOfMonth days_of_month; */
+/* IDL:        atsvc_DaysOfWeek days_of_week; */
+/* IDL:        atsvc_Flags flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *command; */
+/* IDL: } */
+
+static int
+atsvc_dissect_element_JobEnumInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnumInfo_job_id, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnumInfo_job_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnumInfo_job_time, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnumInfo_days_of_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_bitmap_DaysOfMonth(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_month, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnumInfo_days_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_bitmap_DaysOfWeek(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnumInfo_days_of_week, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnumInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_bitmap_Flags(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnumInfo_flags, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnumInfo_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobEnumInfo_command_, NDR_POINTER_UNIQUE, "Pointer to Command (uint16)",hf_atsvc_atsvc_JobEnumInfo_command);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnumInfo_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_atsvc_atsvc_JobEnumInfo_command, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+atsvc_dissect_struct_JobEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_atsvc_atsvc_JobEnumInfo);
+       }
+       
+       offset = atsvc_dissect_element_JobEnumInfo_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobEnumInfo_job_time(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobEnumInfo_days_of_month(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobEnumInfo_days_of_week(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobEnumInfo_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_JobEnumInfo_command(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 entries_read; */
+/* IDL:        [unique(1)] [size_is(entries_read)] atsvc_JobEnumInfo *first_entry; */
+/* IDL: } */
+
+static int
+atsvc_dissect_element_enum_ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_enum_ctr_entries_read, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_enum_ctr_first_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_enum_ctr_first_entry_, NDR_POINTER_UNIQUE, "Pointer to First Entry (atsvc_JobEnumInfo)",hf_atsvc_atsvc_enum_ctr_first_entry);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_enum_ctr_first_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_enum_ctr_first_entry__);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_enum_ctr_first_entry__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_struct_JobEnumInfo(tvb,offset,pinfo,tree,drep,hf_atsvc_atsvc_enum_ctr_first_entry,0);
+
+       return offset;
+}
+
+int
+atsvc_dissect_struct_enum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_atsvc_atsvc_enum_ctr);
+       }
+       
+       offset = atsvc_dissect_element_enum_ctr_entries_read(tvb, offset, pinfo, tree, drep);
+
+       offset = atsvc_dissect_element_enum_ctr_first_entry(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobAdd_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobAdd_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_atsvc_JobAdd_servername);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobAdd_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_atsvc_atsvc_JobAdd_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobAdd_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobAdd_job_info_, NDR_POINTER_REF, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_atsvc_JobAdd_job_info);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobAdd_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,drep,hf_atsvc_atsvc_JobAdd_job_info,0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobAdd_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobAdd_job_id_, NDR_POINTER_REF, "Pointer to Job Id (uint32)",hf_atsvc_atsvc_JobAdd_job_id);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobAdd_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobAdd_job_id, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS atsvc_JobAdd( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [ref] [in] atsvc_JobInfo *job_info, */
+/* IDL: [out] [ref] uint32 *job_id */
+/* IDL: ); */
+
+static int
+atsvc_dissect_JobAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="JobAdd";
+       offset = atsvc_dissect_element_JobAdd_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+atsvc_dissect_JobAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="JobAdd";
+       offset = atsvc_dissect_element_JobAdd_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobAdd_job_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobDel_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobDel_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_atsvc_JobDel_servername);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobDel_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_atsvc_atsvc_JobDel_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobDel_min_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobDel_min_job_id, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobDel_max_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobDel_max_job_id, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS atsvc_JobDel( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 min_job_id, */
+/* IDL: [in] uint32 max_job_id */
+/* IDL: ); */
+
+static int
+atsvc_dissect_JobDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="JobDel";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+atsvc_dissect_JobDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="JobDel";
+       offset = atsvc_dissect_element_JobDel_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobDel_min_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobDel_max_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobEnum_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_atsvc_JobEnum_servername);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_atsvc_atsvc_JobEnum_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobEnum_ctr_, NDR_POINTER_REF, "Pointer to Ctr (atsvc_enum_ctr)",hf_atsvc_atsvc_JobEnum_ctr);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_struct_enum_ctr(tvb,offset,pinfo,tree,drep,hf_atsvc_atsvc_JobEnum_ctr,0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_preferred_max_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnum_preferred_max_len, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobEnum_total_entries_, NDR_POINTER_REF, "Pointer to Total Entries (uint32)",hf_atsvc_atsvc_JobEnum_total_entries);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnum_total_entries, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_atsvc_atsvc_JobEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS atsvc_JobEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [out] [ref] [in] atsvc_enum_ctr *ctr, */
+/* IDL: [in] uint32 preferred_max_len, */
+/* IDL: [out] [ref] uint32 *total_entries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+atsvc_dissect_JobEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="JobEnum";
+       offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = atsvc_dissect_element_JobEnum_total_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+atsvc_dissect_JobEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="JobEnum";
+       offset = atsvc_dissect_element_JobEnum_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobEnum_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobEnum_preferred_max_len(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobGetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobGetInfo_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_atsvc_atsvc_JobGetInfo_servername);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobGetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_atsvc_atsvc_JobGetInfo_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobGetInfo_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_atsvc_atsvc_JobGetInfo_job_id, 0);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobGetInfo_job_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobGetInfo_job_info_, NDR_POINTER_REF, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_atsvc_JobGetInfo_job_info);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobGetInfo_job_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, atsvc_dissect_element_JobGetInfo_job_info__, NDR_POINTER_UNIQUE, "Pointer to Job Info (atsvc_JobInfo)",hf_atsvc_atsvc_JobGetInfo_job_info);
+
+       return offset;
+}
+
+static int
+atsvc_dissect_element_JobGetInfo_job_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = atsvc_dissect_struct_JobInfo(tvb,offset,pinfo,tree,drep,hf_atsvc_atsvc_JobGetInfo_job_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS atsvc_JobGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 job_id, */
+/* IDL: [out] [ref] atsvc_JobInfo **job_info */
+/* IDL: ); */
+
+static int
+atsvc_dissect_JobGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="JobGetInfo";
+       offset = atsvc_dissect_element_JobGetInfo_job_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_atsvc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+atsvc_dissect_JobGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="JobGetInfo";
+       offset = atsvc_dissect_element_JobGetInfo_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = atsvc_dissect_element_JobGetInfo_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector atsvc_dissectors[] = {
+       { 0, "JobAdd",
+          atsvc_dissect_JobAdd_request, atsvc_dissect_JobAdd_response},
+       { 1, "JobDel",
+          atsvc_dissect_JobDel_request, atsvc_dissect_JobDel_response},
+       { 2, "JobEnum",
+          atsvc_dissect_JobEnum_request, atsvc_dissect_JobEnum_response},
+       { 3, "JobGetInfo",
+          atsvc_dissect_JobGetInfo_request, atsvc_dissect_JobGetInfo_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_atsvc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_atsvc_atsvc_JobEnumInfo_days_of_month,
+         { "Days Of Month", "atsvc.atsvc_JobEnumInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnum_resume_handle,
+         { "Resume Handle", "atsvc.atsvc_JobEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnum_servername,
+         { "Servername", "atsvc.atsvc_JobEnum.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY,
+         { "Daysofweek Thursday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_THURSDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_THURSDAY_tfs), ( 0x08 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Eight,
+         { "Eight", "atsvc.atsvc_DaysOfMonth.Eight", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eight_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Third,
+         { "Third", "atsvc.atsvc_DaysOfMonth.Third", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Third_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobInfo_days_of_week,
+         { "Days Of Week", "atsvc.atsvc_JobInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyseventh,
+         { "Twentyseventh", "atsvc.atsvc_DaysOfMonth.Twentyseventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyseventh_tfs), ( 0x04000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnumInfo_job_id,
+         { "Job Id", "atsvc.atsvc_JobEnumInfo.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyth,
+         { "Twentyth", "atsvc.atsvc_DaysOfMonth.Twentyth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyth_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Seventeenth,
+         { "Seventeenth", "atsvc.atsvc_DaysOfMonth.Seventeenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventeenth_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobGetInfo_job_info,
+         { "Job Info", "atsvc.atsvc_JobGetInfo.job_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobDel_servername,
+         { "Servername", "atsvc.atsvc_JobDel.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_Flags_JOB_RUN_PERIODICALLY,
+         { "Job Run Periodically", "atsvc.atsvc_Flags.JOB_RUN_PERIODICALLY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUN_PERIODICALLY_tfs), ( 0x01 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Fifth,
+         { "Fifth", "atsvc.atsvc_DaysOfMonth.Fifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifth_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Thitteenth,
+         { "Thitteenth", "atsvc.atsvc_DaysOfMonth.Thitteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thitteenth_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_enum_ctr_entries_read,
+         { "Entries Read", "atsvc.atsvc_enum_ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_enum_ctr_first_entry,
+         { "First Entry", "atsvc.atsvc_enum_ctr.first_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_Flags_JOB_EXEC_ERROR,
+         { "Job Exec Error", "atsvc.atsvc_Flags.JOB_EXEC_ERROR", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_EXEC_ERROR_tfs), ( 0x02 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_Flags_JOB_NONINTERACTIVE,
+         { "Job Noninteractive", "atsvc.atsvc_Flags.JOB_NONINTERACTIVE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_NONINTERACTIVE_tfs), ( 0x10 ), NULL, HFILL }},
+       { &hf_atsvc_opnum,
+         { "Operation", "atsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_Flags_JOB_RUNS_TODAY,
+         { "Job Runs Today", "atsvc.atsvc_Flags.JOB_RUNS_TODAY", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_RUNS_TODAY_tfs), ( 0x04 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Eighteenth,
+         { "Eighteenth", "atsvc.atsvc_DaysOfMonth.Eighteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eighteenth_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY,
+         { "Daysofweek Saturday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SATURDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SATURDAY_tfs), ( 0x20 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Ninteenth,
+         { "Ninteenth", "atsvc.atsvc_DaysOfMonth.Ninteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninteenth_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY,
+         { "Daysofweek Monday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_MONDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_MONDAY_tfs), ( 0x01 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentysecond,
+         { "Twentysecond", "atsvc.atsvc_DaysOfMonth.Twentysecond", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysecond_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY,
+         { "Daysofweek Friday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_FRIDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_FRIDAY_tfs), ( 0x10 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Second,
+         { "Second", "atsvc.atsvc_DaysOfMonth.Second", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Second_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_atsvc_status,
+         { "NT Error", "atsvc.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnum_ctr,
+         { "Ctr", "atsvc.atsvc_JobEnum.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobInfo_command,
+         { "Command", "atsvc.atsvc_JobInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Sixteenth,
+         { "Sixteenth", "atsvc.atsvc_DaysOfMonth.Sixteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixteenth_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnumInfo_command,
+         { "Command", "atsvc.atsvc_JobEnumInfo.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_Flags_JOB_ADD_CURRENT_DATE,
+         { "Job Add Current Date", "atsvc.atsvc_Flags.JOB_ADD_CURRENT_DATE", FT_BOOLEAN, 8, TFS(&atsvc_Flags_JOB_ADD_CURRENT_DATE_tfs), ( 0x08 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobAdd_servername,
+         { "Servername", "atsvc.atsvc_JobAdd.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Thirtyfirst,
+         { "Thirtyfirst", "atsvc.atsvc_DaysOfMonth.Thirtyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtyfirst_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Fourth,
+         { "Fourth", "atsvc.atsvc_DaysOfMonth.Fourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourth_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnumInfo_days_of_week,
+         { "Days Of Week", "atsvc.atsvc_JobEnumInfo.days_of_week", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_First,
+         { "First", "atsvc.atsvc_DaysOfMonth.First", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_First_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnum_total_entries,
+         { "Total Entries", "atsvc.atsvc_JobEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnumInfo_job_time,
+         { "Job Time", "atsvc.atsvc_JobEnumInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobAdd_job_id,
+         { "Job Id", "atsvc.atsvc_JobAdd.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyninth,
+         { "Twentyninth", "atsvc.atsvc_DaysOfMonth.Twentyninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyninth_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobDel_max_job_id,
+         { "Max Job Id", "atsvc.atsvc_JobDel.max_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobGetInfo_job_id,
+         { "Job Id", "atsvc.atsvc_JobGetInfo.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY,
+         { "Daysofweek Tuesday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_TUESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_TUESDAY_tfs), ( 0x02 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentythird,
+         { "Twentythird", "atsvc.atsvc_DaysOfMonth.Twentythird", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentythird_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Fifteenth,
+         { "Fifteenth", "atsvc.atsvc_DaysOfMonth.Fifteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fifteenth_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyeighth,
+         { "Twentyeighth", "atsvc.atsvc_DaysOfMonth.Twentyeighth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyeighth_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twelfth,
+         { "Twelfth", "atsvc.atsvc_DaysOfMonth.Twelfth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twelfth_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY,
+         { "Daysofweek Wednesday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_WEDNESDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_WEDNESDAY_tfs), ( 0x04 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobInfo_flags,
+         { "Flags", "atsvc.atsvc_JobInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Seventh,
+         { "Seventh", "atsvc.atsvc_DaysOfMonth.Seventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Seventh_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyfirst,
+         { "Twentyfirst", "atsvc.atsvc_DaysOfMonth.Twentyfirst", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfirst_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobGetInfo_servername,
+         { "Servername", "atsvc.atsvc_JobGetInfo.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Tenth,
+         { "Tenth", "atsvc.atsvc_DaysOfMonth.Tenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Tenth_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobAdd_job_info,
+         { "Job Info", "atsvc.atsvc_JobAdd.job_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Fourteenth,
+         { "Fourteenth", "atsvc.atsvc_DaysOfMonth.Fourteenth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Fourteenth_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnum_preferred_max_len,
+         { "Preferred Max Len", "atsvc.atsvc_JobEnum.preferred_max_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyfourth,
+         { "Twentyfourth", "atsvc.atsvc_DaysOfMonth.Twentyfourth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfourth_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Thirtieth,
+         { "Thirtieth", "atsvc.atsvc_DaysOfMonth.Thirtieth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Thirtieth_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentyfifth,
+         { "Twentyfifth", "atsvc.atsvc_DaysOfMonth.Twentyfifth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentyfifth_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY,
+         { "Daysofweek Sunday", "atsvc.atsvc_DaysOfWeek.DAYSOFWEEK_SUNDAY", FT_BOOLEAN, 8, TFS(&atsvc_DaysOfWeek_DAYSOFWEEK_SUNDAY_tfs), ( 0x40 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Sixth,
+         { "Sixth", "atsvc.atsvc_DaysOfMonth.Sixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Sixth_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobDel_min_job_id,
+         { "Min Job Id", "atsvc.atsvc_JobDel.min_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobInfo_job_time,
+         { "Job Time", "atsvc.atsvc_JobInfo.job_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Ninth,
+         { "Ninth", "atsvc.atsvc_DaysOfMonth.Ninth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Ninth_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Eleventh,
+         { "Eleventh", "atsvc.atsvc_DaysOfMonth.Eleventh", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Eleventh_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_DaysOfMonth_Twentysixth,
+         { "Twentysixth", "atsvc.atsvc_DaysOfMonth.Twentysixth", FT_BOOLEAN, 32, TFS(&atsvc_DaysOfMonth_Twentysixth_tfs), ( 0x02000000 ), NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobInfo_days_of_month,
+         { "Days Of Month", "atsvc.atsvc_JobInfo.days_of_month", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_atsvc_atsvc_JobEnumInfo_flags,
+         { "Flags", "atsvc.atsvc_JobEnumInfo.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_atsvc,
+               &ett_atsvc_atsvc_DaysOfMonth,
+               &ett_atsvc_atsvc_Flags,
+               &ett_atsvc_atsvc_DaysOfWeek,
+               &ett_atsvc_atsvc_JobInfo,
+               &ett_atsvc_atsvc_JobEnumInfo,
+               &ett_atsvc_atsvc_enum_ctr,
+       };
+
+       proto_dcerpc_atsvc = proto_register_protocol("Microsoft AT-Scheduler Service", "ATSVC", "atsvc");
+       proto_register_field_array(proto_dcerpc_atsvc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_atsvc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_atsvc, ett_dcerpc_atsvc,
+               &uuid_dcerpc_atsvc, ver_dcerpc_atsvc,
+               atsvc_dissectors, hf_atsvc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-atsvc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-atsvc.h
new file mode 100644 (file)
index 0000000..ccab9eb
--- /dev/null
@@ -0,0 +1,25 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/atsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/atsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_ATSVC_H
+#define __PACKET_DCERPC_ATSVC_H
+
+int atsvc_dissect_bitmap_DaysOfMonth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int atsvc_dissect_bitmap_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int atsvc_dissect_bitmap_DaysOfWeek(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int atsvc_dissect_struct_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int atsvc_dissect_struct_JobEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int atsvc_dissect_struct_enum_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_ATSVC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-audiosrv.c b/bin/default/librpc/gen_ndr/packet-dcerpc-audiosrv.c
new file mode 100644 (file)
index 0000000..c5646b0
--- /dev/null
@@ -0,0 +1,376 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/audiosrv.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/audiosrv.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-audiosrv.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_audiosrv = -1;
+
+
+/* Header field declarations */
+static gint hf_audiosrv_opnum = -1;
+
+static gint proto_dcerpc_audiosrv = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_audiosrv = {
+       0x0a74ef1c, 0x41a4, 0x4e06,
+       { 0x83, 0xae, 0xdc, 0x74, 0xfb, 0x1c, 0xdd, 0x53 }
+};
+static guint16 ver_dcerpc_audiosrv = 1;
+
+
+/* IDL: void audiosrv_CreatezoneFactoriesList( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_CreatezoneFactoriesList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreatezoneFactoriesList";
+       return offset;
+}
+
+static int
+audiosrv_dissect_CreatezoneFactoriesList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreatezoneFactoriesList";
+       return offset;
+}
+
+/* IDL: void audiosrv_CreateGfxFactoriesList( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_CreateGfxFactoriesList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateGfxFactoriesList";
+       return offset;
+}
+
+static int
+audiosrv_dissect_CreateGfxFactoriesList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateGfxFactoriesList";
+       return offset;
+}
+
+/* IDL: void audiosrv_CreateGfxList( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_CreateGfxList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateGfxList";
+       return offset;
+}
+
+static int
+audiosrv_dissect_CreateGfxList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateGfxList";
+       return offset;
+}
+
+/* IDL: void audiosrv_RemoveGfx( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_RemoveGfx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RemoveGfx";
+       return offset;
+}
+
+static int
+audiosrv_dissect_RemoveGfx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RemoveGfx";
+       return offset;
+}
+
+/* IDL: void audiosrv_AddGfx( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_AddGfx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddGfx";
+       return offset;
+}
+
+static int
+audiosrv_dissect_AddGfx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddGfx";
+       return offset;
+}
+
+/* IDL: void audiosrv_ModifyGfx( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_ModifyGfx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ModifyGfx";
+       return offset;
+}
+
+static int
+audiosrv_dissect_ModifyGfx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ModifyGfx";
+       return offset;
+}
+
+/* IDL: void audiosrv_OpenGfx( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_OpenGfx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenGfx";
+       return offset;
+}
+
+static int
+audiosrv_dissect_OpenGfx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenGfx";
+       return offset;
+}
+
+/* IDL: void audiosrv_Logon( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_Logon_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Logon";
+       return offset;
+}
+
+static int
+audiosrv_dissect_Logon_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Logon";
+       return offset;
+}
+
+/* IDL: void audiosrv_Logoff( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_Logoff_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Logoff";
+       return offset;
+}
+
+static int
+audiosrv_dissect_Logoff_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Logoff";
+       return offset;
+}
+
+/* IDL: void audiosrv_RegisterSessionNotificationEvent( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_RegisterSessionNotificationEvent_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RegisterSessionNotificationEvent";
+       return offset;
+}
+
+static int
+audiosrv_dissect_RegisterSessionNotificationEvent_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RegisterSessionNotificationEvent";
+       return offset;
+}
+
+/* IDL: void audiosrv_UnregisterSessionNotificationEvent( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_UnregisterSessionNotificationEvent_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="UnregisterSessionNotificationEvent";
+       return offset;
+}
+
+static int
+audiosrv_dissect_UnregisterSessionNotificationEvent_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="UnregisterSessionNotificationEvent";
+       return offset;
+}
+
+/* IDL: void audiosrv_SessionConnectState( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_SessionConnectState_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SessionConnectState";
+       return offset;
+}
+
+static int
+audiosrv_dissect_SessionConnectState_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SessionConnectState";
+       return offset;
+}
+
+/* IDL: void audiosrv_DriverOpenDrvRegKey( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_DriverOpenDrvRegKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DriverOpenDrvRegKey";
+       return offset;
+}
+
+static int
+audiosrv_dissect_DriverOpenDrvRegKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DriverOpenDrvRegKey";
+       return offset;
+}
+
+/* IDL: void audiosrv_AdvisePreferredDeviceChange( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_AdvisePreferredDeviceChange_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AdvisePreferredDeviceChange";
+       return offset;
+}
+
+static int
+audiosrv_dissect_AdvisePreferredDeviceChange_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AdvisePreferredDeviceChange";
+       return offset;
+}
+
+/* IDL: void audiosrv_GetPnpInfo( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+audiosrv_dissect_GetPnpInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPnpInfo";
+       return offset;
+}
+
+static int
+audiosrv_dissect_GetPnpInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPnpInfo";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector audiosrv_dissectors[] = {
+       { 0, "CreatezoneFactoriesList",
+          audiosrv_dissect_CreatezoneFactoriesList_request, audiosrv_dissect_CreatezoneFactoriesList_response},
+       { 1, "CreateGfxFactoriesList",
+          audiosrv_dissect_CreateGfxFactoriesList_request, audiosrv_dissect_CreateGfxFactoriesList_response},
+       { 2, "CreateGfxList",
+          audiosrv_dissect_CreateGfxList_request, audiosrv_dissect_CreateGfxList_response},
+       { 3, "RemoveGfx",
+          audiosrv_dissect_RemoveGfx_request, audiosrv_dissect_RemoveGfx_response},
+       { 4, "AddGfx",
+          audiosrv_dissect_AddGfx_request, audiosrv_dissect_AddGfx_response},
+       { 5, "ModifyGfx",
+          audiosrv_dissect_ModifyGfx_request, audiosrv_dissect_ModifyGfx_response},
+       { 6, "OpenGfx",
+          audiosrv_dissect_OpenGfx_request, audiosrv_dissect_OpenGfx_response},
+       { 7, "Logon",
+          audiosrv_dissect_Logon_request, audiosrv_dissect_Logon_response},
+       { 8, "Logoff",
+          audiosrv_dissect_Logoff_request, audiosrv_dissect_Logoff_response},
+       { 9, "RegisterSessionNotificationEvent",
+          audiosrv_dissect_RegisterSessionNotificationEvent_request, audiosrv_dissect_RegisterSessionNotificationEvent_response},
+       { 10, "UnregisterSessionNotificationEvent",
+          audiosrv_dissect_UnregisterSessionNotificationEvent_request, audiosrv_dissect_UnregisterSessionNotificationEvent_response},
+       { 11, "SessionConnectState",
+          audiosrv_dissect_SessionConnectState_request, audiosrv_dissect_SessionConnectState_response},
+       { 12, "DriverOpenDrvRegKey",
+          audiosrv_dissect_DriverOpenDrvRegKey_request, audiosrv_dissect_DriverOpenDrvRegKey_response},
+       { 13, "AdvisePreferredDeviceChange",
+          audiosrv_dissect_AdvisePreferredDeviceChange_request, audiosrv_dissect_AdvisePreferredDeviceChange_response},
+       { 14, "GetPnpInfo",
+          audiosrv_dissect_GetPnpInfo_request, audiosrv_dissect_GetPnpInfo_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_audiosrv(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_audiosrv_opnum,
+         { "Operation", "audiosrv.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_audiosrv,
+       };
+
+       proto_dcerpc_audiosrv = proto_register_protocol("Audio Server", "AUDIOSRV", "audiosrv");
+       proto_register_field_array(proto_dcerpc_audiosrv, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_audiosrv(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_audiosrv, ett_dcerpc_audiosrv,
+               &uuid_dcerpc_audiosrv, ver_dcerpc_audiosrv,
+               audiosrv_dissectors, hf_audiosrv_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-audiosrv.h b/bin/default/librpc/gen_ndr/packet-dcerpc-audiosrv.h
new file mode 100644 (file)
index 0000000..d3ee2c4
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/audiosrv.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/audiosrv.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_AUDIOSRV_H
+#define __PACKET_DCERPC_AUDIOSRV_H
+
+#endif /* __PACKET_DCERPC_AUDIOSRV_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-auth.c b/bin/default/librpc/gen_ndr/packet-dcerpc-auth.c
new file mode 100644 (file)
index 0000000..18d857c
--- /dev/null
@@ -0,0 +1,1057 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/auth.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/auth.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-auth.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_auth = -1;
+static gint ett_auth_auth_user_info = -1;
+static gint ett_auth_auth_user_info_torture = -1;
+static gint ett_auth_auth_user_info_unix = -1;
+static gint ett_auth_auth_user_info_dc = -1;
+static gint ett_auth_auth_session_info = -1;
+static gint ett_auth_auth_session_info_transport = -1;
+
+
+/* Header field declarations */
+static gint hf_auth_auth_user_info_dc_sids = -1;
+static gint hf_auth_auth_user_info_acct_flags = -1;
+static gint hf_auth_auth_user_info_profile_path = -1;
+static gint hf_auth_auth_user_info_dc_info = -1;
+static gint hf_auth_auth_user_info_account_name = -1;
+static gint hf_auth_auth_user_info_unix_sanitized_username = -1;
+static gint hf_auth_auth_user_info_logon_server = -1;
+static gint hf_auth_auth_user_info_logon_count = -1;
+static gint hf_auth_auth_user_info_unix_unix_name = -1;
+static gint hf_auth_auth_user_info_domain_name = -1;
+static gint hf_auth_auth_user_info_dc_lm_session_key = -1;
+static gint hf_auth_auth_user_info_logon_script = -1;
+static gint hf_auth_auth_user_info_dc_num_sids = -1;
+static gint hf_auth_auth_session_info_transport_exported_gssapi_credentials = -1;
+static gint hf_auth_auth_user_info_torture_num_dc_sids = -1;
+static gint hf_auth_auth_session_info_transport_session_info = -1;
+static gint hf_auth_opnum = -1;
+static gint hf_auth_auth_session_info_session_key = -1;
+static gint hf_auth_auth_user_info_last_password_change = -1;
+static gint hf_auth_auth_user_info_home_directory = -1;
+static gint hf_auth_auth_session_info_unix_info = -1;
+static gint hf_auth_auth_session_info_security_token = -1;
+static gint hf_auth_auth_user_info_bad_password_count = -1;
+static gint hf_auth_auth_session_info_info = -1;
+static gint hf_auth_auth_user_info_authenticated = -1;
+static gint hf_auth_auth_user_info_full_name = -1;
+static gint hf_auth_auth_user_info_force_password_change = -1;
+static gint hf_auth_auth_user_info_last_logoff = -1;
+static gint hf_auth_auth_session_info_torture = -1;
+static gint hf_auth_auth_user_info_dc_user_session_key = -1;
+static gint hf_auth_auth_session_info_unix_token = -1;
+static gint hf_auth_auth_user_info_last_logon = -1;
+static gint hf_auth_auth_session_info_credentials = -1;
+static gint hf_auth_auth_user_info_torture_dc_sids = -1;
+static gint hf_auth_auth_user_info_allow_password_change = -1;
+static gint hf_auth_auth_user_info_acct_expiry = -1;
+static gint hf_auth_auth_user_info_home_drive = -1;
+
+static gint proto_dcerpc_auth = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_auth = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_auth = 0;
+
+const value_string auth_auth_method_vals[] = {
+       { SEC_AUTH_METHOD_UNAUTHENTICATED, "SEC_AUTH_METHOD_UNAUTHENTICATED" },
+       { SEC_AUTH_METHOD_NTLM, "SEC_AUTH_METHOD_NTLM" },
+       { SEC_AUTH_METHOD_KERBEROS, "SEC_AUTH_METHOD_KERBEROS" },
+{ 0, NULL }
+};
+static int auth_dissect_element_user_info_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_full_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_logon_script_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_profile_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_home_directory_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_home_drive_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_authenticated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_torture_num_dc_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_torture_dc_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_torture_dc_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_unix_unix_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_unix_unix_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_unix_sanitized_username(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_unix_sanitized_username_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_user_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_user_info_dc_lm_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_security_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_security_token_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_unix_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_unix_token_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_unix_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_unix_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_torture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_torture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_transport_session_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_transport_session_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int auth_dissect_element_session_info_transport_exported_gssapi_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        SEC_AUTH_METHOD_UNAUTHENTICATED=0, */
+/* IDL:        SEC_AUTH_METHOD_NTLM=1, */
+/* IDL:        SEC_AUTH_METHOD_KERBEROS=2, */
+/* IDL: } */
+
+int
+auth_dissect_enum_method(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *account_name; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *domain_name; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *full_name; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *logon_script; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *profile_path; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *home_directory; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *home_drive; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *logon_server; */
+/* IDL:        NTTIME last_logon; */
+/* IDL:        NTTIME last_logoff; */
+/* IDL:        NTTIME acct_expiry; */
+/* IDL:        NTTIME last_password_change; */
+/* IDL:        NTTIME allow_password_change; */
+/* IDL:        NTTIME force_password_change; */
+/* IDL:        uint16 logon_count; */
+/* IDL:        uint16 bad_password_count; */
+/* IDL:        uint32 acct_flags; */
+/* IDL:        uint8 authenticated; */
+/* IDL: } */
+
+static int
+auth_dissect_element_user_info_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_account_name_, NDR_POINTER_UNIQUE, "Pointer to Account Name (uint8)",hf_auth_auth_user_info_account_name);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint8)",hf_auth_auth_user_info_domain_name);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_full_name_, NDR_POINTER_UNIQUE, "Pointer to Full Name (uint8)",hf_auth_auth_user_info_full_name);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_full_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_full_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_logon_script_, NDR_POINTER_UNIQUE, "Pointer to Logon Script (uint8)",hf_auth_auth_user_info_logon_script);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_logon_script_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_logon_script, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_profile_path_, NDR_POINTER_UNIQUE, "Pointer to Profile Path (uint8)",hf_auth_auth_user_info_profile_path);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_profile_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_profile_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_home_directory_, NDR_POINTER_UNIQUE, "Pointer to Home Directory (uint8)",hf_auth_auth_user_info_home_directory);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_home_directory_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_home_directory, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_home_drive_, NDR_POINTER_UNIQUE, "Pointer to Home Drive (uint8)",hf_auth_auth_user_info_home_drive);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_home_drive_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_home_drive, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint8)",hf_auth_auth_user_info_logon_server);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_last_logon);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_last_logoff);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_acct_expiry);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_last_password_change);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_allow_password_change);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_force_password_change);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_logon_count, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_bad_password_count, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_authenticated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_authenticated, 0);
+
+       return offset;
+}
+
+int
+auth_dissect_struct_user_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_auth_auth_user_info);
+       }
+       
+       offset = auth_dissect_element_user_info_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_logon_script(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_profile_path(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_home_drive(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_logon_server(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_last_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_last_logoff(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_acct_expiry(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_allow_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_force_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_bad_password_count(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_authenticated(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_dc_sids; */
+/* IDL:        [size_is(num_dc_sids)] dom_sid dc_sids[*]; */
+/* IDL: } */
+
+static int
+auth_dissect_element_user_info_torture_num_dc_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_torture_num_dc_sids, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_torture_dc_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_torture_dc_sids_);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_torture_dc_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_auth_auth_user_info_torture_dc_sids,0);
+
+       return offset;
+}
+
+int
+auth_dissect_struct_user_info_torture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_auth_auth_user_info_torture);
+       }
+       
+       offset = auth_dissect_element_user_info_torture_num_dc_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_torture_dc_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *unix_name; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *sanitized_username; */
+/* IDL: } */
+
+static int
+auth_dissect_element_user_info_unix_unix_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_unix_unix_name_, NDR_POINTER_UNIQUE, "Pointer to Unix Name (uint8)",hf_auth_auth_user_info_unix_unix_name);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_unix_unix_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_unix_unix_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_unix_sanitized_username(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_unix_sanitized_username_, NDR_POINTER_UNIQUE, "Pointer to Sanitized Username (uint8)",hf_auth_auth_user_info_unix_sanitized_username);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_unix_sanitized_username_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_auth_auth_user_info_unix_sanitized_username, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+auth_dissect_struct_user_info_unix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_auth_auth_user_info_unix);
+       }
+       
+       offset = auth_dissect_element_user_info_unix_unix_name(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_unix_sanitized_username(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_sids; */
+/* IDL:        [size_is(num_sids)] dom_sid sids[*]; */
+/* IDL:        [unique(1)] auth_user_info *info; */
+/* IDL:        [noprint(1)] DATA_BLOB user_session_key; */
+/* IDL:        [noprint(1)] DATA_BLOB lm_session_key; */
+/* IDL: } */
+
+static int
+auth_dissect_element_user_info_dc_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_dc_num_sids, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_dc_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_dc_sids_);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_dc_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_auth_auth_user_info_dc_sids,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_dc_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_user_info_dc_info_, NDR_POINTER_UNIQUE, "Pointer to Info (auth_user_info)",hf_auth_auth_user_info_dc_info);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_dc_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_user_info(tvb,offset,pinfo,tree,drep,hf_auth_auth_user_info_dc_info,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_dc_user_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_dc_user_session_key, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_user_info_dc_lm_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_auth_auth_user_info_dc_lm_session_key, 0);
+
+       return offset;
+}
+
+int
+auth_dissect_struct_user_info_dc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_auth_auth_user_info_dc);
+       }
+       
+       offset = auth_dissect_element_user_info_dc_num_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_dc_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_dc_info(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_dc_user_session_key(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_user_info_dc_lm_session_key(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] security_token *security_token; */
+/* IDL:        [unique(1)] security_unix_token *unix_token; */
+/* IDL:        [unique(1)] auth_user_info *info; */
+/* IDL:        [unique(1)] auth_user_info_unix *unix_info; */
+/* IDL:        [value(NULL)] [ignore(1)] auth_user_info_torture *torture; */
+/* IDL:        [noprint(1)] DATA_BLOB session_key; */
+/* IDL:        [value(NULL)] [ignore(1)] cli_credentials *credentials; */
+/* IDL: } */
+
+static int
+auth_dissect_element_session_info_security_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_security_token_, NDR_POINTER_UNIQUE, "Pointer to Security Token (security_token)",hf_auth_auth_session_info_security_token);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_security_token_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_security_token(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_security_token,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_unix_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_unix_token_, NDR_POINTER_UNIQUE, "Pointer to Unix Token (security_unix_token)",hf_auth_auth_session_info_unix_token);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_unix_token_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_security_unix_token(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_unix_token,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_info_, NDR_POINTER_UNIQUE, "Pointer to Info (auth_user_info)",hf_auth_auth_session_info_info);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_user_info(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_info,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_unix_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_unix_info_, NDR_POINTER_UNIQUE, "Pointer to Unix Info (auth_user_info_unix)",hf_auth_auth_session_info_unix_info);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_unix_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_user_info_unix(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_unix_info,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_torture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_torture_, , "Pointer to Torture (auth_user_info_torture)",hf_auth_auth_session_info_torture);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_torture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_user_info_torture(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_torture,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_auth_auth_session_info_session_key, 0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_credentials_, , "Pointer to Credentials (cli_credentials)",hf_auth_auth_session_info_credentials);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_cli_credentials(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_credentials,0);
+
+       return offset;
+}
+
+int
+auth_dissect_struct_session_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_auth_auth_session_info);
+       }
+       
+       offset = auth_dissect_element_session_info_security_token(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_unix_token(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_info(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_unix_info(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_torture(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_session_key(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_credentials(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] auth_session_info *session_info; */
+/* IDL:        [noprint(1)] DATA_BLOB exported_gssapi_credentials; */
+/* IDL: } */
+
+static int
+auth_dissect_element_session_info_transport_session_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, auth_dissect_element_session_info_transport_session_info_, NDR_POINTER_UNIQUE, "Pointer to Session Info (auth_session_info)",hf_auth_auth_session_info_transport_session_info);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_transport_session_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = auth_dissect_struct_session_info(tvb,offset,pinfo,tree,drep,hf_auth_auth_session_info_transport_session_info,0);
+
+       return offset;
+}
+
+static int
+auth_dissect_element_session_info_transport_exported_gssapi_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_auth_auth_session_info_transport_exported_gssapi_credentials, 0);
+
+       return offset;
+}
+
+int
+auth_dissect_struct_session_info_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_auth_auth_session_info_transport);
+       }
+       
+       offset = auth_dissect_element_session_info_transport_session_info(tvb, offset, pinfo, tree, drep);
+
+       offset = auth_dissect_element_session_info_transport_exported_gssapi_credentials(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector auth_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_auth(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_auth_auth_user_info_dc_sids,
+         { "Sids", "auth.auth_user_info_dc.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_acct_flags,
+         { "Acct Flags", "auth.auth_user_info.acct_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_profile_path,
+         { "Profile Path", "auth.auth_user_info.profile_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_dc_info,
+         { "Info", "auth.auth_user_info_dc.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_account_name,
+         { "Account Name", "auth.auth_user_info.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_unix_sanitized_username,
+         { "Sanitized Username", "auth.auth_user_info_unix.sanitized_username", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_logon_server,
+         { "Logon Server", "auth.auth_user_info.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_logon_count,
+         { "Logon Count", "auth.auth_user_info.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_unix_unix_name,
+         { "Unix Name", "auth.auth_user_info_unix.unix_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_domain_name,
+         { "Domain Name", "auth.auth_user_info.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_dc_lm_session_key,
+         { "Lm Session Key", "auth.auth_user_info_dc.lm_session_key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_logon_script,
+         { "Logon Script", "auth.auth_user_info.logon_script", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_dc_num_sids,
+         { "Num Sids", "auth.auth_user_info_dc.num_sids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_transport_exported_gssapi_credentials,
+         { "Exported Gssapi Credentials", "auth.auth_session_info_transport.exported_gssapi_credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_torture_num_dc_sids,
+         { "Num Dc Sids", "auth.auth_user_info_torture.num_dc_sids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_transport_session_info,
+         { "Session Info", "auth.auth_session_info_transport.session_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_opnum,
+         { "Operation", "auth.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_session_key,
+         { "Session Key", "auth.auth_session_info.session_key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_last_password_change,
+         { "Last Password Change", "auth.auth_user_info.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_home_directory,
+         { "Home Directory", "auth.auth_user_info.home_directory", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_unix_info,
+         { "Unix Info", "auth.auth_session_info.unix_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_security_token,
+         { "Security Token", "auth.auth_session_info.security_token", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_bad_password_count,
+         { "Bad Password Count", "auth.auth_user_info.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_info,
+         { "Info", "auth.auth_session_info.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_authenticated,
+         { "Authenticated", "auth.auth_user_info.authenticated", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_full_name,
+         { "Full Name", "auth.auth_user_info.full_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_force_password_change,
+         { "Force Password Change", "auth.auth_user_info.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_last_logoff,
+         { "Last Logoff", "auth.auth_user_info.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_torture,
+         { "Torture", "auth.auth_session_info.torture", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_dc_user_session_key,
+         { "User Session Key", "auth.auth_user_info_dc.user_session_key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_unix_token,
+         { "Unix Token", "auth.auth_session_info.unix_token", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_last_logon,
+         { "Last Logon", "auth.auth_user_info.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_session_info_credentials,
+         { "Credentials", "auth.auth_session_info.credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_torture_dc_sids,
+         { "Dc Sids", "auth.auth_user_info_torture.dc_sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_allow_password_change,
+         { "Allow Password Change", "auth.auth_user_info.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_acct_expiry,
+         { "Acct Expiry", "auth.auth_user_info.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_auth_auth_user_info_home_drive,
+         { "Home Drive", "auth.auth_user_info.home_drive", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_auth,
+               &ett_auth_auth_user_info,
+               &ett_auth_auth_user_info_torture,
+               &ett_auth_auth_user_info_unix,
+               &ett_auth_auth_user_info_dc,
+               &ett_auth_auth_session_info,
+               &ett_auth_auth_session_info_transport,
+       };
+
+       proto_dcerpc_auth = proto_register_protocol("internal Samba authentication structures", "AUTH", "auth");
+       proto_register_field_array(proto_dcerpc_auth, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_auth(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_auth, ett_dcerpc_auth,
+               &uuid_dcerpc_auth, ver_dcerpc_auth,
+               auth_dissectors, hf_auth_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-auth.h b/bin/default/librpc/gen_ndr/packet-dcerpc-auth.h
new file mode 100644 (file)
index 0000000..ba0f1c6
--- /dev/null
@@ -0,0 +1,35 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/auth.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/auth.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-krb5pac.h"
+
+#ifndef __PACKET_DCERPC_AUTH_H
+#define __PACKET_DCERPC_AUTH_H
+
+#define SEC_AUTH_METHOD_UNAUTHENTICATED (0)
+#define SEC_AUTH_METHOD_NTLM (1)
+#define SEC_AUTH_METHOD_KERBEROS (2)
+extern const value_string auth_auth_method_vals[];
+int auth_dissect_enum_method(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int auth_dissect_struct_user_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int auth_dissect_struct_user_info_torture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int auth_dissect_struct_user_info_unix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int auth_dissect_struct_user_info_dc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int auth_dissect_struct_session_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int auth_dissect_struct_session_info_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_AUTH_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.c b/bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.c
new file mode 100644 (file)
index 0000000..4cf62d0
--- /dev/null
@@ -0,0 +1,1662 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/backupkey.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/backupkey.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-backupkey.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_backupkey = -1;
+static gint ett_backupkey_bkrp_exported_RSA_key_pair = -1;
+static gint ett_backupkey_bkrp_dc_serverwrap_key = -1;
+static gint ett_backupkey_bkrp_client_side_wrapped = -1;
+static gint ett_backupkey_bkrp_client_side_unwrapped = -1;
+static gint ett_backupkey_bkrp_encrypted_secret_v2 = -1;
+static gint ett_backupkey_bkrp_encrypted_secret_v3 = -1;
+static gint ett_backupkey_bkrp_access_check_v2 = -1;
+static gint ett_backupkey_bkrp_access_check_v3 = -1;
+static gint ett_backupkey_bkrp_data_in_blob = -1;
+
+
+/* Header field declarations */
+static gint hf_backupkey_bkrp_access_check_v2_nonce = -1;
+static gint hf_backupkey_bkrp_client_side_wrapped_access_check_len = -1;
+static gint hf_backupkey_bkrp_data_in_blob_cert_req = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_prime2 = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v3_payload_key = -1;
+static gint hf_backupkey_bkrp_client_side_wrapped_guid = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_modulus_ = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_public_exponent_ = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_header1 = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_certificate_len = -1;
+static gint hf_backupkey_bkrp_data_in_blob_restore_req = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_coefficient_ = -1;
+static gint hf_backupkey_bkrp_dc_serverwrap_key_magic = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_magic2 = -1;
+static gint hf_backupkey_bkrp_client_side_unwrapped_secret_ = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent_ = -1;
+static gint hf_backupkey_bkrp_client_side_wrapped_encrypted_secret_len = -1;
+static gint hf_backupkey_bkrp_client_side_unwrapped_magic = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_exponent1_ = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v3_magic3 = -1;
+static gint hf_backupkey_bkrp_client_side_wrapped_access_check = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_magic1 = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v3_secret_len = -1;
+static gint hf_backupkey_bkrp_client_side_wrapped_encrypted_secret = -1;
+static gint hf_backupkey_bkrp_BackupKey_guidActionAgent = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_prime1 = -1;
+static gint hf_backupkey_bkrp_access_check_v2_magic = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v3_magic1 = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_exponent2 = -1;
+static gint hf_backupkey_bkrp_client_side_unwrapped_secret = -1;
+static gint hf_backupkey_bkrp_access_check_v3_sid = -1;
+static gint hf_backupkey_bkrp_access_check_v2_sid = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_header2 = -1;
+static gint hf_backupkey_bkrp_BackupKey_data_out_len = -1;
+static gint hf_backupkey_bkrp_client_side_wrapped_version = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_public_exponent = -1;
+static gint hf_backupkey_bkrp_BackupKey_param = -1;
+static gint hf_backupkey_werror = -1;
+static gint hf_backupkey_bkrp_dc_serverwrap_key_key = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v2_secret = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v2_secret_len = -1;
+static gint hf_backupkey_bkrp_access_check_v3_nonce_len = -1;
+static gint hf_backupkey_bkrp_access_check_v3_hash = -1;
+static gint hf_backupkey_opnum = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_magic3 = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent = -1;
+static gint hf_backupkey_bkrp_BackupKey_data_out = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_magic4 = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v3_magic2 = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_cert_ = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_prime2_ = -1;
+static gint hf_backupkey_bkrp_BackupKey_data_in_len = -1;
+static gint hf_backupkey_bkrp_BackupKey_data_in = -1;
+static gint hf_backupkey_bkrp_access_check_v3_nonce = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_exponent1 = -1;
+static gint hf_backupkey_bkrp_access_check_v2_nonce_len = -1;
+static gint hf_backupkey_bkrp_access_check_v2_hash = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_cert = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_exponent2_ = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_modulus = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v2_magic = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v2_payload_key = -1;
+static gint hf_backupkey_bkrp_encrypted_secret_v3_secret = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_prime1_ = -1;
+static gint hf_backupkey_bkrp_access_check_v3_magic = -1;
+static gint hf_backupkey_bkrp_exported_RSA_key_pair_coefficient = -1;
+
+static gint proto_dcerpc_backupkey = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_backupkey = {
+       0x3dde7c30, 0x165d, 0x11d1,
+       { 0xab, 0x8f, 0x00, 0x80, 0x5f, 0x14, 0xdb, 0x40 }
+};
+static guint16 ver_dcerpc_backupkey = 1;
+
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_header1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_header2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_certificate_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_public_exponent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_public_exponent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_modulus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_modulus_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_coefficient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_coefficient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_private_exponent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_private_exponent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_dc_serverwrap_key_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_dc_serverwrap_key_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_access_check_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_access_check(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_wrapped_access_check_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_unwrapped_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_unwrapped_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_client_side_unwrapped_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_magic1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_magic2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_magic3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_nonce_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_nonce_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_access_check_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string backupkey_bkrp_guid_to_integer_vals[] = {
+       { BACKUPKEY_INVALID_GUID_INTEGER, "BACKUPKEY_INVALID_GUID_INTEGER" },
+       { BACKUPKEY_RESTORE_GUID_INTEGER, "BACKUPKEY_RESTORE_GUID_INTEGER" },
+       { BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER, "BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER" },
+{ 0, NULL }
+};
+static int backupkey_dissect_element_bkrp_data_in_blob_restore_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_data_in_blob_cert_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_guidActionAgent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_guidActionAgent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_in_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_data_out_len_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int backupkey_dissect_element_bkrp_BackupKey_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000002)] uint32 header1; */
+/* IDL:        [value(0x00000494)] uint32 header2; */
+/* IDL:        uint32 certificate_len; */
+/* IDL:        [value(0x00000207)] uint32 magic1; */
+/* IDL:        [value(0x0000A400)] uint32 magic2; */
+/* IDL:        [value(0x32415352)] uint32 magic3; */
+/* IDL:        [value(0x00000800)] uint32 magic4; */
+/* IDL:        [subcontext_size(4)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB public_exponent; */
+/* IDL:        [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB modulus; */
+/* IDL:        [subcontext_size(128)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prime1; */
+/* IDL:        [subcontext_size(128)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB prime2; */
+/* IDL:        [subcontext_size(128)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB exponent1; */
+/* IDL:        [subcontext_size(128)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB exponent2; */
+/* IDL:        [subcontext_size(128)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB coefficient; */
+/* IDL:        [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB private_exponent; */
+/* IDL:        [subcontext_size(certificate_len)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB cert; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_header1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_header1, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_header2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_header2, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_certificate_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_certificate_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_magic1, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_magic2, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_magic3, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_magic4, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_public_exponent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_public_exponent_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_public_exponent_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_public_exponent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_public_exponent, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_modulus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_modulus_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_modulus_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_modulus_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_modulus, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_prime1_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime1_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_prime1, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_prime2_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime2_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_prime2, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_exponent1_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent1_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_exponent1, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_exponent2_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent2_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_exponent2, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_coefficient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_coefficient_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_coefficient_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_coefficient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_coefficient, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_private_exponent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_private_exponent_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_private_exponent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent, 1);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_cert_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_exported_RSA_key_pair_cert, 1);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_exported_RSA_key_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_exported_RSA_key_pair);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_header1(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_header2(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_certificate_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic1(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic2(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic3(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_magic4(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_public_exponent(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_modulus(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime1(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_prime2(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent1(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_exponent2(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_coefficient(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_private_exponent(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_exported_RSA_key_pair_cert(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000001)] uint32 magic; */
+/* IDL:        uint8 key[256]; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_dc_serverwrap_key_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_dc_serverwrap_key_magic, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_dc_serverwrap_key_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 256; i++)
+               offset = backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_dc_serverwrap_key_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_dc_serverwrap_key_key, 0);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_dc_serverwrap_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_dc_serverwrap_key);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_dc_serverwrap_key_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_dc_serverwrap_key_key(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        uint32 encrypted_secret_len; */
+/* IDL:        uint32 access_check_len; */
+/* IDL:        GUID guid; */
+/* IDL:        uint8 encrypted_secret[encrypted_secret_len]; */
+/* IDL:        uint8 access_check[access_check_len]; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_wrapped_version, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_wrapped_encrypted_secret_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_access_check_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_wrapped_access_check_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_wrapped_guid, NULL);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_wrapped_encrypted_secret, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_access_check(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_wrapped_access_check_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_wrapped_access_check, 0);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_client_side_wrapped(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_client_side_wrapped);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_client_side_wrapped_version(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_client_side_wrapped_access_check_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_client_side_wrapped_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_client_side_wrapped_encrypted_secret(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_client_side_wrapped_access_check(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000000)] uint32 magic; */
+/* IDL:        [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB secret; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_client_side_unwrapped_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_unwrapped_magic, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_unwrapped_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_unwrapped_secret_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               backupkey_dissect_element_bkrp_client_side_unwrapped_secret_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_client_side_unwrapped_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_client_side_unwrapped_secret, 1);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_client_side_unwrapped(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_client_side_unwrapped);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_client_side_unwrapped_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_client_side_unwrapped_secret(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 secret_len; */
+/* IDL:        [value(0x00000020)] uint32 magic; */
+/* IDL:        uint8 secret[secret_len]; */
+/* IDL:        uint8 payload_key[32]; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v2_secret_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v2_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v2_magic, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v2_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v2_secret, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 32; i++)
+               offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v2_payload_key, 0);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_encrypted_secret_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_encrypted_secret_v2);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_secret_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_secret(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v2_payload_key(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 secret_len; */
+/* IDL:        [value(0x00000030)] uint32 magic1; */
+/* IDL:        [value(0x00006610)] uint32 magic2; */
+/* IDL:        [value(0x0000800e)] uint32 magic3; */
+/* IDL:        uint8 secret[secret_len]; */
+/* IDL:        uint8 payload_key[48]; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_secret_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_magic1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_magic1, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_magic2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_magic2, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_magic3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_magic3, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_secret, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 48; i++)
+               offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_encrypted_secret_v3_payload_key, 0);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_encrypted_secret_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_encrypted_secret_v3);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_secret_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_magic1(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_magic2(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_magic3(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_secret(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_encrypted_secret_v3_payload_key(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000001)] uint32 magic; */
+/* IDL:        uint32 nonce_len; */
+/* IDL:        uint8 nonce[nonce_len]; */
+/* IDL:        dom_sid sid; */
+/* IDL:        uint8 hash[20]; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v2_magic, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_nonce_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v2_nonce_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v2_nonce, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = backupkey_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_backupkey_bkrp_access_check_v2_sid,0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 20; i++)
+               offset = backupkey_dissect_element_bkrp_access_check_v2_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v2_hash, 0);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_access_check_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_access_check_v2);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_access_check_v2_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v2_nonce_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v2_nonce(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v2_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v2_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000001)] uint32 magic; */
+/* IDL:        uint32 nonce_len; */
+/* IDL:        uint8 nonce[nonce_len]; */
+/* IDL:        dom_sid sid; */
+/* IDL:        uint8 hash[64]; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v3_magic, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_nonce_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v3_nonce_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_nonce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_nonce_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v3_nonce, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = backupkey_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_backupkey_bkrp_access_check_v3_sid,0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = backupkey_dissect_element_bkrp_access_check_v3_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_access_check_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_access_check_v3_hash, 0);
+
+       return offset;
+}
+
+int
+backupkey_dissect_struct_bkrp_access_check_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_access_check_v3);
+       }
+       
+       offset = backupkey_dissect_element_bkrp_access_check_v3_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v3_nonce_len(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v3_nonce(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v3_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = backupkey_dissect_element_bkrp_access_check_v3_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        BACKUPKEY_INVALID_GUID_INTEGER=0xFFFF, */
+/* IDL:        BACKUPKEY_RESTORE_GUID_INTEGER=0x0000, */
+/* IDL:        BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER=0x0001, */
+/* IDL: } */
+
+int
+backupkey_dissect_enum_bkrp_guid_to_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(BACKUPKEY_RESTORE_GUID_INTEGER)] [case(BACKUPKEY_RESTORE_GUID_INTEGER)] bkrp_client_side_wrapped restore_req; */
+/* IDL: [case(BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER)] [case(BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER)] bkrp_client_side_wrapped cert_req; */
+/* IDL: } */
+
+static int
+backupkey_dissect_element_bkrp_data_in_blob_restore_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = backupkey_dissect_struct_bkrp_client_side_wrapped(tvb,offset,pinfo,tree,drep,hf_backupkey_bkrp_data_in_blob_restore_req,0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_data_in_blob_cert_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = backupkey_dissect_struct_bkrp_client_side_wrapped(tvb,offset,pinfo,tree,drep,hf_backupkey_bkrp_data_in_blob_cert_req,0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_bkrp_data_in_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "bkrp_data_in_blob");
+               tree = proto_item_add_subtree(item, ett_backupkey_bkrp_data_in_blob);
+       }
+
+       switch(level) {
+               case BACKUPKEY_RESTORE_GUID_INTEGER:
+                       offset = backupkey_dissect_element_bkrp_data_in_blob_restore_req(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER:
+                       offset = backupkey_dissect_element_bkrp_data_in_blob_cert_req(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+static int
+backupkey_dissect_element_bkrp_BackupKey_guidActionAgent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_guidActionAgent_, NDR_POINTER_REF, "Pointer to Guidactionagent (GUID)",hf_backupkey_bkrp_BackupKey_guidActionAgent);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_guidActionAgent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_guidActionAgent, NULL);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_in_, NDR_POINTER_REF, "Pointer to Data In (uint8)",hf_backupkey_bkrp_BackupKey_data_in);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_in__);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_data_in, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_in_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_data_in_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_out_, NDR_POINTER_REF, "Pointer to Data Out (uint8)",hf_backupkey_bkrp_BackupKey_data_out);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_out__, NDR_POINTER_UNIQUE, "Pointer to Data Out (uint8)",hf_backupkey_bkrp_BackupKey_data_out);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_out___);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_out___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_data_out, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_out_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, backupkey_dissect_element_bkrp_BackupKey_data_out_len_, NDR_POINTER_REF, "Pointer to Data Out Len (uint32)",hf_backupkey_bkrp_BackupKey_data_out_len);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_data_out_len_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_data_out_len, 0);
+
+       return offset;
+}
+
+static int
+backupkey_dissect_element_bkrp_BackupKey_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_bkrp_BackupKey_param, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR bkrp_BackupKey( */
+/* IDL: [in] [ref] GUID *guidActionAgent, */
+/* IDL: [ref] [in] [size_is(data_in_len)] uint8 *data_in, */
+/* IDL: [in] uint32 data_in_len, */
+/* IDL: [out] [ref] [size_is(,*data_out_len)] uint8 **data_out, */
+/* IDL: [out] [ref] uint32 *data_out_len, */
+/* IDL: [in] uint32 param */
+/* IDL: ); */
+
+static int
+backupkey_dissect_bkrp_BackupKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="bkrp_BackupKey";
+       offset = backupkey_dissect_element_bkrp_BackupKey_data_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = backupkey_dissect_element_bkrp_BackupKey_data_out_len(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_backupkey_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+backupkey_dissect_bkrp_BackupKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="bkrp_BackupKey";
+       offset = backupkey_dissect_element_bkrp_BackupKey_guidActionAgent(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = backupkey_dissect_element_bkrp_BackupKey_data_in(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = backupkey_dissect_element_bkrp_BackupKey_data_in_len(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = backupkey_dissect_element_bkrp_BackupKey_param(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector backupkey_dissectors[] = {
+       { 0, "bkrp_BackupKey",
+          backupkey_dissect_bkrp_BackupKey_request, backupkey_dissect_bkrp_BackupKey_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_backupkey(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_backupkey_bkrp_access_check_v2_nonce,
+         { "Nonce", "backupkey.bkrp_access_check_v2.nonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_wrapped_access_check_len,
+         { "Access Check Len", "backupkey.bkrp_client_side_wrapped.access_check_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_data_in_blob_cert_req,
+         { "Cert Req", "backupkey.bkrp_data_in_blob.cert_req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_prime2,
+         { "Prime2", "backupkey.bkrp_exported_RSA_key_pair.prime2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v3_payload_key,
+         { "Payload Key", "backupkey.bkrp_encrypted_secret_v3.payload_key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_wrapped_guid,
+         { "Guid", "backupkey.bkrp_client_side_wrapped.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_modulus_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_public_exponent_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_header1,
+         { "Header1", "backupkey.bkrp_exported_RSA_key_pair.header1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_certificate_len,
+         { "Certificate Len", "backupkey.bkrp_exported_RSA_key_pair.certificate_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_data_in_blob_restore_req,
+         { "Restore Req", "backupkey.bkrp_data_in_blob.restore_req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_coefficient_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_dc_serverwrap_key_magic,
+         { "Magic", "backupkey.bkrp_dc_serverwrap_key.magic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_magic2,
+         { "Magic2", "backupkey.bkrp_exported_RSA_key_pair.magic2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_unwrapped_secret_,
+         { "Subcontext length", "backupkey.bkrp_client_side_unwrapped.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_wrapped_encrypted_secret_len,
+         { "Encrypted Secret Len", "backupkey.bkrp_client_side_wrapped.encrypted_secret_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_unwrapped_magic,
+         { "Magic", "backupkey.bkrp_client_side_unwrapped.magic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_exponent1_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v3_magic3,
+         { "Magic3", "backupkey.bkrp_encrypted_secret_v3.magic3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_wrapped_access_check,
+         { "Access Check", "backupkey.bkrp_client_side_wrapped.access_check", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_magic1,
+         { "Magic1", "backupkey.bkrp_exported_RSA_key_pair.magic1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v3_secret_len,
+         { "Secret Len", "backupkey.bkrp_encrypted_secret_v3.secret_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_wrapped_encrypted_secret,
+         { "Encrypted Secret", "backupkey.bkrp_client_side_wrapped.encrypted_secret", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_BackupKey_guidActionAgent,
+         { "Guidactionagent", "backupkey.bkrp_BackupKey.guidActionAgent", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_prime1,
+         { "Prime1", "backupkey.bkrp_exported_RSA_key_pair.prime1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v2_magic,
+         { "Magic", "backupkey.bkrp_access_check_v2.magic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v3_magic1,
+         { "Magic1", "backupkey.bkrp_encrypted_secret_v3.magic1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_exponent2,
+         { "Exponent2", "backupkey.bkrp_exported_RSA_key_pair.exponent2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_unwrapped_secret,
+         { "Secret", "backupkey.bkrp_client_side_unwrapped.secret", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v3_sid,
+         { "Sid", "backupkey.bkrp_access_check_v3.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v2_sid,
+         { "Sid", "backupkey.bkrp_access_check_v2.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_header2,
+         { "Header2", "backupkey.bkrp_exported_RSA_key_pair.header2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_BackupKey_data_out_len,
+         { "Data Out Len", "backupkey.bkrp_BackupKey.data_out_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_client_side_wrapped_version,
+         { "Version", "backupkey.bkrp_client_side_wrapped.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_public_exponent,
+         { "Public Exponent", "backupkey.bkrp_exported_RSA_key_pair.public_exponent", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_BackupKey_param,
+         { "Param", "backupkey.bkrp_BackupKey.param", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_werror,
+         { "Windows Error", "backupkey.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_dc_serverwrap_key_key,
+         { "Key", "backupkey.bkrp_dc_serverwrap_key.key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v2_secret,
+         { "Secret", "backupkey.bkrp_encrypted_secret_v2.secret", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v2_secret_len,
+         { "Secret Len", "backupkey.bkrp_encrypted_secret_v2.secret_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v3_nonce_len,
+         { "Nonce Len", "backupkey.bkrp_access_check_v3.nonce_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v3_hash,
+         { "Hash", "backupkey.bkrp_access_check_v3.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_opnum,
+         { "Operation", "backupkey.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_magic3,
+         { "Magic3", "backupkey.bkrp_exported_RSA_key_pair.magic3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_private_exponent,
+         { "Private Exponent", "backupkey.bkrp_exported_RSA_key_pair.private_exponent", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_BackupKey_data_out,
+         { "Data Out", "backupkey.bkrp_BackupKey.data_out", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_magic4,
+         { "Magic4", "backupkey.bkrp_exported_RSA_key_pair.magic4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v3_magic2,
+         { "Magic2", "backupkey.bkrp_encrypted_secret_v3.magic2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_cert_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_prime2_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_BackupKey_data_in_len,
+         { "Data In Len", "backupkey.bkrp_BackupKey.data_in_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_BackupKey_data_in,
+         { "Data In", "backupkey.bkrp_BackupKey.data_in", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v3_nonce,
+         { "Nonce", "backupkey.bkrp_access_check_v3.nonce", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_exponent1,
+         { "Exponent1", "backupkey.bkrp_exported_RSA_key_pair.exponent1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v2_nonce_len,
+         { "Nonce Len", "backupkey.bkrp_access_check_v2.nonce_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v2_hash,
+         { "Hash", "backupkey.bkrp_access_check_v2.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_cert,
+         { "Cert", "backupkey.bkrp_exported_RSA_key_pair.cert", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_exponent2_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_modulus,
+         { "Modulus", "backupkey.bkrp_exported_RSA_key_pair.modulus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v2_magic,
+         { "Magic", "backupkey.bkrp_encrypted_secret_v2.magic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v2_payload_key,
+         { "Payload Key", "backupkey.bkrp_encrypted_secret_v2.payload_key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_encrypted_secret_v3_secret,
+         { "Secret", "backupkey.bkrp_encrypted_secret_v3.secret", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_prime1_,
+         { "Subcontext length", "backupkey.bkrp_exported_RSA_key_pair.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_access_check_v3_magic,
+         { "Magic", "backupkey.bkrp_access_check_v3.magic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_backupkey_bkrp_exported_RSA_key_pair_coefficient,
+         { "Coefficient", "backupkey.bkrp_exported_RSA_key_pair.coefficient", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_backupkey,
+               &ett_backupkey_bkrp_exported_RSA_key_pair,
+               &ett_backupkey_bkrp_dc_serverwrap_key,
+               &ett_backupkey_bkrp_client_side_wrapped,
+               &ett_backupkey_bkrp_client_side_unwrapped,
+               &ett_backupkey_bkrp_encrypted_secret_v2,
+               &ett_backupkey_bkrp_encrypted_secret_v3,
+               &ett_backupkey_bkrp_access_check_v2,
+               &ett_backupkey_bkrp_access_check_v3,
+               &ett_backupkey_bkrp_data_in_blob,
+       };
+
+       proto_dcerpc_backupkey = proto_register_protocol("Remote Backup Key Storage", "BACKUPKEY", "backupkey");
+       proto_register_field_array(proto_dcerpc_backupkey, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_backupkey(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_backupkey, ett_dcerpc_backupkey,
+               &uuid_dcerpc_backupkey, ver_dcerpc_backupkey,
+               backupkey_dissectors, hf_backupkey_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.h b/bin/default/librpc/gen_ndr/packet-dcerpc-backupkey.h
new file mode 100644 (file)
index 0000000..afb59ef
--- /dev/null
@@ -0,0 +1,43 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/backupkey.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/backupkey.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_BACKUPKEY_H
+#define __PACKET_DCERPC_BACKUPKEY_H
+
+#define BACKUPKEY_RESTORE_GUID ( "47270C64-2FC7-499B-AC5B-0E37CDCE899A" )
+
+#define BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID     ( "018FF48A-EABA-40C6-8F6D-72370240E967" )
+
+#define BACKUPKEY_RESTORE_GUID_WIN2K   ( "7FE94D50-178E-11D1-AB8F-00805F14DB40" )
+
+#define BACKUPKEY_BACKUP_GUID  ( "7F752B10-178E-11D1-AB8F-00805F14DB40" )
+
+int backupkey_dissect_struct_bkrp_exported_RSA_key_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_dc_serverwrap_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_client_side_wrapped(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_client_side_unwrapped(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_encrypted_secret_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_encrypted_secret_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_access_check_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int backupkey_dissect_struct_bkrp_access_check_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define BACKUPKEY_INVALID_GUID_INTEGER (0xFFFF)
+#define BACKUPKEY_RESTORE_GUID_INTEGER (0x0000)
+#define BACKUPKEY_RETRIEVE_BACKUP_KEY_GUID_INTEGER (0x0001)
+extern const value_string backupkey_bkrp_guid_to_integer_vals[];
+int backupkey_dissect_enum_bkrp_guid_to_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_BACKUPKEY_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-browser.c b/bin/default/librpc/gen_ndr/packet-dcerpc-browser.c
new file mode 100644 (file)
index 0000000..6c78ec2
--- /dev/null
@@ -0,0 +1,718 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/browser.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/browser.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-browser.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_browser = -1;
+static gint ett_browser_BrowserrSrvInfo100Ctr = -1;
+static gint ett_browser_BrowserrSrvInfo101Ctr = -1;
+static gint ett_browser_BrowserrSrvInfoUnion = -1;
+static gint ett_browser_BrowserrSrvInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_browser_BrowserrQueryOtherDomains_info = -1;
+static gint hf_browser_BrowserrSrvInfo101Ctr_entries = -1;
+static gint hf_browser_BrowserrSrvInfo_info = -1;
+static gint hf_browser_BrowserrQueryOtherDomains_total_entries = -1;
+static gint hf_browser_werror = -1;
+static gint hf_browser_BrowserrSrvInfo101Ctr_entries_read = -1;
+static gint hf_browser_BrowserrSrvInfo100Ctr_entries_read = -1;
+static gint hf_browser_opnum = -1;
+static gint hf_browser_BrowserrQueryOtherDomains_server_unc = -1;
+static gint hf_browser_BrowserrSrvInfoUnion_info101 = -1;
+static gint hf_browser_BrowserrSrvInfoUnion_info100 = -1;
+static gint hf_browser_BrowserrSrvInfo_level = -1;
+static gint hf_browser_BrowserrSrvInfo100Ctr_entries = -1;
+
+static gint proto_dcerpc_browser = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_browser = {
+       0x6bffd098, 0xa112, 0x3610,
+       { 0x98, 0x33, 0x01, 0x28, 0x92, 0x02, 0x01, 0x62 }
+};
+static guint16 ver_dcerpc_browser = 0;
+
+static int browser_dissect_element_BrowserrSrvInfo100Ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo100Ctr_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo100Ctr_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo100Ctr_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo101Ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo101Ctr_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo101Ctr_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo101Ctr_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfoUnion_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfoUnion_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfoUnion_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfoUnion_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrSrvInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int browser_dissect_element_BrowserrSrvInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int browser_dissect_element_BrowserrQueryOtherDomains_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrQueryOtherDomains_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrQueryOtherDomains_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrQueryOtherDomains_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrQueryOtherDomains_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int browser_dissect_element_BrowserrQueryOtherDomains_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        uint32 entries_read; */
+/* IDL:        [unique(1)] [size_is(entries_read)] srvsvc_NetSrvInfo100 *entries; */
+/* IDL: } */
+
+static int
+browser_dissect_element_BrowserrSrvInfo100Ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_browser_BrowserrSrvInfo100Ctr_entries_read, 0);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo100Ctr_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrSrvInfo100Ctr_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (srvsvc_NetSrvInfo100)",hf_browser_BrowserrSrvInfo100Ctr_entries);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo100Ctr_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrSrvInfo100Ctr_entries__);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo100Ctr_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = browser_dissect_struct_srvsvc_NetSrvInfo100(tvb,offset,pinfo,tree,drep,hf_browser_BrowserrSrvInfo100Ctr_entries,0);
+
+       return offset;
+}
+
+int
+browser_dissect_struct_BrowserrSrvInfo100Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_browser_BrowserrSrvInfo100Ctr);
+       }
+       
+       offset = browser_dissect_element_BrowserrSrvInfo100Ctr_entries_read(tvb, offset, pinfo, tree, drep);
+
+       offset = browser_dissect_element_BrowserrSrvInfo100Ctr_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 entries_read; */
+/* IDL:        [unique(1)] [size_is(entries_read)] srvsvc_NetSrvInfo101 *entries; */
+/* IDL: } */
+
+static int
+browser_dissect_element_BrowserrSrvInfo101Ctr_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_browser_BrowserrSrvInfo101Ctr_entries_read, 0);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo101Ctr_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrSrvInfo101Ctr_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (srvsvc_NetSrvInfo101)",hf_browser_BrowserrSrvInfo101Ctr_entries);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo101Ctr_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrSrvInfo101Ctr_entries__);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo101Ctr_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = browser_dissect_struct_srvsvc_NetSrvInfo101(tvb,offset,pinfo,tree,drep,hf_browser_BrowserrSrvInfo101Ctr_entries,0);
+
+       return offset;
+}
+
+int
+browser_dissect_struct_BrowserrSrvInfo101Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_browser_BrowserrSrvInfo101Ctr);
+       }
+       
+       offset = browser_dissect_element_BrowserrSrvInfo101Ctr_entries_read(tvb, offset, pinfo, tree, drep);
+
+       offset = browser_dissect_element_BrowserrSrvInfo101Ctr_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(100)] [unique(1)] [case(100)] BrowserrSrvInfo100Ctr *info100; */
+/* IDL: [case(101)] [unique(1)] [case(101)] BrowserrSrvInfo101Ctr *info101; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+browser_dissect_element_BrowserrSrvInfoUnion_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrSrvInfoUnion_info100_, NDR_POINTER_UNIQUE, "Pointer to Info100 (BrowserrSrvInfo100Ctr)",hf_browser_BrowserrSrvInfoUnion_info100);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfoUnion_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = browser_dissect_struct_BrowserrSrvInfo100Ctr(tvb,offset,pinfo,tree,drep,hf_browser_BrowserrSrvInfoUnion_info100,0);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfoUnion_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrSrvInfoUnion_info101_, NDR_POINTER_UNIQUE, "Pointer to Info101 (BrowserrSrvInfo101Ctr)",hf_browser_BrowserrSrvInfoUnion_info101);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfoUnion_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = browser_dissect_struct_BrowserrSrvInfo101Ctr(tvb,offset,pinfo,tree,drep,hf_browser_BrowserrSrvInfoUnion_info101,0);
+
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrSrvInfoUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "BrowserrSrvInfoUnion");
+               tree = proto_item_add_subtree(item, ett_browser_BrowserrSrvInfoUnion);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 100:
+                       offset = browser_dissect_element_BrowserrSrvInfoUnion_info100(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 101:
+                       offset = browser_dissect_element_BrowserrSrvInfoUnion_info101(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] BrowserrSrvInfoUnion info; */
+/* IDL: } */
+
+static int
+browser_dissect_element_BrowserrSrvInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_browser_BrowserrSrvInfo_level, level);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrSrvInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = browser_dissect_BrowserrSrvInfoUnion(tvb, offset, pinfo, tree, drep, hf_browser_BrowserrSrvInfo_info, *level);
+
+       return offset;
+}
+
+int
+browser_dissect_struct_BrowserrSrvInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_browser_BrowserrSrvInfo);
+       }
+       
+       offset = browser_dissect_element_BrowserrSrvInfo_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = browser_dissect_element_BrowserrSrvInfo_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+/* IDL: void BrowserrServerEnum( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrServerEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrServerEnum";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrServerEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrServerEnum";
+       return offset;
+}
+
+/* IDL: void BrowserrDebugCall( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrDebugCall_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrDebugCall";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrDebugCall_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrDebugCall";
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrQueryOtherDomains_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrQueryOtherDomains_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_browser_BrowserrQueryOtherDomains_server_unc);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrQueryOtherDomains_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_browser_BrowserrQueryOtherDomains_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrQueryOtherDomains_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrQueryOtherDomains_info_, NDR_POINTER_REF, "Pointer to Info (BrowserrSrvInfo)",hf_browser_BrowserrQueryOtherDomains_info);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrQueryOtherDomains_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = browser_dissect_struct_BrowserrSrvInfo(tvb,offset,pinfo,tree,drep,hf_browser_BrowserrQueryOtherDomains_info,0);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrQueryOtherDomains_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, browser_dissect_element_BrowserrQueryOtherDomains_total_entries_, NDR_POINTER_REF, "Pointer to Total Entries (uint32)",hf_browser_BrowserrQueryOtherDomains_total_entries);
+
+       return offset;
+}
+
+static int
+browser_dissect_element_BrowserrQueryOtherDomains_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_browser_BrowserrQueryOtherDomains_total_entries, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR BrowserrQueryOtherDomains( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [out] [in] [ref] BrowserrSrvInfo *info, */
+/* IDL: [out] [ref] uint32 *total_entries */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrQueryOtherDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="BrowserrQueryOtherDomains";
+       offset = browser_dissect_element_BrowserrQueryOtherDomains_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = browser_dissect_element_BrowserrQueryOtherDomains_total_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_browser_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrQueryOtherDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrQueryOtherDomains";
+       offset = browser_dissect_element_BrowserrQueryOtherDomains_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = browser_dissect_element_BrowserrQueryOtherDomains_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: void BrowserrResetNetlogonState( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrResetNetlogonState_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrResetNetlogonState";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrResetNetlogonState_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrResetNetlogonState";
+       return offset;
+}
+
+/* IDL: void BrowserrDebugTrace( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrDebugTrace_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrDebugTrace";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrDebugTrace_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrDebugTrace";
+       return offset;
+}
+
+/* IDL: void BrowserrQueryStatistics( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrQueryStatistics_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrQueryStatistics";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrQueryStatistics_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrQueryStatistics";
+       return offset;
+}
+
+/* IDL: void BrowserResetStatistics( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserResetStatistics_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserResetStatistics";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserResetStatistics_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserResetStatistics";
+       return offset;
+}
+
+/* IDL: void NetrBrowserStatisticsClear( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_NetrBrowserStatisticsClear_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrBrowserStatisticsClear";
+       return offset;
+}
+
+static int
+browser_dissect_NetrBrowserStatisticsClear_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrBrowserStatisticsClear";
+       return offset;
+}
+
+/* IDL: void NetrBrowserStatisticsGet( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_NetrBrowserStatisticsGet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrBrowserStatisticsGet";
+       return offset;
+}
+
+static int
+browser_dissect_NetrBrowserStatisticsGet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrBrowserStatisticsGet";
+       return offset;
+}
+
+/* IDL: void BrowserrSetNetlogonState( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrSetNetlogonState_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrSetNetlogonState";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrSetNetlogonState_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrSetNetlogonState";
+       return offset;
+}
+
+/* IDL: void BrowserrQueryEmulatedDomains( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrQueryEmulatedDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrQueryEmulatedDomains";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrQueryEmulatedDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrQueryEmulatedDomains";
+       return offset;
+}
+
+/* IDL: void BrowserrServerEnumEx( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+browser_dissect_BrowserrServerEnumEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrServerEnumEx";
+       return offset;
+}
+
+static int
+browser_dissect_BrowserrServerEnumEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BrowserrServerEnumEx";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector browser_dissectors[] = {
+       { 0, "BrowserrServerEnum",
+          browser_dissect_BrowserrServerEnum_request, browser_dissect_BrowserrServerEnum_response},
+       { 1, "BrowserrDebugCall",
+          browser_dissect_BrowserrDebugCall_request, browser_dissect_BrowserrDebugCall_response},
+       { 2, "BrowserrQueryOtherDomains",
+          browser_dissect_BrowserrQueryOtherDomains_request, browser_dissect_BrowserrQueryOtherDomains_response},
+       { 3, "BrowserrResetNetlogonState",
+          browser_dissect_BrowserrResetNetlogonState_request, browser_dissect_BrowserrResetNetlogonState_response},
+       { 4, "BrowserrDebugTrace",
+          browser_dissect_BrowserrDebugTrace_request, browser_dissect_BrowserrDebugTrace_response},
+       { 5, "BrowserrQueryStatistics",
+          browser_dissect_BrowserrQueryStatistics_request, browser_dissect_BrowserrQueryStatistics_response},
+       { 6, "BrowserResetStatistics",
+          browser_dissect_BrowserResetStatistics_request, browser_dissect_BrowserResetStatistics_response},
+       { 7, "NetrBrowserStatisticsClear",
+          browser_dissect_NetrBrowserStatisticsClear_request, browser_dissect_NetrBrowserStatisticsClear_response},
+       { 8, "NetrBrowserStatisticsGet",
+          browser_dissect_NetrBrowserStatisticsGet_request, browser_dissect_NetrBrowserStatisticsGet_response},
+       { 9, "BrowserrSetNetlogonState",
+          browser_dissect_BrowserrSetNetlogonState_request, browser_dissect_BrowserrSetNetlogonState_response},
+       { 10, "BrowserrQueryEmulatedDomains",
+          browser_dissect_BrowserrQueryEmulatedDomains_request, browser_dissect_BrowserrQueryEmulatedDomains_response},
+       { 11, "BrowserrServerEnumEx",
+          browser_dissect_BrowserrServerEnumEx_request, browser_dissect_BrowserrServerEnumEx_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_browser(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_browser_BrowserrQueryOtherDomains_info,
+         { "Info", "browser.BrowserrQueryOtherDomains.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfo101Ctr_entries,
+         { "Entries", "browser.BrowserrSrvInfo101Ctr.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfo_info,
+         { "Info", "browser.BrowserrSrvInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrQueryOtherDomains_total_entries,
+         { "Total Entries", "browser.BrowserrQueryOtherDomains.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_browser_werror,
+         { "Windows Error", "browser.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfo101Ctr_entries_read,
+         { "Entries Read", "browser.BrowserrSrvInfo101Ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfo100Ctr_entries_read,
+         { "Entries Read", "browser.BrowserrSrvInfo100Ctr.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_browser_opnum,
+         { "Operation", "browser.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrQueryOtherDomains_server_unc,
+         { "Server Unc", "browser.BrowserrQueryOtherDomains.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfoUnion_info101,
+         { "Info101", "browser.BrowserrSrvInfoUnion.info101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfoUnion_info100,
+         { "Info100", "browser.BrowserrSrvInfoUnion.info100", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfo_level,
+         { "Level", "browser.BrowserrSrvInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_browser_BrowserrSrvInfo100Ctr_entries,
+         { "Entries", "browser.BrowserrSrvInfo100Ctr.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_browser,
+               &ett_browser_BrowserrSrvInfo100Ctr,
+               &ett_browser_BrowserrSrvInfo101Ctr,
+               &ett_browser_BrowserrSrvInfoUnion,
+               &ett_browser_BrowserrSrvInfo,
+       };
+
+       proto_dcerpc_browser = proto_register_protocol("Browsing", "BROWSER", "browser");
+       proto_register_field_array(proto_dcerpc_browser, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_browser(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_browser, ett_dcerpc_browser,
+               &uuid_dcerpc_browser, ver_dcerpc_browser,
+               browser_dissectors, hf_browser_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-browser.h b/bin/default/librpc/gen_ndr/packet-dcerpc-browser.h
new file mode 100644 (file)
index 0000000..43b44ed
--- /dev/null
@@ -0,0 +1,24 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/browser.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/browser.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-srvsvc.h"
+
+#ifndef __PACKET_DCERPC_BROWSER_H
+#define __PACKET_DCERPC_BROWSER_H
+
+int browser_dissect_struct_BrowserrSrvInfo100Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int browser_dissect_struct_BrowserrSrvInfo101Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int browser_dissect_struct_BrowserrSrvInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_BROWSER_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dbgidl.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dbgidl.c
new file mode 100644 (file)
index 0000000..da3031d
--- /dev/null
@@ -0,0 +1,96 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dbgidl.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dbgidl.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dbgidl.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_dbgidl = -1;
+
+
+/* Header field declarations */
+static gint hf_dbgidl_opnum = -1;
+
+static gint proto_dcerpc_dbgidl = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_dbgidl = {
+       0x1d55b526, 0xc137, 0x46c5,
+       { 0xab, 0x79, 0x63, 0x8f, 0x2a, 0x68, 0xe8, 0x69 }
+};
+static guint16 ver_dcerpc_dbgidl = 1;
+
+
+/* IDL: void dummy_dbgidl( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dbgidl_dissect_dummy_dbgidl_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dummy_dbgidl";
+       return offset;
+}
+
+static int
+dbgidl_dissect_dummy_dbgidl_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dummy_dbgidl";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector dbgidl_dissectors[] = {
+       { 0, "dummy_dbgidl",
+          dbgidl_dissect_dummy_dbgidl_request, dbgidl_dissect_dummy_dbgidl_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_dbgidl(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_dbgidl_opnum,
+         { "Operation", "dbgidl.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_dbgidl,
+       };
+
+       proto_dcerpc_dbgidl = proto_register_protocol("Remote IDL debugger", "DBGIDL", "dbgidl");
+       proto_register_field_array(proto_dcerpc_dbgidl, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_dbgidl(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_dbgidl, ett_dcerpc_dbgidl,
+               &uuid_dcerpc_dbgidl, ver_dcerpc_dbgidl,
+               dbgidl_dissectors, hf_dbgidl_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dbgidl.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dbgidl.h
new file mode 100644 (file)
index 0000000..193b557
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dbgidl.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dbgidl.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_DBGIDL_H
+#define __PACKET_DCERPC_DBGIDL_H
+
+#endif /* __PACKET_DCERPC_DBGIDL_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.c
new file mode 100644 (file)
index 0000000..219971b
--- /dev/null
@@ -0,0 +1,4708 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dcerpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dcerpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dcerpc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_dcerpc = -1;
+static gint ett_dcerpc_dcerpc_ctx_list = -1;
+static gint ett_dcerpc_dcerpc_bind = -1;
+static gint ett_dcerpc_dcerpc_empty = -1;
+static gint ett_dcerpc_dcerpc_object = -1;
+static gint ett_dcerpc_dcerpc_request = -1;
+static gint ett_dcerpc_dcerpc_ack_ctx = -1;
+static gint ett_dcerpc_dcerpc_bind_ack = -1;
+static gint ett_dcerpc_dcerpc_bind_nak_versions = -1;
+static gint ett_dcerpc_dcerpc_bind_nak_versions_ctr = -1;
+static gint ett_dcerpc_dcerpc_bind_nak = -1;
+static gint ett_dcerpc_dcerpc_response = -1;
+static gint ett_dcerpc_dcerpc_fault = -1;
+static gint ett_dcerpc_dcerpc_auth = -1;
+static gint ett_dcerpc_dcerpc_auth3 = -1;
+static gint ett_dcerpc_dcerpc_orphaned = -1;
+static gint ett_dcerpc_dcerpc_co_cancel = -1;
+static gint ett_dcerpc_dcerpc_cl_cancel = -1;
+static gint ett_dcerpc_dcerpc_cancel_ack = -1;
+static gint ett_dcerpc_dcerpc_fack = -1;
+static gint ett_dcerpc_dcerpc_ack = -1;
+static gint ett_dcerpc_dcerpc_ping = -1;
+static gint ett_dcerpc_dcerpc_shutdown = -1;
+static gint ett_dcerpc_dcerpc_working = -1;
+static gint ett_dcerpc_RTSCookie = -1;
+static gint ett_dcerpc_ClientAddressType = -1;
+static gint ett_dcerpc_ClientAddress = -1;
+static gint ett_dcerpc_FlowControlAcknowledgment = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_ReceiveWindowSize = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_FlowControlAck = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_ConnectionTimeout = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_Cookie = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_ChannelLifetime = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_ClientKeepalive = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_Version = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_Empty = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_Padding = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_NegativeANCE = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_ANCE = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_ClientAddress = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_AssociationGroupId = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_Destination = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd_PingTrafficSentNotify = -1;
+static gint ett_dcerpc_dcerpc_rts_cmds = -1;
+static gint ett_dcerpc_dcerpc_rts_cmd = -1;
+static gint ett_dcerpc_dcerpc_rts_flags = -1;
+static gint ett_dcerpc_dcerpc_rts = -1;
+static gint ett_dcerpc_dcerpc_payload = -1;
+static gint ett_dcerpc_ncacn_packet = -1;
+static gint ett_dcerpc_ncadg_packet = -1;
+
+
+/* Header field declarations */
+static gint hf_dcerpc_dcerpc_auth_auth_reserved = -1;
+static gint hf_dcerpc_dcerpc_payload_cancel_ack = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_secondary_address_size = -1;
+static gint hf_dcerpc_dcerpc_request_stub_and_verifier = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_PING = -1;
+static gint hf_dcerpc_ncadg_packet_u = -1;
+static gint hf_dcerpc_dcerpc_fack_serial_no = -1;
+static gint hf_dcerpc_dcerpc_cl_cancel_version = -1;
+static gint hf_dcerpc_dcerpc_orphaned_auth_info = -1;
+static gint hf_dcerpc_dcerpc_ack_ctx_result = -1;
+static gint hf_dcerpc_dcerpc_payload_response = -1;
+static gint hf_dcerpc_dcerpc_co_cancel_auth_info = -1;
+static gint hf_dcerpc_dcerpc_auth_auth_context_id = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_Command = -1;
+static gint hf_dcerpc_dcerpc_payload_fack = -1;
+static gint hf_dcerpc_ncadg_packet_fragnum = -1;
+static gint hf_dcerpc_ncadg_packet_pfc_flags = -1;
+static gint hf_dcerpc_ncacn_packet_u = -1;
+static gint hf_dcerpc_dcerpc_bind_nak_versions_num_versions = -1;
+static gint hf_dcerpc_ncacn_packet_auth_length = -1;
+static gint hf_dcerpc_ncadg_packet_ihint = -1;
+static gint hf_dcerpc_ncadg_packet_iface = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_Padding_ConformanceCount = -1;
+static gint hf_dcerpc_dcerpc_request_object = -1;
+static gint hf_dcerpc_ncacn_packet_call_id = -1;
+static gint hf_dcerpc_dcerpc_payload_nocall = -1;
+static gint hf_dcerpc_dcerpc_request_alloc_hint = -1;
+static gint hf_dcerpc_dcerpc_bind_ctx_list = -1;
+static gint hf_dcerpc_dcerpc_ack_ctx_reason = -1;
+static gint hf_dcerpc_dcerpc_bind_max_xmit_frag = -1;
+static gint hf_dcerpc_dcerpc_bind_num_contexts = -1;
+static gint hf_dcerpc_dcerpc_cl_cancel_id = -1;
+static gint hf_dcerpc_dcerpc_payload_auth3 = -1;
+static gint hf_dcerpc_dcerpc_ack_ctx_syntax = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_max_xmit_frag = -1;
+static gint hf_dcerpc_dcerpc_fack_max_frag_size = -1;
+static gint hf_dcerpc_dcerpc_orphaned__pad = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_max_recv_frag = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_PingTrafficSentNotify = -1;
+static gint hf_dcerpc_dcerpc_payload_co_cancel = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_Padding = -1;
+static gint hf_dcerpc_ncadg_packet_ncadg_flags = -1;
+static gint hf_dcerpc_dcerpc_ctx_list_context_id = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_FlowControlAck_Ack = -1;
+static gint hf_dcerpc_dcerpc_bind_max_recv_frag = -1;
+static gint hf_dcerpc_dcerpc_fack_selack_size = -1;
+static gint hf_dcerpc_dcerpc_payload_request = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_secondary_address = -1;
+static gint hf_dcerpc_dcerpc_response__pad = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_PingTrafficSentNotify_PingTrafficSent = -1;
+static gint hf_dcerpc_dcerpc_payload_orphaned = -1;
+static gint hf_dcerpc_dcerpc_rts_NumberOfCommands = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_ClientKeepalive_ClientKeepalive = -1;
+static gint hf_dcerpc_ncadg_packet_server_boot = -1;
+static gint hf_dcerpc_ncacn_packet_rpc_vers_minor = -1;
+static gint hf_dcerpc_dcerpc_rts_Commands = -1;
+static gint hf_dcerpc_dcerpc_payload_bind_nak = -1;
+static gint hf_dcerpc_dcerpc_payload_bind_ack = -1;
+static gint hf_dcerpc_dcerpc_fault__pad = -1;
+static gint hf_dcerpc_dcerpc_cancel_ack_id = -1;
+static gint hf_dcerpc_dcerpc_payload_alter_resp = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_ConnectionTimeout = -1;
+static gint hf_dcerpc_dcerpc_object_object = -1;
+static gint hf_dcerpc_dcerpc_payload_reject = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_Destination_ForwardDestination = -1;
+static gint hf_dcerpc_dcerpc_fack_selack = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_EOF = -1;
+static gint hf_dcerpc_ClientAddress_Padding = -1;
+static gint hf_dcerpc_dcerpc_bind_assoc_group_id = -1;
+static gint hf_dcerpc_dcerpc_fault_cancel_count = -1;
+static gint hf_dcerpc_dcerpc_response_alloc_hint = -1;
+static gint hf_dcerpc_dcerpc_fack_window_size = -1;
+static gint hf_dcerpc_dcerpc_payload_ping = -1;
+static gint hf_dcerpc_dcerpc_auth_auth_pad_length = -1;
+static gint hf_dcerpc_ncadg_packet_serial_low = -1;
+static gint hf_dcerpc_ncadg_packet_opnum = -1;
+static gint hf_dcerpc_dcerpc_response_stub_and_verifier = -1;
+static gint hf_dcerpc_FlowControlAcknowledgment_BytesReceived = -1;
+static gint hf_dcerpc_dcerpc_auth_auth_type = -1;
+static gint hf_dcerpc_dcerpc_object_empty = -1;
+static gint hf_dcerpc_dcerpc_request_opnum = -1;
+static gint hf_dcerpc_ncadg_packet_seq_num = -1;
+static gint hf_dcerpc_dcerpc_cancel_ack_version = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_IN_CHANNEL = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_ClientKeepalive = -1;
+static gint hf_dcerpc_dcerpc_payload_cl_cancel = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_num_results = -1;
+static gint hf_dcerpc_FlowControlAcknowledgment_ChannelCookie = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_AssociationGroupId_AssociationGroupId = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_ClientAddress = -1;
+static gint hf_dcerpc_dcerpc_co_cancel__pad = -1;
+static gint hf_dcerpc_dcerpc_request__pad = -1;
+static gint hf_dcerpc_dcerpc_auth_credentials = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_OTHER_CMD = -1;
+static gint hf_dcerpc_dcerpc_bind_nak_versions_versions = -1;
+static gint hf_dcerpc_ncadg_packet_activity = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_ChannelLifetime_ChannelLifetime = -1;
+static gint hf_dcerpc_ncadg_packet_auth_proto = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_assoc_group_id = -1;
+static gint hf_dcerpc_dcerpc_fault_context_id = -1;
+static gint hf_dcerpc_dcerpc_payload_rts = -1;
+static gint hf_dcerpc_ncacn_packet_drep = -1;
+static gint hf_dcerpc_dcerpc_payload_ack = -1;
+static gint hf_dcerpc_dcerpc_bind_nak_reject_reason = -1;
+static gint hf_dcerpc_dcerpc_cancel_ack_server_is_accepting = -1;
+static gint hf_dcerpc_dcerpc_payload_bind = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_ClientAddress_ClientAddress = -1;
+static gint hf_dcerpc_dcerpc_auth3_auth_info = -1;
+static gint hf_dcerpc_FlowControlAcknowledgment_AvailableWindow = -1;
+static gint hf_dcerpc_ncacn_packet_frag_length = -1;
+static gint hf_dcerpc_dcerpc_payload_alter = -1;
+static gint hf_dcerpc_dcerpc_bind_ack__pad1 = -1;
+static gint hf_dcerpc_dcerpc_ctx_list_num_transfer_syntaxes = -1;
+static gint hf_dcerpc_dcerpc_bind_auth_info = -1;
+static gint hf_dcerpc_dcerpc_auth_auth_level = -1;
+static gint hf_dcerpc_ncadg_packet_ptype = -1;
+static gint hf_dcerpc_ncacn_packet_ptype = -1;
+static gint hf_dcerpc_dcerpc_fault_status = -1;
+static gint hf_dcerpc_dcerpc_payload_fault = -1;
+static gint hf_dcerpc_ncadg_packet_serial_high = -1;
+static gint hf_dcerpc_dcerpc_auth3__pad = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_Padding_Padding = -1;
+static gint hf_dcerpc_ClientAddress_ClientAddress = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_Cookie_Cookie = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_ChannelLifetime = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_ConnectionTimeout_ConnectionTimeout = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_ReceiveWindowSize = -1;
+static gint hf_dcerpc_ncadg_packet_iface_version = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_ECHO = -1;
+static gint hf_dcerpc_dcerpc_bind_nak_versions_ctr_v = -1;
+static gint hf_dcerpc_ClientAddressType_ClientAddressIPV6 = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_NegativeANCE = -1;
+static gint hf_dcerpc_dcerpc_fack_max_tdsu = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_AssociationGroupId = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_CommandType = -1;
+static gint hf_dcerpc_ncacn_packet_rpc_vers = -1;
+static gint hf_dcerpc_dcerpc_bind_nak_versions = -1;
+static gint hf_dcerpc_dcerpc_request_context_id = -1;
+static gint hf_dcerpc_ncadg_packet_ahint = -1;
+static gint hf_dcerpc_dcerpc_payload_shutdown = -1;
+static gint hf_dcerpc_ClientAddressType_ClientAddressIPV4 = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_OUT_CHANNEL = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_ctx_list = -1;
+static gint hf_dcerpc_dcerpc_fack_version = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_Version_Version = -1;
+static gint hf_dcerpc_dcerpc_rts_cmd_ReceiveWindowSize_ReceiveWindowSize = -1;
+static gint hf_dcerpc_ncadg_packet_rpc_vers = -1;
+static gint hf_dcerpc_dcerpc_payload_working = -1;
+static gint hf_dcerpc_RTSCookie_Cookie = -1;
+static gint hf_dcerpc_dcerpc_rts_Flags = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_Version = -1;
+static gint hf_dcerpc_ClientAddress_AddressType = -1;
+static gint hf_dcerpc_dcerpc_response_context_id = -1;
+static gint hf_dcerpc_ncadg_packet_drep = -1;
+static gint hf_dcerpc_ncadg_packet_len = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_Empty = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_Destination = -1;
+static gint hf_dcerpc_opnum = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_ANCE = -1;
+static gint hf_dcerpc_dcerpc_fault_alloc_hint = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_NONE = -1;
+static gint hf_dcerpc_ncadg_packet_object = -1;
+static gint hf_dcerpc_dcerpc_response_cancel_count = -1;
+static gint hf_dcerpc_dcerpc_fack__pad1 = -1;
+static gint hf_dcerpc_dcerpc_ctx_list_abstract_syntax = -1;
+static gint hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_RECYCLE_CHANNEL = -1;
+static gint hf_dcerpc_ncacn_packet_pfc_flags = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_FlowControlAck = -1;
+static gint hf_dcerpc_dcerpc_rts_cmds_Cookie = -1;
+static gint hf_dcerpc_dcerpc_ctx_list_transfer_syntaxes = -1;
+static gint hf_dcerpc_dcerpc_bind_ack_auth_info = -1;
+
+static gint proto_dcerpc_dcerpc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_dcerpc = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_dcerpc = 0;
+
+static int dcerpc_dissect_element_ctx_list_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ctx_list_num_transfer_syntaxes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ctx_list_abstract_syntax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ctx_list_transfer_syntaxes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ctx_list_transfer_syntaxes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_max_xmit_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_max_recv_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_assoc_group_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_num_contexts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ctx_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ctx_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_object_empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_object_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_request_alloc_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_request_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_request_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_request_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int dcerpc_dissect_element_request__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_request_stub_and_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ack_ctx_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ack_ctx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ack_ctx_syntax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_max_xmit_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_max_recv_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_assoc_group_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_secondary_address_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_secondary_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_secondary_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack__pad1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_num_results(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_ctx_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_ctx_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_ack_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_nak_versions_num_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_nak_versions_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_nak_versions_versions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_nak_versions_ctr_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_bind_nak_reject_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *reject_reason);
+static int dcerpc_dissect_element_bind_nak_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *reject_reason);
+static int dcerpc_dissect_element_response_alloc_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_response_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_response_cancel_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_response__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_response_stub_and_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dcerpc_dcerpc_nca_status_vals[] = {
+       { DCERPC_NCA_S_COMM_FAILURE, "DCERPC_NCA_S_COMM_FAILURE" },
+       { DCERPC_NCA_S_OP_RNG_ERROR, "DCERPC_NCA_S_OP_RNG_ERROR" },
+       { DCERPC_NCA_S_UNKNOWN_IF, "DCERPC_NCA_S_UNKNOWN_IF" },
+       { DCERPC_NCA_S_WRONG_BOOT_TIME, "DCERPC_NCA_S_WRONG_BOOT_TIME" },
+       { DCERPC_NCA_S_YOU_CRASHED, "DCERPC_NCA_S_YOU_CRASHED" },
+       { DCERPC_NCA_S_PROTO_ERROR, "DCERPC_NCA_S_PROTO_ERROR" },
+       { DCERPC_NCA_S_OUT_ARGS_TOO_BIG, "DCERPC_NCA_S_OUT_ARGS_TOO_BIG" },
+       { DCERPC_NCA_S_SERVER_TOO_BUSY, "DCERPC_NCA_S_SERVER_TOO_BUSY" },
+       { DCERPC_NCA_S_FAULT_STRING_TOO_LARGE, "DCERPC_NCA_S_FAULT_STRING_TOO_LARGE" },
+       { DCERPC_NCA_S_UNSUPPORTED_TYPE, "DCERPC_NCA_S_UNSUPPORTED_TYPE" },
+       { DCERPC_NCA_S_FAULT_INT_DIV_BY_ZERO, "DCERPC_NCA_S_FAULT_INT_DIV_BY_ZERO" },
+       { DCERPC_NCA_S_FAULT_ADDR_ERROR, "DCERPC_NCA_S_FAULT_ADDR_ERROR" },
+       { DCERPC_NCA_S_FAULT_FP_DIV_BY_ZERO, "DCERPC_NCA_S_FAULT_FP_DIV_BY_ZERO" },
+       { DCERPC_NCA_S_FAULT_FP_UNDERFLOW, "DCERPC_NCA_S_FAULT_FP_UNDERFLOW" },
+       { DCERPC_NCA_S_FAULT_FP_OVERRFLOW, "DCERPC_NCA_S_FAULT_FP_OVERRFLOW" },
+       { DCERPC_NCA_S_FAULT_INVALID_TAG, "DCERPC_NCA_S_FAULT_INVALID_TAG" },
+       { DCERPC_NCA_S_FAULT_INVALID_BOUND, "DCERPC_NCA_S_FAULT_INVALID_BOUND" },
+       { DCERPC_NCA_S_FAULT_RPC_VERSION_MISMATCH, "DCERPC_NCA_S_FAULT_RPC_VERSION_MISMATCH" },
+       { DCERPC_NCA_S_FAULT_UNSPEC_REJECT, "DCERPC_NCA_S_FAULT_UNSPEC_REJECT" },
+       { DCERPC_NCA_S_FAULT_BAD_ACTID, "DCERPC_NCA_S_FAULT_BAD_ACTID" },
+       { DCERPC_NCA_S_FAULT_WHO_ARE_YOU_FAILED, "DCERPC_NCA_S_FAULT_WHO_ARE_YOU_FAILED" },
+       { DCERPC_NCA_S_FAULT_MANAGER_NOT_ENTERED, "DCERPC_NCA_S_FAULT_MANAGER_NOT_ENTERED" },
+       { DCERPC_NCA_S_FAULT_CANCEL, "DCERPC_NCA_S_FAULT_CANCEL" },
+       { DCERPC_NCA_S_FAULT_ILL_INST, "DCERPC_NCA_S_FAULT_ILL_INST" },
+       { DCERPC_NCA_S_FAULT_FP_ERROR, "DCERPC_NCA_S_FAULT_FP_ERROR" },
+       { DCERPC_NCA_S_FAULT_INT_OVERFLOW, "DCERPC_NCA_S_FAULT_INT_OVERFLOW" },
+       { DCERPC_NCA_S_UNUSED_1C000011, "DCERPC_NCA_S_UNUSED_1C000011" },
+       { DCERPC_NCA_S_FAULT_UNSPEC, "DCERPC_NCA_S_FAULT_UNSPEC" },
+       { DCERPC_NCA_S_FAULT_REMOTE_COMM_FAILURE, "DCERPC_NCA_S_FAULT_REMOTE_COMM_FAILURE" },
+       { DCERPC_NCA_S_FAULT_PIPE_EMPTY, "DCERPC_NCA_S_FAULT_PIPE_EMPTY" },
+       { DCERPC_NCA_S_FAULT_PIPE_CLOSED, "DCERPC_NCA_S_FAULT_PIPE_CLOSED" },
+       { DCERPC_NCA_S_FAULT_PIPE_ORDER, "DCERPC_NCA_S_FAULT_PIPE_ORDER" },
+       { DCERPC_NCA_S_FAULT_PIPE_DISCIPLINE, "DCERPC_NCA_S_FAULT_PIPE_DISCIPLINE" },
+       { DCERPC_NCA_S_FAULT_PIPE_COMM_ERROR, "DCERPC_NCA_S_FAULT_PIPE_COMM_ERROR" },
+       { DCERPC_NCA_S_FAULT_PIPE_MEMORY, "DCERPC_NCA_S_FAULT_PIPE_MEMORY" },
+       { DCERPC_NCA_S_FAULT_CONTEXT_MISMATCH, "DCERPC_NCA_S_FAULT_CONTEXT_MISMATCH" },
+       { DCERPC_NCA_S_FAULT_REMOTE_NO_MEMORY, "DCERPC_NCA_S_FAULT_REMOTE_NO_MEMORY" },
+       { DCERPC_NCA_S_INVALID_PRES_CONTEXT_ID, "DCERPC_NCA_S_INVALID_PRES_CONTEXT_ID" },
+       { DCERPC_NCA_S_UNSUPPORTED_AUTHN_LEVEL, "DCERPC_NCA_S_UNSUPPORTED_AUTHN_LEVEL" },
+       { DCERPC_NCA_S_UNUSED_1C00001E, "DCERPC_NCA_S_UNUSED_1C00001E" },
+       { DCERPC_NCA_S_INVALID_CHECKSUM, "DCERPC_NCA_S_INVALID_CHECKSUM" },
+       { DCERPC_NCA_S_INVALID_CRC, "DCERPC_NCA_S_INVALID_CRC" },
+       { DCERPC_NCA_S_FAULT_USER_DEFINED, "DCERPC_NCA_S_FAULT_USER_DEFINED" },
+       { DCERPC_NCA_S_FAULT_TX_OPEN_FAILED, "DCERPC_NCA_S_FAULT_TX_OPEN_FAILED" },
+       { DCERPC_NCA_S_FAULT_CODESET_CONV_ERROR, "DCERPC_NCA_S_FAULT_CODESET_CONV_ERROR" },
+       { DCERPC_NCA_S_FAULT_OBJECT_NOT_FOUND, "DCERPC_NCA_S_FAULT_OBJECT_NOT_FOUND" },
+       { DCERPC_NCA_S_FAULT_NO_CLIENT_STUB, "DCERPC_NCA_S_FAULT_NO_CLIENT_STUB" },
+{ 0, NULL }
+};
+static int dcerpc_dissect_element_fault_alloc_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fault_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fault_cancel_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fault_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fault__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dcerpc_dcerpc_AuthType_vals[] = {
+       { DCERPC_AUTH_TYPE_NONE, "DCERPC_AUTH_TYPE_NONE" },
+       { DCERPC_AUTH_TYPE_KRB5_1, "DCERPC_AUTH_TYPE_KRB5_1" },
+       { DCERPC_AUTH_TYPE_SPNEGO, "DCERPC_AUTH_TYPE_SPNEGO" },
+       { DCERPC_AUTH_TYPE_NTLMSSP, "DCERPC_AUTH_TYPE_NTLMSSP" },
+       { DCERPC_AUTH_TYPE_KRB5, "DCERPC_AUTH_TYPE_KRB5" },
+       { DCERPC_AUTH_TYPE_DPA, "DCERPC_AUTH_TYPE_DPA" },
+       { DCERPC_AUTH_TYPE_MSN, "DCERPC_AUTH_TYPE_MSN" },
+       { DCERPC_AUTH_TYPE_DIGEST, "DCERPC_AUTH_TYPE_DIGEST" },
+       { DCERPC_AUTH_TYPE_SCHANNEL, "DCERPC_AUTH_TYPE_SCHANNEL" },
+       { DCERPC_AUTH_TYPE_MSMQ, "DCERPC_AUTH_TYPE_MSMQ" },
+       { DCERPC_AUTH_TYPE_NCALRPC_AS_SYSTEM, "DCERPC_AUTH_TYPE_NCALRPC_AS_SYSTEM" },
+{ 0, NULL }
+};
+const value_string dcerpc_dcerpc_AuthLevel_vals[] = {
+       { DCERPC_AUTH_LEVEL_NONE, "DCERPC_AUTH_LEVEL_NONE" },
+       { DCERPC_AUTH_LEVEL_CONNECT, "DCERPC_AUTH_LEVEL_CONNECT" },
+       { DCERPC_AUTH_LEVEL_CALL, "DCERPC_AUTH_LEVEL_CALL" },
+       { DCERPC_AUTH_LEVEL_PACKET, "DCERPC_AUTH_LEVEL_PACKET" },
+       { DCERPC_AUTH_LEVEL_INTEGRITY, "DCERPC_AUTH_LEVEL_INTEGRITY" },
+       { DCERPC_AUTH_LEVEL_PRIVACY, "DCERPC_AUTH_LEVEL_PRIVACY" },
+{ 0, NULL }
+};
+static int dcerpc_dissect_element_auth_auth_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth_auth_pad_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth_auth_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth_auth_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth3__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_auth3_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_orphaned__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_orphaned_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_co_cancel__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_co_cancel_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_cl_cancel_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_cl_cancel_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_cancel_ack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_cancel_ack_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_cancel_ack_server_is_accepting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack__pad1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_window_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_max_tdsu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_max_frag_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_serial_no(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_selack_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_selack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_fack_selack_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_RTSCookie_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dcerpc_AddressType_vals[] = {
+       { RTS_IPV4, "RTS_IPV4" },
+       { RTS_IPV6, "RTS_IPV6" },
+{ 0, NULL }
+};
+static int dcerpc_dissect_element_ClientAddressType_ClientAddressIPV4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ClientAddressType_ClientAddressIPV6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ClientAddress_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AddressType);
+static int dcerpc_dissect_element_ClientAddress_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AddressType);
+static int dcerpc_dissect_element_ClientAddress_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ClientAddress_Padding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dcerpc_ForwardDestination_vals[] = {
+       { FDClient, "FDClient" },
+       { FDInProxy, "FDInProxy" },
+       { FDServer, "FDServer" },
+       { FDOutProxy, "FDOutProxy" },
+{ 0, NULL }
+};
+static int dcerpc_dissect_element_FlowControlAcknowledgment_BytesReceived(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_FlowControlAcknowledgment_AvailableWindow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_FlowControlAcknowledgment_ChannelCookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_ReceiveWindowSize_ReceiveWindowSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_FlowControlAck_Ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_ConnectionTimeout_ConnectionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_Cookie_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_ChannelLifetime_ChannelLifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_ClientKeepalive_ClientKeepalive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_Version_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_Padding_ConformanceCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_Padding_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_Padding_Padding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_ClientAddress_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_AssociationGroupId_AssociationGroupId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_Destination_ForwardDestination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_PingTrafficSentNotify_PingTrafficSent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_ReceiveWindowSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_FlowControlAck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_ConnectionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_ChannelLifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_ClientKeepalive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_Empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_NegativeANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_ANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_AssociationGroupId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_Destination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmds_PingTrafficSentNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_cmd_CommandType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *CommandType);
+static int dcerpc_dissect_element_rts_cmd_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *CommandType);
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_NONE_tfs = {
+   "RTS_FLAG_NONE is SET",
+   "RTS_FLAG_NONE is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_PING_tfs = {
+   "RTS_FLAG_PING is SET",
+   "RTS_FLAG_PING is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_OTHER_CMD_tfs = {
+   "RTS_FLAG_OTHER_CMD is SET",
+   "RTS_FLAG_OTHER_CMD is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_RECYCLE_CHANNEL_tfs = {
+   "RTS_FLAG_RECYCLE_CHANNEL is SET",
+   "RTS_FLAG_RECYCLE_CHANNEL is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_IN_CHANNEL_tfs = {
+   "RTS_FLAG_IN_CHANNEL is SET",
+   "RTS_FLAG_IN_CHANNEL is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_OUT_CHANNEL_tfs = {
+   "RTS_FLAG_OUT_CHANNEL is SET",
+   "RTS_FLAG_OUT_CHANNEL is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_EOF_tfs = {
+   "RTS_FLAG_EOF is SET",
+   "RTS_FLAG_EOF is NOT SET",
+};
+static const true_false_string dcerpc_rts_flags_RTS_FLAG_ECHO_tfs = {
+   "RTS_FLAG_ECHO is SET",
+   "RTS_FLAG_ECHO is NOT SET",
+};
+static int dcerpc_dissect_element_rts_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_NumberOfCommands(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_Commands(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_rts_Commands_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dcerpc_dcerpc_pkt_type_vals[] = {
+       { DCERPC_PKT_REQUEST, "DCERPC_PKT_REQUEST" },
+       { DCERPC_PKT_PING, "DCERPC_PKT_PING" },
+       { DCERPC_PKT_RESPONSE, "DCERPC_PKT_RESPONSE" },
+       { DCERPC_PKT_FAULT, "DCERPC_PKT_FAULT" },
+       { DCERPC_PKT_WORKING, "DCERPC_PKT_WORKING" },
+       { DCERPC_PKT_NOCALL, "DCERPC_PKT_NOCALL" },
+       { DCERPC_PKT_REJECT, "DCERPC_PKT_REJECT" },
+       { DCERPC_PKT_ACK, "DCERPC_PKT_ACK" },
+       { DCERPC_PKT_CL_CANCEL, "DCERPC_PKT_CL_CANCEL" },
+       { DCERPC_PKT_FACK, "DCERPC_PKT_FACK" },
+       { DCERPC_PKT_CANCEL_ACK, "DCERPC_PKT_CANCEL_ACK" },
+       { DCERPC_PKT_BIND, "DCERPC_PKT_BIND" },
+       { DCERPC_PKT_BIND_ACK, "DCERPC_PKT_BIND_ACK" },
+       { DCERPC_PKT_BIND_NAK, "DCERPC_PKT_BIND_NAK" },
+       { DCERPC_PKT_ALTER, "DCERPC_PKT_ALTER" },
+       { DCERPC_PKT_ALTER_RESP, "DCERPC_PKT_ALTER_RESP" },
+       { DCERPC_PKT_AUTH3, "DCERPC_PKT_AUTH3" },
+       { DCERPC_PKT_SHUTDOWN, "DCERPC_PKT_SHUTDOWN" },
+       { DCERPC_PKT_CO_CANCEL, "DCERPC_PKT_CO_CANCEL" },
+       { DCERPC_PKT_ORPHANED, "DCERPC_PKT_ORPHANED" },
+       { DCERPC_PKT_RTS, "DCERPC_PKT_RTS" },
+{ 0, NULL }
+};
+static int dcerpc_dissect_element_payload_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_ping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_fault(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_working(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_nocall(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_cl_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_fack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_cancel_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_bind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_bind_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_bind_nak(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_alter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_alter_resp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_shutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_co_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_orphaned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_auth3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_payload_rts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_rpc_vers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_rpc_vers_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_ptype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *ptype);
+static int dcerpc_dissect_element_ncacn_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_frag_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_auth_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_call_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncacn_packet_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *ptype);
+static int dcerpc_dissect_element_ncadg_packet_rpc_vers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_ptype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *ptype);
+static int dcerpc_dissect_element_ncadg_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_ncadg_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_serial_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_iface(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_activity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_server_boot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_iface_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_seq_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_ihint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_ahint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_fragnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_auth_proto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_serial_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dcerpc_dissect_element_ncadg_packet_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *ptype);
+
+
+/* IDL: struct { */
+/* IDL:        uint16 context_id; */
+/* IDL:        uint8 num_transfer_syntaxes; */
+/* IDL:        ndr_syntax_id abstract_syntax; */
+/* IDL:        ndr_syntax_id transfer_syntaxes[num_transfer_syntaxes]; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_ctx_list_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_ctx_list_context_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ctx_list_num_transfer_syntaxes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_ctx_list_num_transfer_syntaxes, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ctx_list_abstract_syntax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ndr_syntax_id(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_ctx_list_abstract_syntax,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ctx_list_transfer_syntaxes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ctx_list_transfer_syntaxes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ndr_syntax_id(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_ctx_list_transfer_syntaxes,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_ctx_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_ctx_list);
+       }
+       
+       offset = dcerpc_dissect_element_ctx_list_context_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ctx_list_num_transfer_syntaxes(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ctx_list_abstract_syntax(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ctx_list_transfer_syntaxes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 max_xmit_frag; */
+/* IDL:        uint16 max_recv_frag; */
+/* IDL:        uint32 assoc_group_id; */
+/* IDL:        uint8 num_contexts; */
+/* IDL:        dcerpc_ctx_list ctx_list[num_contexts]; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB auth_info; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_bind_max_xmit_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_max_xmit_frag, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_max_recv_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_max_recv_frag, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_assoc_group_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_assoc_group_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_num_contexts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_num_contexts, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ctx_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ctx_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ctx_list(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_bind_ctx_list,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_auth_info, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_bind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_bind);
+       }
+       
+       offset = dcerpc_dissect_element_bind_max_xmit_frag(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_max_recv_frag(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_assoc_group_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_num_contexts(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ctx_list(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_empty);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [default] ; */
+/* IDL: [case(LIBNDR_FLAG_OBJECT_PRESENT)] [case(LIBNDR_FLAG_OBJECT_PRESENT)] GUID object; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_object_empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_empty(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_object_empty,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_object_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_object_object, NULL);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dcerpc_object");
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_object);
+       }
+
+       switch(level) {
+               default:
+                       offset = dcerpc_dissect_element_object_empty(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LIBNDR_FLAG_OBJECT_PRESENT:
+                       offset = dcerpc_dissect_element_object_object(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 alloc_hint; */
+/* IDL:        uint16 context_id; */
+/* IDL:        uint16 opnum; */
+/* IDL:        [switch_is(ndr->flags&LIBNDR_FLAG_OBJECT_PRESENT)] dcerpc_object object; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN8)] DATA_BLOB _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB stub_and_verifier; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_request_alloc_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_request_alloc_hint, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_request_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_request_context_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_request_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_request_opnum, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_request_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = dcerpc_dissect_object(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_request_object, *);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_request__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_request__pad, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_request_stub_and_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_request_stub_and_verifier, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_request);
+       }
+       
+       offset = dcerpc_dissect_element_request_alloc_hint(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_request_context_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_request_opnum(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_request_object(tvb, offset, pinfo, tree, drep, &);
+
+       offset = dcerpc_dissect_element_request__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_request_stub_and_verifier(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 result; */
+/* IDL:        uint16 reason; */
+/* IDL:        ndr_syntax_id syntax; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_ack_ctx_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_ack_ctx_result, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ack_ctx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_ack_ctx_reason, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ack_ctx_syntax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ndr_syntax_id(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_ack_ctx_syntax,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_ack_ctx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_ack_ctx);
+       }
+       
+       offset = dcerpc_dissect_element_ack_ctx_result(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ack_ctx_reason(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ack_ctx_syntax(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 max_xmit_frag; */
+/* IDL:        uint16 max_recv_frag; */
+/* IDL:        uint32 assoc_group_id; */
+/* IDL:        [value(strlen(secondary_address)+1)] uint16 secondary_address_size; */
+/* IDL:        [charset(DOS)] uint8 secondary_address[secondary_address_size]; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN4)] DATA_BLOB _pad1; */
+/* IDL:        uint8 num_results; */
+/* IDL:        dcerpc_ack_ctx ctx_list[num_results]; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB auth_info; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_bind_ack_max_xmit_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_max_xmit_frag, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_max_recv_frag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_max_recv_frag, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_assoc_group_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_assoc_group_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_secondary_address_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_secondary_address_size, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_secondary_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_secondary_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_secondary_address, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack__pad1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack__pad1, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_num_results(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_num_results, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_ctx_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_ctx_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ack_ctx(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_bind_ack_ctx_list,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_ack_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_ack_auth_info, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_bind_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_bind_ack);
+       }
+       
+       offset = dcerpc_dissect_element_bind_ack_max_xmit_frag(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_max_recv_frag(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_assoc_group_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_secondary_address_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_secondary_address(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack__pad1(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_num_results(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_ctx_list(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_ack_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_versions; */
+/* IDL:        uint32 versions[num_versions]; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_bind_nak_versions_num_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_nak_versions_num_versions, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_nak_versions_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_nak_versions_versions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_nak_versions_versions, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_bind_nak_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_bind_nak_versions);
+       }
+       
+       offset = dcerpc_dissect_element_bind_nak_versions_num_versions(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_bind_nak_versions_versions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED)] [case(DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED)] dcerpc_bind_nak_versions v; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_bind_nak_versions_ctr_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_bind_nak_versions(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_bind_nak_versions_ctr_v,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_bind_nak_versions_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dcerpc_bind_nak_versions_ctr");
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_bind_nak_versions_ctr);
+       }
+
+       switch(level) {
+               case DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED:
+                       offset = dcerpc_dissect_element_bind_nak_versions_ctr_v(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 reject_reason; */
+/* IDL:        [switch_is(reject_reason)] dcerpc_bind_nak_versions_ctr versions; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_bind_nak_reject_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *reject_reason)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_nak_reject_reason, reject_reason);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_bind_nak_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *reject_reason)
+{
+       offset = dcerpc_dissect_bind_nak_versions_ctr(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_bind_nak_versions, *reject_reason);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_bind_nak(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g reject_reason;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_bind_nak);
+       }
+       
+       offset = dcerpc_dissect_element_bind_nak_reject_reason(tvb, offset, pinfo, tree, drep, &reject_reason);
+
+       offset = dcerpc_dissect_element_bind_nak_versions(tvb, offset, pinfo, tree, drep, &reject_reason);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 alloc_hint; */
+/* IDL:        uint16 context_id; */
+/* IDL:        uint8 cancel_count; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN8)] DATA_BLOB _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB stub_and_verifier; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_response_alloc_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_response_alloc_hint, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_response_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_response_context_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_response_cancel_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_response_cancel_count, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_response__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_response__pad, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_response_stub_and_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_response_stub_and_verifier, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_response);
+       }
+       
+       offset = dcerpc_dissect_element_response_alloc_hint(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_response_context_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_response_cancel_count(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_response__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_response_stub_and_verifier(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DCERPC_NCA_S_COMM_FAILURE=0x1C010001, */
+/* IDL:        DCERPC_NCA_S_OP_RNG_ERROR=0x1C010002, */
+/* IDL:        DCERPC_NCA_S_UNKNOWN_IF=0x1C010003, */
+/* IDL:        DCERPC_NCA_S_WRONG_BOOT_TIME=0x1C010006, */
+/* IDL:        DCERPC_NCA_S_YOU_CRASHED=0x1C010009, */
+/* IDL:        DCERPC_NCA_S_PROTO_ERROR=0x1C01000B, */
+/* IDL:        DCERPC_NCA_S_OUT_ARGS_TOO_BIG=0x1C010013, */
+/* IDL:        DCERPC_NCA_S_SERVER_TOO_BUSY=0x1C010014, */
+/* IDL:        DCERPC_NCA_S_FAULT_STRING_TOO_LARGE=0x1C010015, */
+/* IDL:        DCERPC_NCA_S_UNSUPPORTED_TYPE=0x1C010017, */
+/* IDL:        DCERPC_NCA_S_FAULT_INT_DIV_BY_ZERO=0x1C000001, */
+/* IDL:        DCERPC_NCA_S_FAULT_ADDR_ERROR=0x1C000002, */
+/* IDL:        DCERPC_NCA_S_FAULT_FP_DIV_BY_ZERO=0x1C000003, */
+/* IDL:        DCERPC_NCA_S_FAULT_FP_UNDERFLOW=0x1C000004, */
+/* IDL:        DCERPC_NCA_S_FAULT_FP_OVERRFLOW=0x1C000005, */
+/* IDL:        DCERPC_NCA_S_FAULT_INVALID_TAG=0x1C000006, */
+/* IDL:        DCERPC_NCA_S_FAULT_INVALID_BOUND=0x1C000007, */
+/* IDL:        DCERPC_NCA_S_FAULT_RPC_VERSION_MISMATCH=0x1C000008, */
+/* IDL:        DCERPC_NCA_S_FAULT_UNSPEC_REJECT=0x1C000009, */
+/* IDL:        DCERPC_NCA_S_FAULT_BAD_ACTID=0x1C00000A, */
+/* IDL:        DCERPC_NCA_S_FAULT_WHO_ARE_YOU_FAILED=0x1C00000B, */
+/* IDL:        DCERPC_NCA_S_FAULT_MANAGER_NOT_ENTERED=0x1C00000C, */
+/* IDL:        DCERPC_NCA_S_FAULT_CANCEL=0x1C00000D, */
+/* IDL:        DCERPC_NCA_S_FAULT_ILL_INST=0x1C00000E, */
+/* IDL:        DCERPC_NCA_S_FAULT_FP_ERROR=0x1C00000F, */
+/* IDL:        DCERPC_NCA_S_FAULT_INT_OVERFLOW=0x1C000010, */
+/* IDL:        DCERPC_NCA_S_UNUSED_1C000011=0x1C000011, */
+/* IDL:        DCERPC_NCA_S_FAULT_UNSPEC=0x1C000012, */
+/* IDL:        DCERPC_NCA_S_FAULT_REMOTE_COMM_FAILURE=0x1C000013, */
+/* IDL:        DCERPC_NCA_S_FAULT_PIPE_EMPTY=0x1C000014, */
+/* IDL:        DCERPC_NCA_S_FAULT_PIPE_CLOSED=0x1C000015, */
+/* IDL:        DCERPC_NCA_S_FAULT_PIPE_ORDER=0x1C000016, */
+/* IDL:        DCERPC_NCA_S_FAULT_PIPE_DISCIPLINE=0x1C000017, */
+/* IDL:        DCERPC_NCA_S_FAULT_PIPE_COMM_ERROR=0x1C000018, */
+/* IDL:        DCERPC_NCA_S_FAULT_PIPE_MEMORY=0x1C000019, */
+/* IDL:        DCERPC_NCA_S_FAULT_CONTEXT_MISMATCH=0x1C00001A, */
+/* IDL:        DCERPC_NCA_S_FAULT_REMOTE_NO_MEMORY=0x1C00001B, */
+/* IDL:        DCERPC_NCA_S_INVALID_PRES_CONTEXT_ID=0x1C00001C, */
+/* IDL:        DCERPC_NCA_S_UNSUPPORTED_AUTHN_LEVEL=0x1C00001D, */
+/* IDL:        DCERPC_NCA_S_UNUSED_1C00001E=0x1C00001E, */
+/* IDL:        DCERPC_NCA_S_INVALID_CHECKSUM=0x1C00001F, */
+/* IDL:        DCERPC_NCA_S_INVALID_CRC=0x1C000020, */
+/* IDL:        DCERPC_NCA_S_FAULT_USER_DEFINED=0x1C000021, */
+/* IDL:        DCERPC_NCA_S_FAULT_TX_OPEN_FAILED=0x1C000022, */
+/* IDL:        DCERPC_NCA_S_FAULT_CODESET_CONV_ERROR=0x1C000023, */
+/* IDL:        DCERPC_NCA_S_FAULT_OBJECT_NOT_FOUND=0x1C000024, */
+/* IDL:        DCERPC_NCA_S_FAULT_NO_CLIENT_STUB=0x1C000025, */
+/* IDL: } */
+
+int
+dcerpc_dissect_enum_nca_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 alloc_hint; */
+/* IDL:        uint16 context_id; */
+/* IDL:        uint8 cancel_count; */
+/* IDL:        dcerpc_nca_status status; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB _pad; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_fault_alloc_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fault_alloc_hint, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fault_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fault_context_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fault_cancel_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fault_cancel_count, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fault_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_enum_nca_status(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fault_status, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fault__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fault__pad, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_fault(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_fault);
+       }
+       
+       offset = dcerpc_dissect_element_fault_alloc_hint(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fault_context_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fault_cancel_count(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fault_status(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fault__pad(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DCERPC_AUTH_TYPE_NONE=0, */
+/* IDL:        DCERPC_AUTH_TYPE_KRB5_1=1, */
+/* IDL:        DCERPC_AUTH_TYPE_SPNEGO=9, */
+/* IDL:        DCERPC_AUTH_TYPE_NTLMSSP=10, */
+/* IDL:        DCERPC_AUTH_TYPE_KRB5=16, */
+/* IDL:        DCERPC_AUTH_TYPE_DPA=17, */
+/* IDL:        DCERPC_AUTH_TYPE_MSN=18, */
+/* IDL:        DCERPC_AUTH_TYPE_DIGEST=21, */
+/* IDL:        DCERPC_AUTH_TYPE_SCHANNEL=68, */
+/* IDL:        DCERPC_AUTH_TYPE_MSMQ=100, */
+/* IDL:        DCERPC_AUTH_TYPE_NCALRPC_AS_SYSTEM=200, */
+/* IDL: } */
+
+int
+dcerpc_dissect_enum_AuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DCERPC_AUTH_LEVEL_NONE=1, */
+/* IDL:        DCERPC_AUTH_LEVEL_CONNECT=2, */
+/* IDL:        DCERPC_AUTH_LEVEL_CALL=3, */
+/* IDL:        DCERPC_AUTH_LEVEL_PACKET=4, */
+/* IDL:        DCERPC_AUTH_LEVEL_INTEGRITY=5, */
+/* IDL:        DCERPC_AUTH_LEVEL_PRIVACY=6, */
+/* IDL: } */
+
+int
+dcerpc_dissect_enum_AuthLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dcerpc_AuthType auth_type; */
+/* IDL:        dcerpc_AuthLevel auth_level; */
+/* IDL:        uint8 auth_pad_length; */
+/* IDL:        uint8 auth_reserved; */
+/* IDL:        uint32 auth_context_id; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB credentials; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_auth_auth_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_enum_AuthType(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth_auth_type, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_auth_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_enum_AuthLevel(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth_auth_level, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_auth_auth_pad_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth_auth_pad_length, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_auth_auth_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth_auth_reserved, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_auth_auth_context_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth_auth_context_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_auth_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth_credentials, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_auth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_auth);
+       }
+       
+       offset = dcerpc_dissect_element_auth_auth_type(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_auth_auth_level(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_auth_auth_pad_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_auth_auth_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_auth_auth_context_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_auth_credentials(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB auth_info; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_auth3__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth3__pad, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_auth3_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_auth3_auth_info, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_auth3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_auth3);
+       }
+       
+       offset = dcerpc_dissect_element_auth3__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_auth3_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB auth_info; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_orphaned__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_orphaned__pad, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_orphaned_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_orphaned_auth_info, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_orphaned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_orphaned);
+       }
+       
+       offset = dcerpc_dissect_element_orphaned__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_orphaned_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB auth_info; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_co_cancel__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_co_cancel__pad, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_co_cancel_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_co_cancel_auth_info, 1);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_co_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_co_cancel);
+       }
+       
+       offset = dcerpc_dissect_element_co_cancel__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_co_cancel_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        uint32 id; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_cl_cancel_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_cl_cancel_version, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_cl_cancel_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_cl_cancel_id, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_cl_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_cl_cancel);
+       }
+       
+       offset = dcerpc_dissect_element_cl_cancel_version(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_cl_cancel_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        uint32 id; */
+/* IDL:        uint32 server_is_accepting; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_cancel_ack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_cancel_ack_version, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_cancel_ack_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_cancel_ack_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_cancel_ack_server_is_accepting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_cancel_ack_server_is_accepting, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_cancel_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_cancel_ack);
+       }
+       
+       offset = dcerpc_dissect_element_cancel_ack_version(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_cancel_ack_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_cancel_ack_server_is_accepting(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        uint8 _pad1; */
+/* IDL:        uint16 window_size; */
+/* IDL:        uint32 max_tdsu; */
+/* IDL:        uint32 max_frag_size; */
+/* IDL:        uint16 serial_no; */
+/* IDL:        uint16 selack_size; */
+/* IDL:        uint32 selack[selack_size]; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_fack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_version, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack__pad1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack__pad1, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_window_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_window_size, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_max_tdsu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_max_tdsu, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_max_frag_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_max_frag_size, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_serial_no(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_serial_no, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_selack_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_selack_size, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_selack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_fack_selack_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_fack_selack, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_fack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_fack);
+       }
+       
+       offset = dcerpc_dissect_element_fack_version(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack__pad1(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack_window_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack_max_tdsu(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack_max_frag_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack_serial_no(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack_selack_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_fack_selack(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_ack);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_ping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_ping);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_shutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_shutdown);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_working(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_working);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID Cookie; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_RTSCookie_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dcerpc_RTSCookie_Cookie, NULL);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_RTSCookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_RTSCookie);
+       }
+       
+       offset = dcerpc_dissect_element_RTSCookie_Cookie(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        RTS_IPV4=0, */
+/* IDL:        RTS_IPV6=1, */
+/* IDL: } */
+
+int
+dcerpc_dissect_enum_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(RTS_IPV4)] [case(RTS_IPV4)] ipv4address ClientAddressIPV4; */
+/* IDL: [case(RTS_IPV6)] [case(RTS_IPV6)] ipv6address ClientAddressIPV6; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_ClientAddressType_ClientAddressIPV4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_dcerpc_ClientAddressType_ClientAddressIPV4,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ClientAddressType_ClientAddressIPV6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ipv6address(tvb,offset,pinfo,tree,drep,hf_dcerpc_ClientAddressType_ClientAddressIPV6,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_ClientAddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ClientAddressType");
+               tree = proto_item_add_subtree(item, ett_dcerpc_ClientAddressType);
+       }
+
+       switch(level) {
+               case RTS_IPV4:
+                       offset = dcerpc_dissect_element_ClientAddressType_ClientAddressIPV4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case RTS_IPV6:
+                       offset = dcerpc_dissect_element_ClientAddressType_ClientAddressIPV6(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        AddressType AddressType; */
+/* IDL:        [switch_is(AddressType)] ClientAddressType ClientAddress; */
+/* IDL:        uint8 Padding[12]; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_ClientAddress_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AddressType)
+{
+       offset = dcerpc_dissect_enum_AddressType(tvb, offset, pinfo, tree, drep, hf_dcerpc_ClientAddress_AddressType, AddressType);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ClientAddress_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AddressType)
+{
+       offset = dcerpc_dissect_ClientAddressType(tvb, offset, pinfo, tree, drep, hf_dcerpc_ClientAddress_ClientAddress, *AddressType);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ClientAddress_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 12; i++)
+               offset = dcerpc_dissect_element_ClientAddress_Padding_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ClientAddress_Padding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ClientAddress_Padding, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 AddressType;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_ClientAddress);
+       }
+       
+       offset = dcerpc_dissect_element_ClientAddress_AddressType(tvb, offset, pinfo, tree, drep, &AddressType);
+
+       offset = dcerpc_dissect_element_ClientAddress_ClientAddress(tvb, offset, pinfo, tree, drep, &AddressType);
+
+       offset = dcerpc_dissect_element_ClientAddress_Padding(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FDClient=0, */
+/* IDL:        FDInProxy=1, */
+/* IDL:        FDServer=2, */
+/* IDL:        FDOutProxy=3, */
+/* IDL: } */
+
+int
+dcerpc_dissect_enum_ForwardDestination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 BytesReceived; */
+/* IDL:        uint32 AvailableWindow; */
+/* IDL:        RTSCookie ChannelCookie; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_FlowControlAcknowledgment_BytesReceived(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_FlowControlAcknowledgment_BytesReceived, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_FlowControlAcknowledgment_AvailableWindow(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_FlowControlAcknowledgment_AvailableWindow, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_FlowControlAcknowledgment_ChannelCookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_RTSCookie(tvb,offset,pinfo,tree,drep,hf_dcerpc_FlowControlAcknowledgment_ChannelCookie,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_FlowControlAcknowledgment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_FlowControlAcknowledgment);
+       }
+       
+       offset = dcerpc_dissect_element_FlowControlAcknowledgment_BytesReceived(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_FlowControlAcknowledgment_AvailableWindow(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_FlowControlAcknowledgment_ChannelCookie(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0x2000,0x40000)] uint32 ReceiveWindowSize; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_ReceiveWindowSize_ReceiveWindowSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_ReceiveWindowSize_ReceiveWindowSize, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_ReceiveWindowSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_ReceiveWindowSize);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_ReceiveWindowSize_ReceiveWindowSize(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        FlowControlAcknowledgment Ack; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_FlowControlAck_Ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_FlowControlAcknowledgment(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmd_FlowControlAck_Ack,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_FlowControlAck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_FlowControlAck);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_FlowControlAck_Ack(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0x1D4C0,0xDBBA00)] uint32 ConnectionTimeout; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_ConnectionTimeout_ConnectionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_ConnectionTimeout_ConnectionTimeout, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_ConnectionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_ConnectionTimeout);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_ConnectionTimeout_ConnectionTimeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        RTSCookie Cookie; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_Cookie_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_RTSCookie(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmd_Cookie_Cookie,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_Cookie);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_Cookie_Cookie(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0x20000,0x80000000)] uint32 ChannelLifetime; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_ChannelLifetime_ChannelLifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_ChannelLifetime_ChannelLifetime, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_ChannelLifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_ChannelLifetime);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_ChannelLifetime_ChannelLifetime(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 ClientKeepalive; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_ClientKeepalive_ClientKeepalive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_ClientKeepalive_ClientKeepalive, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_ClientKeepalive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_ClientKeepalive);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_ClientKeepalive_ClientKeepalive(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 Version; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_Version_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_Version_Version, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_Version);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_Version_Version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_rts_cmd_Empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_Empty);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0x0,0xFFFF)] uint32 ConformanceCount; */
+/* IDL:        uint8 Padding[ConformanceCount]; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_Padding_ConformanceCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_Padding_ConformanceCount, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmd_Padding_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmd_Padding_Padding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_Padding_Padding, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_Padding);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_Padding_ConformanceCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_rts_cmd_Padding_Padding(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_rts_cmd_NegativeANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_NegativeANCE);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+dcerpc_dissect_struct_rts_cmd_ANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_ANCE);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        ClientAddress ClientAddress; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_ClientAddress_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ClientAddress(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmd_ClientAddress_ClientAddress,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_ClientAddress);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_ClientAddress_ClientAddress(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        RTSCookie AssociationGroupId; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_AssociationGroupId_AssociationGroupId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_RTSCookie(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmd_AssociationGroupId_AssociationGroupId,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_AssociationGroupId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_AssociationGroupId);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_AssociationGroupId_AssociationGroupId(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        ForwardDestination ForwardDestination; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_Destination_ForwardDestination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_enum_ForwardDestination(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_Destination_ForwardDestination, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_Destination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_Destination);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_Destination_ForwardDestination(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 PingTrafficSent; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_PingTrafficSentNotify_PingTrafficSent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_PingTrafficSentNotify_PingTrafficSent, 0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd_PingTrafficSentNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd_PingTrafficSentNotify);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_PingTrafficSentNotify_PingTrafficSent(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(0x0)] [case(0x0)] dcerpc_rts_cmd_ReceiveWindowSize ReceiveWindowSize; */
+/* IDL: [case(0x1)] [case(0x1)] dcerpc_rts_cmd_FlowControlAck FlowControlAck; */
+/* IDL: [case(0x2)] [case(0x2)] dcerpc_rts_cmd_ConnectionTimeout ConnectionTimeout; */
+/* IDL: [case(0x3)] [case(0x3)] dcerpc_rts_cmd_Cookie Cookie; */
+/* IDL: [case(0x4)] [case(0x4)] dcerpc_rts_cmd_ChannelLifetime ChannelLifetime; */
+/* IDL: [case(0x5)] [case(0x5)] dcerpc_rts_cmd_ClientKeepalive ClientKeepalive; */
+/* IDL: [case(0x6)] [case(0x6)] dcerpc_rts_cmd_Version Version; */
+/* IDL: [case(0x7)] [case(0x7)] dcerpc_rts_cmd_Empty Empty; */
+/* IDL: [case(0x8)] [case(0x8)] dcerpc_rts_cmd_Padding Padding; */
+/* IDL: [case(0x9)] [case(0x9)] dcerpc_rts_cmd_NegativeANCE NegativeANCE; */
+/* IDL: [case(0xA)] [case(0xA)] dcerpc_rts_cmd_ANCE ANCE; */
+/* IDL: [case(0xB)] [case(0xB)] dcerpc_rts_cmd_ClientAddress ClientAddress; */
+/* IDL: [case(0xC)] [case(0xC)] dcerpc_rts_cmd_AssociationGroupId AssociationGroupId; */
+/* IDL: [case(0xD)] [case(0xD)] dcerpc_rts_cmd_Destination Destination; */
+/* IDL: [case(0xE)] [case(0xE)] dcerpc_rts_cmd_PingTrafficSentNotify PingTrafficSentNotify; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmds_ReceiveWindowSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_ReceiveWindowSize(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_ReceiveWindowSize,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_FlowControlAck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_FlowControlAck(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_FlowControlAck,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_ConnectionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_ConnectionTimeout(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_ConnectionTimeout,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_Cookie(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_Cookie,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_ChannelLifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_ChannelLifetime(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_ChannelLifetime,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_ClientKeepalive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_ClientKeepalive(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_ClientKeepalive,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_Version(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_Version,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_Empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_Empty(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_Empty,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_Padding(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_Padding,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_NegativeANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_NegativeANCE(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_NegativeANCE,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_ANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_ANCE(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_ANCE,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_ClientAddress(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_ClientAddress,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_AssociationGroupId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_AssociationGroupId(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_AssociationGroupId,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_Destination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_Destination(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_Destination,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmds_PingTrafficSentNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd_PingTrafficSentNotify(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_cmds_PingTrafficSentNotify,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_rts_cmds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dcerpc_rts_cmds");
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmds);
+       }
+
+       switch(level) {
+               case 0x0:
+                       offset = dcerpc_dissect_element_rts_cmds_ReceiveWindowSize(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x1:
+                       offset = dcerpc_dissect_element_rts_cmds_FlowControlAck(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x2:
+                       offset = dcerpc_dissect_element_rts_cmds_ConnectionTimeout(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x3:
+                       offset = dcerpc_dissect_element_rts_cmds_Cookie(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x4:
+                       offset = dcerpc_dissect_element_rts_cmds_ChannelLifetime(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x5:
+                       offset = dcerpc_dissect_element_rts_cmds_ClientKeepalive(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x6:
+                       offset = dcerpc_dissect_element_rts_cmds_Version(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x7:
+                       offset = dcerpc_dissect_element_rts_cmds_Empty(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x8:
+                       offset = dcerpc_dissect_element_rts_cmds_Padding(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x9:
+                       offset = dcerpc_dissect_element_rts_cmds_NegativeANCE(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xA:
+                       offset = dcerpc_dissect_element_rts_cmds_ANCE(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xB:
+                       offset = dcerpc_dissect_element_rts_cmds_ClientAddress(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xC:
+                       offset = dcerpc_dissect_element_rts_cmds_AssociationGroupId(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xD:
+                       offset = dcerpc_dissect_element_rts_cmds_Destination(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xE:
+                       offset = dcerpc_dissect_element_rts_cmds_PingTrafficSentNotify(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 CommandType; */
+/* IDL:        [switch_is(CommandType)] dcerpc_rts_cmds Command; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_cmd_CommandType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *CommandType)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_CommandType, CommandType);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_cmd_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *CommandType)
+{
+       offset = dcerpc_dissect_rts_cmds(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_cmd_Command, *CommandType);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g CommandType;
+        Command;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts_cmd);
+       }
+       
+       offset = dcerpc_dissect_element_rts_cmd_CommandType(tvb, offset, pinfo, tree, drep, &CommandType);
+
+       offset = dcerpc_dissect_element_rts_cmd_Command(tvb, offset, pinfo, tree, drep, &CommandType);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        RTS_FLAG_NONE =  0x0000 , */
+/* IDL:        RTS_FLAG_PING =  0x0001 , */
+/* IDL:        RTS_FLAG_OTHER_CMD =  0x0002 , */
+/* IDL:        RTS_FLAG_RECYCLE_CHANNEL =  0x0004 , */
+/* IDL:        RTS_FLAG_IN_CHANNEL =  0x0008 , */
+/* IDL:        RTS_FLAG_OUT_CHANNEL =  0x0010 , */
+/* IDL:        RTS_FLAG_EOF =  0x0020 , */
+/* IDL:        RTS_FLAG_ECHO =  0x0040 , */
+/* IDL: } */
+
+int
+dcerpc_dissect_bitmap_rts_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint16 flags;
+       ALIGN_TO_2_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dcerpc_dcerpc_rts_flags);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_NONE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0000 )){
+               proto_item_append_text(item, "RTS_FLAG_NONE");
+               if (flags & (~( 0x0000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0000 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_PING, tvb, offset-2, 2, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "RTS_FLAG_PING");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_OTHER_CMD, tvb, offset-2, 2, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "RTS_FLAG_OTHER_CMD");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_RECYCLE_CHANNEL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "RTS_FLAG_RECYCLE_CHANNEL");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_IN_CHANNEL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0008 )){
+               proto_item_append_text(item, "RTS_FLAG_IN_CHANNEL");
+               if (flags & (~( 0x0008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0008 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_OUT_CHANNEL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "RTS_FLAG_OUT_CHANNEL");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_EOF, tvb, offset-2, 2, flags);
+       if (flags&( 0x0020 )){
+               proto_item_append_text(item, "RTS_FLAG_EOF");
+               if (flags & (~( 0x0020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0020 ));
+
+       proto_tree_add_boolean(tree, hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_ECHO, tvb, offset-2, 2, flags);
+       if (flags&( 0x0040 )){
+               proto_item_append_text(item, "RTS_FLAG_ECHO");
+               if (flags & (~( 0x0040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0040 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dcerpc_rts_flags Flags; */
+/* IDL:        uint16 NumberOfCommands; */
+/* IDL:        dcerpc_rts_cmd Commands[NumberOfCommands]; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_rts_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_bitmap_rts_flags(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_Flags, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_NumberOfCommands(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_dcerpc_rts_NumberOfCommands, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_Commands(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_rts_Commands_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts_cmd(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_rts_Commands,0);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_rts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_rts);
+       }
+       
+       offset = dcerpc_dissect_element_rts_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_rts_NumberOfCommands(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_rts_Commands(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DCERPC_PKT_REQUEST=0, */
+/* IDL:        DCERPC_PKT_PING=1, */
+/* IDL:        DCERPC_PKT_RESPONSE=2, */
+/* IDL:        DCERPC_PKT_FAULT=3, */
+/* IDL:        DCERPC_PKT_WORKING=4, */
+/* IDL:        DCERPC_PKT_NOCALL=5, */
+/* IDL:        DCERPC_PKT_REJECT=6, */
+/* IDL:        DCERPC_PKT_ACK=7, */
+/* IDL:        DCERPC_PKT_CL_CANCEL=8, */
+/* IDL:        DCERPC_PKT_FACK=9, */
+/* IDL:        DCERPC_PKT_CANCEL_ACK=10, */
+/* IDL:        DCERPC_PKT_BIND=11, */
+/* IDL:        DCERPC_PKT_BIND_ACK=12, */
+/* IDL:        DCERPC_PKT_BIND_NAK=13, */
+/* IDL:        DCERPC_PKT_ALTER=14, */
+/* IDL:        DCERPC_PKT_ALTER_RESP=15, */
+/* IDL:        DCERPC_PKT_AUTH3=16, */
+/* IDL:        DCERPC_PKT_SHUTDOWN=17, */
+/* IDL:        DCERPC_PKT_CO_CANCEL=18, */
+/* IDL:        DCERPC_PKT_ORPHANED=19, */
+/* IDL:        DCERPC_PKT_RTS=20, */
+/* IDL: } */
+
+int
+dcerpc_dissect_enum_pkt_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(DCERPC_PKT_REQUEST)] [case(DCERPC_PKT_REQUEST)] dcerpc_request request; */
+/* IDL: [case(DCERPC_PKT_PING)] [case(DCERPC_PKT_PING)] dcerpc_ping ping; */
+/* IDL: [case(DCERPC_PKT_RESPONSE)] [case(DCERPC_PKT_RESPONSE)] dcerpc_response response; */
+/* IDL: [case(DCERPC_PKT_FAULT)] [case(DCERPC_PKT_FAULT)] dcerpc_fault fault; */
+/* IDL: [case(DCERPC_PKT_WORKING)] [case(DCERPC_PKT_WORKING)] dcerpc_working working; */
+/* IDL: [case(DCERPC_PKT_NOCALL)] [case(DCERPC_PKT_NOCALL)] dcerpc_fack nocall; */
+/* IDL: [case(DCERPC_PKT_REJECT)] [case(DCERPC_PKT_REJECT)] dcerpc_fault reject; */
+/* IDL: [case(DCERPC_PKT_ACK)] [case(DCERPC_PKT_ACK)] dcerpc_ack ack; */
+/* IDL: [case(DCERPC_PKT_CL_CANCEL)] [case(DCERPC_PKT_CL_CANCEL)] dcerpc_cl_cancel cl_cancel; */
+/* IDL: [case(DCERPC_PKT_FACK)] [case(DCERPC_PKT_FACK)] dcerpc_fack fack; */
+/* IDL: [case(DCERPC_PKT_CANCEL_ACK)] [case(DCERPC_PKT_CANCEL_ACK)] dcerpc_cancel_ack cancel_ack; */
+/* IDL: [case(DCERPC_PKT_BIND)] [case(DCERPC_PKT_BIND)] dcerpc_bind bind; */
+/* IDL: [case(DCERPC_PKT_BIND_ACK)] [case(DCERPC_PKT_BIND_ACK)] dcerpc_bind_ack bind_ack; */
+/* IDL: [case(DCERPC_PKT_BIND_NAK)] [case(DCERPC_PKT_BIND_NAK)] dcerpc_bind_nak bind_nak; */
+/* IDL: [case(DCERPC_PKT_ALTER)] [case(DCERPC_PKT_ALTER)] dcerpc_bind alter; */
+/* IDL: [case(DCERPC_PKT_ALTER_RESP)] [case(DCERPC_PKT_ALTER_RESP)] dcerpc_bind_ack alter_resp; */
+/* IDL: [case(DCERPC_PKT_SHUTDOWN)] [case(DCERPC_PKT_SHUTDOWN)] dcerpc_shutdown shutdown; */
+/* IDL: [case(DCERPC_PKT_CO_CANCEL)] [case(DCERPC_PKT_CO_CANCEL)] dcerpc_co_cancel co_cancel; */
+/* IDL: [case(DCERPC_PKT_ORPHANED)] [case(DCERPC_PKT_ORPHANED)] dcerpc_orphaned orphaned; */
+/* IDL: [case(DCERPC_PKT_AUTH3)] [case(DCERPC_PKT_AUTH3)] dcerpc_auth3 auth3; */
+/* IDL: [case(DCERPC_PKT_RTS)] [case(DCERPC_PKT_RTS)] dcerpc_rts rts; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_payload_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_request(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_request,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_ping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ping(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_ping,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_response(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_response,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_fault(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_fault(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_fault,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_working(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_working(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_working,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_nocall(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_fack(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_nocall,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_fault(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_reject,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_ack(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_ack,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_cl_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_cl_cancel(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_cl_cancel,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_fack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_fack(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_fack,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_cancel_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_cancel_ack(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_cancel_ack,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_bind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_bind(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_bind,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_bind_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_bind_ack(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_bind_ack,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_bind_nak(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_bind_nak(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_bind_nak,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_alter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_bind(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_alter,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_alter_resp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_bind_ack(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_alter_resp,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_shutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_shutdown(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_shutdown,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_co_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_co_cancel(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_co_cancel,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_orphaned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_orphaned(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_orphaned,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_auth3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_auth3(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_auth3,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_payload_rts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dcerpc_dissect_struct_rts(tvb,offset,pinfo,tree,drep,hf_dcerpc_dcerpc_payload_rts,0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dcerpc_payload");
+               tree = proto_item_add_subtree(item, ett_dcerpc_dcerpc_payload);
+       }
+
+       switch(level) {
+               case DCERPC_PKT_REQUEST:
+                       offset = dcerpc_dissect_element_payload_request(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_PING:
+                       offset = dcerpc_dissect_element_payload_ping(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_RESPONSE:
+                       offset = dcerpc_dissect_element_payload_response(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_FAULT:
+                       offset = dcerpc_dissect_element_payload_fault(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_WORKING:
+                       offset = dcerpc_dissect_element_payload_working(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_NOCALL:
+                       offset = dcerpc_dissect_element_payload_nocall(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_REJECT:
+                       offset = dcerpc_dissect_element_payload_reject(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_ACK:
+                       offset = dcerpc_dissect_element_payload_ack(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_CL_CANCEL:
+                       offset = dcerpc_dissect_element_payload_cl_cancel(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_FACK:
+                       offset = dcerpc_dissect_element_payload_fack(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_CANCEL_ACK:
+                       offset = dcerpc_dissect_element_payload_cancel_ack(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_BIND:
+                       offset = dcerpc_dissect_element_payload_bind(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_BIND_ACK:
+                       offset = dcerpc_dissect_element_payload_bind_ack(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_BIND_NAK:
+                       offset = dcerpc_dissect_element_payload_bind_nak(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_ALTER:
+                       offset = dcerpc_dissect_element_payload_alter(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_ALTER_RESP:
+                       offset = dcerpc_dissect_element_payload_alter_resp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_SHUTDOWN:
+                       offset = dcerpc_dissect_element_payload_shutdown(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_CO_CANCEL:
+                       offset = dcerpc_dissect_element_payload_co_cancel(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_ORPHANED:
+                       offset = dcerpc_dissect_element_payload_orphaned(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_AUTH3:
+                       offset = dcerpc_dissect_element_payload_auth3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DCERPC_PKT_RTS:
+                       offset = dcerpc_dissect_element_payload_rts(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint8 rpc_vers; */
+/* IDL:        uint8 rpc_vers_minor; */
+/* IDL:        dcerpc_pkt_type ptype; */
+/* IDL:        uint8 pfc_flags; */
+/* IDL:        uint8 drep[4]; */
+/* IDL:        uint16 frag_length; */
+/* IDL:        uint16 auth_length; */
+/* IDL:        uint32 call_id; */
+/* IDL:        [switch_is(ptype)] dcerpc_payload u; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_ncacn_packet_rpc_vers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_rpc_vers, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_rpc_vers_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_rpc_vers_minor, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_ptype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *ptype)
+{
+       offset = dcerpc_dissect_enum_pkt_type(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_ptype, ptype);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_pfc_flags, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = dcerpc_dissect_element_ncacn_packet_drep_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_drep, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_frag_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_frag_length, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_auth_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_auth_length, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_call_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_call_id, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncacn_packet_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *ptype)
+{
+       offset = dcerpc_dissect_payload(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncacn_packet_u, *ptype);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_ncacn_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint8 ptype;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_ncacn_packet);
+       }
+       
+       offset = dcerpc_dissect_element_ncacn_packet_rpc_vers(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_rpc_vers_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_ptype(tvb, offset, pinfo, tree, drep, &ptype);
+
+       offset = dcerpc_dissect_element_ncacn_packet_pfc_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_drep(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_frag_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_auth_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_call_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncacn_packet_u(tvb, offset, pinfo, tree, drep, &ptype);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 rpc_vers; */
+/* IDL:        uint8 ptype; */
+/* IDL:        uint8 pfc_flags; */
+/* IDL:        uint8 ncadg_flags; */
+/* IDL:        uint8 drep[3]; */
+/* IDL:        uint8 serial_high; */
+/* IDL:        GUID object; */
+/* IDL:        GUID iface; */
+/* IDL:        GUID activity; */
+/* IDL:        uint32 server_boot; */
+/* IDL:        uint32 iface_version; */
+/* IDL:        uint32 seq_num; */
+/* IDL:        uint16 opnum; */
+/* IDL:        uint16 ihint; */
+/* IDL:        uint16 ahint; */
+/* IDL:        uint16 len; */
+/* IDL:        uint16 fragnum; */
+/* IDL:        uint8 auth_proto; */
+/* IDL:        uint8 serial_low; */
+/* IDL:        [switch_is(ptype)] dcerpc_payload u; */
+/* IDL: } */
+
+static int
+dcerpc_dissect_element_ncadg_packet_rpc_vers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_rpc_vers, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_ptype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *ptype)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_ptype, ptype);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_pfc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_pfc_flags, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_ncadg_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_ncadg_flags, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_drep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 3; i++)
+               offset = dcerpc_dissect_element_ncadg_packet_drep_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_drep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_drep, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_serial_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_serial_high, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_object, NULL);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_iface(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_iface, NULL);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_activity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_activity, NULL);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_server_boot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_server_boot, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_iface_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_iface_version, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_seq_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_seq_num, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_opnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_opnum, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_ihint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_ihint, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_ahint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_ahint, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_len, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_fragnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_fragnum, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_auth_proto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_auth_proto, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_serial_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_serial_low, 0);
+
+       return offset;
+}
+
+static int
+dcerpc_dissect_element_ncadg_packet_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *ptype)
+{
+       offset = dcerpc_dissect_payload(tvb, offset, pinfo, tree, drep, hf_dcerpc_ncadg_packet_u, *ptype);
+
+       return offset;
+}
+
+int
+dcerpc_dissect_struct_ncadg_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g ptype;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dcerpc_ncadg_packet);
+       }
+       
+       offset = dcerpc_dissect_element_ncadg_packet_rpc_vers(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_ptype(tvb, offset, pinfo, tree, drep, &ptype);
+
+       offset = dcerpc_dissect_element_ncadg_packet_pfc_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_ncadg_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_drep(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_serial_high(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_object(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_iface(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_activity(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_server_boot(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_iface_version(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_seq_num(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_opnum(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_ihint(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_ahint(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_len(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_fragnum(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_auth_proto(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_serial_low(tvb, offset, pinfo, tree, drep);
+
+       offset = dcerpc_dissect_element_ncadg_packet_u(tvb, offset, pinfo, tree, drep, &ptype);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector dcerpc_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_dcerpc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_dcerpc_dcerpc_auth_auth_reserved,
+         { "Auth Reserved", "dcerpc.dcerpc_auth.auth_reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_cancel_ack,
+         { "Cancel Ack", "dcerpc.dcerpc_payload.cancel_ack", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_secondary_address_size,
+         { "Secondary Address Size", "dcerpc.dcerpc_bind_ack.secondary_address_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_request_stub_and_verifier,
+         { "Stub And Verifier", "dcerpc.dcerpc_request.stub_and_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_PING,
+         { "Rts Flag Ping", "dcerpc.dcerpc_rts_flags.RTS_FLAG_PING", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_PING_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_u,
+         { "U", "dcerpc.ncadg_packet.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_serial_no,
+         { "Serial No", "dcerpc.dcerpc_fack.serial_no", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_cl_cancel_version,
+         { "Version", "dcerpc.dcerpc_cl_cancel.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_orphaned_auth_info,
+         { "Auth Info", "dcerpc.dcerpc_orphaned.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ack_ctx_result,
+         { "Result", "dcerpc.dcerpc_ack_ctx.result", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_response,
+         { "Response", "dcerpc.dcerpc_payload.response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_co_cancel_auth_info,
+         { "Auth Info", "dcerpc.dcerpc_co_cancel.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth_auth_context_id,
+         { "Auth Context Id", "dcerpc.dcerpc_auth.auth_context_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_Command,
+         { "Command", "dcerpc.dcerpc_rts_cmd.Command", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_fack,
+         { "Fack", "dcerpc.dcerpc_payload.fack", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_fragnum,
+         { "Fragnum", "dcerpc.ncadg_packet.fragnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_pfc_flags,
+         { "Pfc Flags", "dcerpc.ncadg_packet.pfc_flags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_u,
+         { "U", "dcerpc.ncacn_packet.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_nak_versions_num_versions,
+         { "Num Versions", "dcerpc.dcerpc_bind_nak_versions.num_versions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_auth_length,
+         { "Auth Length", "dcerpc.ncacn_packet.auth_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_ihint,
+         { "Ihint", "dcerpc.ncadg_packet.ihint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_iface,
+         { "Iface", "dcerpc.ncadg_packet.iface", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_Padding_ConformanceCount,
+         { "Conformancecount", "dcerpc.dcerpc_rts_cmd_Padding.ConformanceCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_request_object,
+         { "Object", "dcerpc.dcerpc_request.object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_call_id,
+         { "Call Id", "dcerpc.ncacn_packet.call_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_nocall,
+         { "Nocall", "dcerpc.dcerpc_payload.nocall", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_request_alloc_hint,
+         { "Alloc Hint", "dcerpc.dcerpc_request.alloc_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ctx_list,
+         { "Ctx List", "dcerpc.dcerpc_bind.ctx_list", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ack_ctx_reason,
+         { "Reason", "dcerpc.dcerpc_ack_ctx.reason", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_max_xmit_frag,
+         { "Max Xmit Frag", "dcerpc.dcerpc_bind.max_xmit_frag", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_num_contexts,
+         { "Num Contexts", "dcerpc.dcerpc_bind.num_contexts", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_cl_cancel_id,
+         { "Id", "dcerpc.dcerpc_cl_cancel.id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_auth3,
+         { "Auth3", "dcerpc.dcerpc_payload.auth3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ack_ctx_syntax,
+         { "Syntax", "dcerpc.dcerpc_ack_ctx.syntax", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_max_xmit_frag,
+         { "Max Xmit Frag", "dcerpc.dcerpc_bind_ack.max_xmit_frag", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_max_frag_size,
+         { "Max Frag Size", "dcerpc.dcerpc_fack.max_frag_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_orphaned__pad,
+         { " Pad", "dcerpc.dcerpc_orphaned._pad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_max_recv_frag,
+         { "Max Recv Frag", "dcerpc.dcerpc_bind_ack.max_recv_frag", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_PingTrafficSentNotify,
+         { "Pingtrafficsentnotify", "dcerpc.dcerpc_rts_cmds.PingTrafficSentNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_co_cancel,
+         { "Co Cancel", "dcerpc.dcerpc_payload.co_cancel", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_Padding,
+         { "Padding", "dcerpc.dcerpc_rts_cmds.Padding", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_ncadg_flags,
+         { "Ncadg Flags", "dcerpc.ncadg_packet.ncadg_flags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ctx_list_context_id,
+         { "Context Id", "dcerpc.dcerpc_ctx_list.context_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_FlowControlAck_Ack,
+         { "Ack", "dcerpc.dcerpc_rts_cmd_FlowControlAck.Ack", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_max_recv_frag,
+         { "Max Recv Frag", "dcerpc.dcerpc_bind.max_recv_frag", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_selack_size,
+         { "Selack Size", "dcerpc.dcerpc_fack.selack_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_request,
+         { "Request", "dcerpc.dcerpc_payload.request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_secondary_address,
+         { "Secondary Address", "dcerpc.dcerpc_bind_ack.secondary_address", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_response__pad,
+         { " Pad", "dcerpc.dcerpc_response._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_PingTrafficSentNotify_PingTrafficSent,
+         { "Pingtrafficsent", "dcerpc.dcerpc_rts_cmd_PingTrafficSentNotify.PingTrafficSent", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_orphaned,
+         { "Orphaned", "dcerpc.dcerpc_payload.orphaned", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_NumberOfCommands,
+         { "Numberofcommands", "dcerpc.dcerpc_rts.NumberOfCommands", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_ClientKeepalive_ClientKeepalive,
+         { "Clientkeepalive", "dcerpc.dcerpc_rts_cmd_ClientKeepalive.ClientKeepalive", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_server_boot,
+         { "Server Boot", "dcerpc.ncadg_packet.server_boot", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_rpc_vers_minor,
+         { "Rpc Vers Minor", "dcerpc.ncacn_packet.rpc_vers_minor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_Commands,
+         { "Commands", "dcerpc.dcerpc_rts.Commands", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_bind_nak,
+         { "Bind Nak", "dcerpc.dcerpc_payload.bind_nak", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_bind_ack,
+         { "Bind Ack", "dcerpc.dcerpc_payload.bind_ack", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fault__pad,
+         { " Pad", "dcerpc.dcerpc_fault._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_cancel_ack_id,
+         { "Id", "dcerpc.dcerpc_cancel_ack.id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_alter_resp,
+         { "Alter Resp", "dcerpc.dcerpc_payload.alter_resp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_ConnectionTimeout,
+         { "Connectiontimeout", "dcerpc.dcerpc_rts_cmds.ConnectionTimeout", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_object_object,
+         { "Object", "dcerpc.dcerpc_object.object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_reject,
+         { "Reject", "dcerpc.dcerpc_payload.reject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_Destination_ForwardDestination,
+         { "Forwarddestination", "dcerpc.dcerpc_rts_cmd_Destination.ForwardDestination", FT_UINT32, BASE_DEC, VALS(dcerpc_ForwardDestination_vals), 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_selack,
+         { "Selack", "dcerpc.dcerpc_fack.selack", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_EOF,
+         { "Rts Flag Eof", "dcerpc.dcerpc_rts_flags.RTS_FLAG_EOF", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_EOF_tfs), ( 0x0020 ), NULL, HFILL }},
+       { &hf_dcerpc_ClientAddress_Padding,
+         { "Padding", "dcerpc.ClientAddress.Padding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_assoc_group_id,
+         { "Assoc Group Id", "dcerpc.dcerpc_bind.assoc_group_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fault_cancel_count,
+         { "Cancel Count", "dcerpc.dcerpc_fault.cancel_count", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_response_alloc_hint,
+         { "Alloc Hint", "dcerpc.dcerpc_response.alloc_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_window_size,
+         { "Window Size", "dcerpc.dcerpc_fack.window_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_ping,
+         { "Ping", "dcerpc.dcerpc_payload.ping", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth_auth_pad_length,
+         { "Auth Pad Length", "dcerpc.dcerpc_auth.auth_pad_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_serial_low,
+         { "Serial Low", "dcerpc.ncadg_packet.serial_low", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_opnum,
+         { "Opnum", "dcerpc.ncadg_packet.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_response_stub_and_verifier,
+         { "Stub And Verifier", "dcerpc.dcerpc_response.stub_and_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_FlowControlAcknowledgment_BytesReceived,
+         { "Bytesreceived", "dcerpc.FlowControlAcknowledgment.BytesReceived", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth_auth_type,
+         { "Auth Type", "dcerpc.dcerpc_auth.auth_type", FT_UINT8, BASE_DEC, VALS(dcerpc_dcerpc_AuthType_vals), 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_object_empty,
+         { "Empty", "dcerpc.dcerpc_object.empty", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_request_opnum,
+         { "Opnum", "dcerpc.dcerpc_request.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_seq_num,
+         { "Seq Num", "dcerpc.ncadg_packet.seq_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_cancel_ack_version,
+         { "Version", "dcerpc.dcerpc_cancel_ack.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_IN_CHANNEL,
+         { "Rts Flag In Channel", "dcerpc.dcerpc_rts_flags.RTS_FLAG_IN_CHANNEL", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_IN_CHANNEL_tfs), ( 0x0008 ), NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_ClientKeepalive,
+         { "Clientkeepalive", "dcerpc.dcerpc_rts_cmds.ClientKeepalive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_cl_cancel,
+         { "Cl Cancel", "dcerpc.dcerpc_payload.cl_cancel", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_num_results,
+         { "Num Results", "dcerpc.dcerpc_bind_ack.num_results", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_FlowControlAcknowledgment_ChannelCookie,
+         { "Channelcookie", "dcerpc.FlowControlAcknowledgment.ChannelCookie", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_AssociationGroupId_AssociationGroupId,
+         { "Associationgroupid", "dcerpc.dcerpc_rts_cmd_AssociationGroupId.AssociationGroupId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_ClientAddress,
+         { "Clientaddress", "dcerpc.dcerpc_rts_cmds.ClientAddress", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_co_cancel__pad,
+         { " Pad", "dcerpc.dcerpc_co_cancel._pad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_request__pad,
+         { " Pad", "dcerpc.dcerpc_request._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth_credentials,
+         { "Credentials", "dcerpc.dcerpc_auth.credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_OTHER_CMD,
+         { "Rts Flag Other Cmd", "dcerpc.dcerpc_rts_flags.RTS_FLAG_OTHER_CMD", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_OTHER_CMD_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_nak_versions_versions,
+         { "Versions", "dcerpc.dcerpc_bind_nak_versions.versions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_activity,
+         { "Activity", "dcerpc.ncadg_packet.activity", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_ChannelLifetime_ChannelLifetime,
+         { "Channellifetime", "dcerpc.dcerpc_rts_cmd_ChannelLifetime.ChannelLifetime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_auth_proto,
+         { "Auth Proto", "dcerpc.ncadg_packet.auth_proto", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_assoc_group_id,
+         { "Assoc Group Id", "dcerpc.dcerpc_bind_ack.assoc_group_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fault_context_id,
+         { "Context Id", "dcerpc.dcerpc_fault.context_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_rts,
+         { "Rts", "dcerpc.dcerpc_payload.rts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_drep,
+         { "Drep", "dcerpc.ncacn_packet.drep", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_ack,
+         { "Ack", "dcerpc.dcerpc_payload.ack", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_nak_reject_reason,
+         { "Reject Reason", "dcerpc.dcerpc_bind_nak.reject_reason", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_cancel_ack_server_is_accepting,
+         { "Server Is Accepting", "dcerpc.dcerpc_cancel_ack.server_is_accepting", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_bind,
+         { "Bind", "dcerpc.dcerpc_payload.bind", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_ClientAddress_ClientAddress,
+         { "Clientaddress", "dcerpc.dcerpc_rts_cmd_ClientAddress.ClientAddress", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth3_auth_info,
+         { "Auth Info", "dcerpc.dcerpc_auth3.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_FlowControlAcknowledgment_AvailableWindow,
+         { "Availablewindow", "dcerpc.FlowControlAcknowledgment.AvailableWindow", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_frag_length,
+         { "Frag Length", "dcerpc.ncacn_packet.frag_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_alter,
+         { "Alter", "dcerpc.dcerpc_payload.alter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack__pad1,
+         { " Pad1", "dcerpc.dcerpc_bind_ack._pad1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ctx_list_num_transfer_syntaxes,
+         { "Num Transfer Syntaxes", "dcerpc.dcerpc_ctx_list.num_transfer_syntaxes", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_auth_info,
+         { "Auth Info", "dcerpc.dcerpc_bind.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth_auth_level,
+         { "Auth Level", "dcerpc.dcerpc_auth.auth_level", FT_UINT8, BASE_DEC, VALS(dcerpc_dcerpc_AuthLevel_vals), 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_ptype,
+         { "Ptype", "dcerpc.ncadg_packet.ptype", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_ptype,
+         { "Ptype", "dcerpc.ncacn_packet.ptype", FT_UINT8, BASE_DEC, VALS(dcerpc_dcerpc_pkt_type_vals), 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fault_status,
+         { "Status", "dcerpc.dcerpc_fault.status", FT_UINT32, BASE_DEC, VALS(dcerpc_dcerpc_nca_status_vals), 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_fault,
+         { "Fault", "dcerpc.dcerpc_payload.fault", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_serial_high,
+         { "Serial High", "dcerpc.ncadg_packet.serial_high", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_auth3__pad,
+         { " Pad", "dcerpc.dcerpc_auth3._pad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_Padding_Padding,
+         { "Padding", "dcerpc.dcerpc_rts_cmd_Padding.Padding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ClientAddress_ClientAddress,
+         { "Clientaddress", "dcerpc.ClientAddress.ClientAddress", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_Cookie_Cookie,
+         { "Cookie", "dcerpc.dcerpc_rts_cmd_Cookie.Cookie", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_ChannelLifetime,
+         { "Channellifetime", "dcerpc.dcerpc_rts_cmds.ChannelLifetime", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_ConnectionTimeout_ConnectionTimeout,
+         { "Connectiontimeout", "dcerpc.dcerpc_rts_cmd_ConnectionTimeout.ConnectionTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_ReceiveWindowSize,
+         { "Receivewindowsize", "dcerpc.dcerpc_rts_cmds.ReceiveWindowSize", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_iface_version,
+         { "Iface Version", "dcerpc.ncadg_packet.iface_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_ECHO,
+         { "Rts Flag Echo", "dcerpc.dcerpc_rts_flags.RTS_FLAG_ECHO", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_ECHO_tfs), ( 0x0040 ), NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_nak_versions_ctr_v,
+         { "V", "dcerpc.dcerpc_bind_nak_versions_ctr.v", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ClientAddressType_ClientAddressIPV6,
+         { "Clientaddressipv6", "dcerpc.ClientAddressType.ClientAddressIPV6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_NegativeANCE,
+         { "Negativeance", "dcerpc.dcerpc_rts_cmds.NegativeANCE", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_max_tdsu,
+         { "Max Tdsu", "dcerpc.dcerpc_fack.max_tdsu", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_AssociationGroupId,
+         { "Associationgroupid", "dcerpc.dcerpc_rts_cmds.AssociationGroupId", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_CommandType,
+         { "Commandtype", "dcerpc.dcerpc_rts_cmd.CommandType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_rpc_vers,
+         { "Rpc Vers", "dcerpc.ncacn_packet.rpc_vers", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_nak_versions,
+         { "Versions", "dcerpc.dcerpc_bind_nak.versions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_request_context_id,
+         { "Context Id", "dcerpc.dcerpc_request.context_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_ahint,
+         { "Ahint", "dcerpc.ncadg_packet.ahint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_shutdown,
+         { "Shutdown", "dcerpc.dcerpc_payload.shutdown", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ClientAddressType_ClientAddressIPV4,
+         { "Clientaddressipv4", "dcerpc.ClientAddressType.ClientAddressIPV4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_OUT_CHANNEL,
+         { "Rts Flag Out Channel", "dcerpc.dcerpc_rts_flags.RTS_FLAG_OUT_CHANNEL", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_OUT_CHANNEL_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_ctx_list,
+         { "Ctx List", "dcerpc.dcerpc_bind_ack.ctx_list", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack_version,
+         { "Version", "dcerpc.dcerpc_fack.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_Version_Version,
+         { "Version", "dcerpc.dcerpc_rts_cmd_Version.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmd_ReceiveWindowSize_ReceiveWindowSize,
+         { "Receivewindowsize", "dcerpc.dcerpc_rts_cmd_ReceiveWindowSize.ReceiveWindowSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_rpc_vers,
+         { "Rpc Vers", "dcerpc.ncadg_packet.rpc_vers", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_payload_working,
+         { "Working", "dcerpc.dcerpc_payload.working", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_RTSCookie_Cookie,
+         { "Cookie", "dcerpc.RTSCookie.Cookie", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_Flags,
+         { "Flags", "dcerpc.dcerpc_rts.Flags", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_Version,
+         { "Version", "dcerpc.dcerpc_rts_cmds.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ClientAddress_AddressType,
+         { "Addresstype", "dcerpc.ClientAddress.AddressType", FT_UINT32, BASE_DEC, VALS(dcerpc_AddressType_vals), 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_response_context_id,
+         { "Context Id", "dcerpc.dcerpc_response.context_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_drep,
+         { "Drep", "dcerpc.ncadg_packet.drep", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_len,
+         { "Len", "dcerpc.ncadg_packet.len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_Empty,
+         { "Empty", "dcerpc.dcerpc_rts_cmds.Empty", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_Destination,
+         { "Destination", "dcerpc.dcerpc_rts_cmds.Destination", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_opnum,
+         { "Operation", "dcerpc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_ANCE,
+         { "Ance", "dcerpc.dcerpc_rts_cmds.ANCE", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fault_alloc_hint,
+         { "Alloc Hint", "dcerpc.dcerpc_fault.alloc_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_NONE,
+         { "Rts Flag None", "dcerpc.dcerpc_rts_flags.RTS_FLAG_NONE", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_NONE_tfs), ( 0x0000 ), NULL, HFILL }},
+       { &hf_dcerpc_ncadg_packet_object,
+         { "Object", "dcerpc.ncadg_packet.object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_response_cancel_count,
+         { "Cancel Count", "dcerpc.dcerpc_response.cancel_count", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_fack__pad1,
+         { " Pad1", "dcerpc.dcerpc_fack._pad1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ctx_list_abstract_syntax,
+         { "Abstract Syntax", "dcerpc.dcerpc_ctx_list.abstract_syntax", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_flags_RTS_FLAG_RECYCLE_CHANNEL,
+         { "Rts Flag Recycle Channel", "dcerpc.dcerpc_rts_flags.RTS_FLAG_RECYCLE_CHANNEL", FT_BOOLEAN, 16, TFS(&dcerpc_rts_flags_RTS_FLAG_RECYCLE_CHANNEL_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_dcerpc_ncacn_packet_pfc_flags,
+         { "Pfc Flags", "dcerpc.ncacn_packet.pfc_flags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_FlowControlAck,
+         { "Flowcontrolack", "dcerpc.dcerpc_rts_cmds.FlowControlAck", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_rts_cmds_Cookie,
+         { "Cookie", "dcerpc.dcerpc_rts_cmds.Cookie", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_ctx_list_transfer_syntaxes,
+         { "Transfer Syntaxes", "dcerpc.dcerpc_ctx_list.transfer_syntaxes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dcerpc_dcerpc_bind_ack_auth_info,
+         { "Auth Info", "dcerpc.dcerpc_bind_ack.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_dcerpc,
+               &ett_dcerpc_dcerpc_ctx_list,
+               &ett_dcerpc_dcerpc_bind,
+               &ett_dcerpc_dcerpc_empty,
+               &ett_dcerpc_dcerpc_object,
+               &ett_dcerpc_dcerpc_request,
+               &ett_dcerpc_dcerpc_ack_ctx,
+               &ett_dcerpc_dcerpc_bind_ack,
+               &ett_dcerpc_dcerpc_bind_nak_versions,
+               &ett_dcerpc_dcerpc_bind_nak_versions_ctr,
+               &ett_dcerpc_dcerpc_bind_nak,
+               &ett_dcerpc_dcerpc_response,
+               &ett_dcerpc_dcerpc_fault,
+               &ett_dcerpc_dcerpc_auth,
+               &ett_dcerpc_dcerpc_auth3,
+               &ett_dcerpc_dcerpc_orphaned,
+               &ett_dcerpc_dcerpc_co_cancel,
+               &ett_dcerpc_dcerpc_cl_cancel,
+               &ett_dcerpc_dcerpc_cancel_ack,
+               &ett_dcerpc_dcerpc_fack,
+               &ett_dcerpc_dcerpc_ack,
+               &ett_dcerpc_dcerpc_ping,
+               &ett_dcerpc_dcerpc_shutdown,
+               &ett_dcerpc_dcerpc_working,
+               &ett_dcerpc_RTSCookie,
+               &ett_dcerpc_ClientAddressType,
+               &ett_dcerpc_ClientAddress,
+               &ett_dcerpc_FlowControlAcknowledgment,
+               &ett_dcerpc_dcerpc_rts_cmd_ReceiveWindowSize,
+               &ett_dcerpc_dcerpc_rts_cmd_FlowControlAck,
+               &ett_dcerpc_dcerpc_rts_cmd_ConnectionTimeout,
+               &ett_dcerpc_dcerpc_rts_cmd_Cookie,
+               &ett_dcerpc_dcerpc_rts_cmd_ChannelLifetime,
+               &ett_dcerpc_dcerpc_rts_cmd_ClientKeepalive,
+               &ett_dcerpc_dcerpc_rts_cmd_Version,
+               &ett_dcerpc_dcerpc_rts_cmd_Empty,
+               &ett_dcerpc_dcerpc_rts_cmd_Padding,
+               &ett_dcerpc_dcerpc_rts_cmd_NegativeANCE,
+               &ett_dcerpc_dcerpc_rts_cmd_ANCE,
+               &ett_dcerpc_dcerpc_rts_cmd_ClientAddress,
+               &ett_dcerpc_dcerpc_rts_cmd_AssociationGroupId,
+               &ett_dcerpc_dcerpc_rts_cmd_Destination,
+               &ett_dcerpc_dcerpc_rts_cmd_PingTrafficSentNotify,
+               &ett_dcerpc_dcerpc_rts_cmds,
+               &ett_dcerpc_dcerpc_rts_cmd,
+               &ett_dcerpc_dcerpc_rts_flags,
+               &ett_dcerpc_dcerpc_rts,
+               &ett_dcerpc_dcerpc_payload,
+               &ett_dcerpc_ncacn_packet,
+               &ett_dcerpc_ncadg_packet,
+       };
+
+       proto_dcerpc_dcerpc = proto_register_protocol("DCERPC (pidl)", "DCERPC", "dcerpc");
+       proto_register_field_array(proto_dcerpc_dcerpc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_dcerpc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_dcerpc, ett_dcerpc_dcerpc,
+               &uuid_dcerpc_dcerpc, ver_dcerpc_dcerpc,
+               dcerpc_dissectors, hf_dcerpc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dcerpc.h
new file mode 100644 (file)
index 0000000..ca4a322
--- /dev/null
@@ -0,0 +1,230 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dcerpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dcerpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_DCERPC_H
+#define __PACKET_DCERPC_DCERPC_H
+
+#define DCERPC_REQUEST_LENGTH  ( 24 )
+
+#define DCERPC_BIND_REASON_ASYNTAX     ( 1 )
+
+#define DCERPC_BIND_PROVIDER_REJECT    ( 2 )
+
+#define DECRPC_BIND_PROTOCOL_VERSION_NOT_SUPPORTED     ( 4 )
+
+#define DCERPC_BIND_REASON_INVALID_AUTH_TYPE   ( 8 )
+
+#define DCERPC_RESPONSE_LENGTH ( 24 )
+
+#define DCERPC_FAULT_OP_RNG_ERROR      ( 0x1c010002 )
+
+#define DCERPC_FAULT_UNK_IF    ( 0x1c010003 )
+
+#define DCERPC_FAULT_NDR       ( 0x000006f7 )
+
+#define DCERPC_FAULT_INVALID_TAG       ( 0x1c000006 )
+
+#define DCERPC_FAULT_CONTEXT_MISMATCH  ( 0x1c00001a )
+
+#define DCERPC_FAULT_OTHER     ( 0x00000001 )
+
+#define DCERPC_FAULT_ACCESS_DENIED     ( 0x00000005 )
+
+#define DCERPC_FAULT_CANT_PERFORM      ( 0x000006d8 )
+
+#define DCERPC_FAULT_SEC_PKG_ERROR     ( 0x00000721 )
+
+#define DCERPC_FAULT_TODO      ( 0x00000042 )
+
+#define DCERPC_AUTH_LEVEL_DEFAULT      ( DCERPC_AUTH_LEVEL_CONNECT )
+
+#define DCERPC_AUTH_TRAILER_LENGTH     ( 8 )
+
+#define DCERPC_PFC_FLAG_FIRST  ( 0x01 )
+
+#define DCERPC_PFC_FLAG_LAST   ( 0x02 )
+
+#define DCERPC_PFC_FLAG_PENDING_CANCEL ( 0x04 )
+
+#define DCERPC_PFC_FLAG_SUPPORT_HEADER_SIGN    ( DCERPC_PFC_FLAG_PENDING_CANCEL )
+
+#define DCERPC_PFC_FLAG_CONC_MPX       ( 0x10 )
+
+#define DCERPC_PFC_FLAG_DID_NOT_EXECUTE        ( 0x20 )
+
+#define DCERPC_PFC_FLAG_MAYBE  ( 0x40 )
+
+#define DCERPC_PFC_FLAG_OBJECT_UUID    ( 0x80 )
+
+#define DCERPC_PFC_OFFSET      ( 3 )
+
+#define DCERPC_DREP_OFFSET     ( 4 )
+
+#define DCERPC_FRAG_LEN_OFFSET ( 8 )
+
+#define DCERPC_AUTH_LEN_OFFSET ( 10 )
+
+#define DCERPC_DREP_LE ( 0x10 )
+
+int dcerpc_dissect_struct_ctx_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_bind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_ack_ctx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_bind_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_bind_nak_versions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_bind_nak(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DCERPC_NCA_S_COMM_FAILURE (0x1C010001)
+#define DCERPC_NCA_S_OP_RNG_ERROR (0x1C010002)
+#define DCERPC_NCA_S_UNKNOWN_IF (0x1C010003)
+#define DCERPC_NCA_S_WRONG_BOOT_TIME (0x1C010006)
+#define DCERPC_NCA_S_YOU_CRASHED (0x1C010009)
+#define DCERPC_NCA_S_PROTO_ERROR (0x1C01000B)
+#define DCERPC_NCA_S_OUT_ARGS_TOO_BIG (0x1C010013)
+#define DCERPC_NCA_S_SERVER_TOO_BUSY (0x1C010014)
+#define DCERPC_NCA_S_FAULT_STRING_TOO_LARGE (0x1C010015)
+#define DCERPC_NCA_S_UNSUPPORTED_TYPE (0x1C010017)
+#define DCERPC_NCA_S_FAULT_INT_DIV_BY_ZERO (0x1C000001)
+#define DCERPC_NCA_S_FAULT_ADDR_ERROR (0x1C000002)
+#define DCERPC_NCA_S_FAULT_FP_DIV_BY_ZERO (0x1C000003)
+#define DCERPC_NCA_S_FAULT_FP_UNDERFLOW (0x1C000004)
+#define DCERPC_NCA_S_FAULT_FP_OVERRFLOW (0x1C000005)
+#define DCERPC_NCA_S_FAULT_INVALID_TAG (0x1C000006)
+#define DCERPC_NCA_S_FAULT_INVALID_BOUND (0x1C000007)
+#define DCERPC_NCA_S_FAULT_RPC_VERSION_MISMATCH (0x1C000008)
+#define DCERPC_NCA_S_FAULT_UNSPEC_REJECT (0x1C000009)
+#define DCERPC_NCA_S_FAULT_BAD_ACTID (0x1C00000A)
+#define DCERPC_NCA_S_FAULT_WHO_ARE_YOU_FAILED (0x1C00000B)
+#define DCERPC_NCA_S_FAULT_MANAGER_NOT_ENTERED (0x1C00000C)
+#define DCERPC_NCA_S_FAULT_CANCEL (0x1C00000D)
+#define DCERPC_NCA_S_FAULT_ILL_INST (0x1C00000E)
+#define DCERPC_NCA_S_FAULT_FP_ERROR (0x1C00000F)
+#define DCERPC_NCA_S_FAULT_INT_OVERFLOW (0x1C000010)
+#define DCERPC_NCA_S_UNUSED_1C000011 (0x1C000011)
+#define DCERPC_NCA_S_FAULT_UNSPEC (0x1C000012)
+#define DCERPC_NCA_S_FAULT_REMOTE_COMM_FAILURE (0x1C000013)
+#define DCERPC_NCA_S_FAULT_PIPE_EMPTY (0x1C000014)
+#define DCERPC_NCA_S_FAULT_PIPE_CLOSED (0x1C000015)
+#define DCERPC_NCA_S_FAULT_PIPE_ORDER (0x1C000016)
+#define DCERPC_NCA_S_FAULT_PIPE_DISCIPLINE (0x1C000017)
+#define DCERPC_NCA_S_FAULT_PIPE_COMM_ERROR (0x1C000018)
+#define DCERPC_NCA_S_FAULT_PIPE_MEMORY (0x1C000019)
+#define DCERPC_NCA_S_FAULT_CONTEXT_MISMATCH (0x1C00001A)
+#define DCERPC_NCA_S_FAULT_REMOTE_NO_MEMORY (0x1C00001B)
+#define DCERPC_NCA_S_INVALID_PRES_CONTEXT_ID (0x1C00001C)
+#define DCERPC_NCA_S_UNSUPPORTED_AUTHN_LEVEL (0x1C00001D)
+#define DCERPC_NCA_S_UNUSED_1C00001E (0x1C00001E)
+#define DCERPC_NCA_S_INVALID_CHECKSUM (0x1C00001F)
+#define DCERPC_NCA_S_INVALID_CRC (0x1C000020)
+#define DCERPC_NCA_S_FAULT_USER_DEFINED (0x1C000021)
+#define DCERPC_NCA_S_FAULT_TX_OPEN_FAILED (0x1C000022)
+#define DCERPC_NCA_S_FAULT_CODESET_CONV_ERROR (0x1C000023)
+#define DCERPC_NCA_S_FAULT_OBJECT_NOT_FOUND (0x1C000024)
+#define DCERPC_NCA_S_FAULT_NO_CLIENT_STUB (0x1C000025)
+extern const value_string dcerpc_dcerpc_nca_status_vals[];
+int dcerpc_dissect_enum_nca_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dcerpc_dissect_struct_fault(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DCERPC_AUTH_TYPE_NONE (0)
+#define DCERPC_AUTH_TYPE_KRB5_1 (1)
+#define DCERPC_AUTH_TYPE_SPNEGO (9)
+#define DCERPC_AUTH_TYPE_NTLMSSP (10)
+#define DCERPC_AUTH_TYPE_KRB5 (16)
+#define DCERPC_AUTH_TYPE_DPA (17)
+#define DCERPC_AUTH_TYPE_MSN (18)
+#define DCERPC_AUTH_TYPE_DIGEST (21)
+#define DCERPC_AUTH_TYPE_SCHANNEL (68)
+#define DCERPC_AUTH_TYPE_MSMQ (100)
+#define DCERPC_AUTH_TYPE_NCALRPC_AS_SYSTEM (200)
+extern const value_string dcerpc_dcerpc_AuthType_vals[];
+int dcerpc_dissect_enum_AuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DCERPC_AUTH_LEVEL_NONE (1)
+#define DCERPC_AUTH_LEVEL_CONNECT (2)
+#define DCERPC_AUTH_LEVEL_CALL (3)
+#define DCERPC_AUTH_LEVEL_PACKET (4)
+#define DCERPC_AUTH_LEVEL_INTEGRITY (5)
+#define DCERPC_AUTH_LEVEL_PRIVACY (6)
+extern const value_string dcerpc_dcerpc_AuthLevel_vals[];
+int dcerpc_dissect_enum_AuthLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dcerpc_dissect_struct_auth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_auth3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_orphaned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_co_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_cl_cancel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_cancel_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_fack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_ack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_ping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_shutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_working(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_RTSCookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define RTS_IPV4 (0)
+#define RTS_IPV6 (1)
+extern const value_string dcerpc_AddressType_vals[];
+int dcerpc_dissect_enum_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dcerpc_dissect_struct_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FDClient (0)
+#define FDInProxy (1)
+#define FDServer (2)
+#define FDOutProxy (3)
+extern const value_string dcerpc_ForwardDestination_vals[];
+int dcerpc_dissect_enum_ForwardDestination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dcerpc_dissect_struct_FlowControlAcknowledgment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_ReceiveWindowSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_FlowControlAck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_ConnectionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_Cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_ChannelLifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_ClientKeepalive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_Empty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_Padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_NegativeANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_ANCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_ClientAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_AssociationGroupId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_Destination(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd_PingTrafficSentNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_bitmap_rts_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_rts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DCERPC_PKT_REQUEST (0)
+#define DCERPC_PKT_PING (1)
+#define DCERPC_PKT_RESPONSE (2)
+#define DCERPC_PKT_FAULT (3)
+#define DCERPC_PKT_WORKING (4)
+#define DCERPC_PKT_NOCALL (5)
+#define DCERPC_PKT_REJECT (6)
+#define DCERPC_PKT_ACK (7)
+#define DCERPC_PKT_CL_CANCEL (8)
+#define DCERPC_PKT_FACK (9)
+#define DCERPC_PKT_CANCEL_ACK (10)
+#define DCERPC_PKT_BIND (11)
+#define DCERPC_PKT_BIND_ACK (12)
+#define DCERPC_PKT_BIND_NAK (13)
+#define DCERPC_PKT_ALTER (14)
+#define DCERPC_PKT_ALTER_RESP (15)
+#define DCERPC_PKT_AUTH3 (16)
+#define DCERPC_PKT_SHUTDOWN (17)
+#define DCERPC_PKT_CO_CANCEL (18)
+#define DCERPC_PKT_ORPHANED (19)
+#define DCERPC_PKT_RTS (20)
+extern const value_string dcerpc_dcerpc_pkt_type_vals[];
+int dcerpc_dissect_enum_pkt_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dcerpc_dissect_struct_ncacn_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dcerpc_dissect_struct_ncadg_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_DCERPC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dfs.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dfs.c
new file mode 100644 (file)
index 0000000..9e344d5
--- /dev/null
@@ -0,0 +1,5725 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dfs.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_netdfs = -1;
+static gint ett_netdfs_dfs_Info0 = -1;
+static gint ett_netdfs_dfs_Info1 = -1;
+static gint ett_netdfs_dfs_VolumeState = -1;
+static gint ett_netdfs_dfs_Info2 = -1;
+static gint ett_netdfs_dfs_StorageState = -1;
+static gint ett_netdfs_dfs_StorageInfo = -1;
+static gint ett_netdfs_dfs_Info3 = -1;
+static gint ett_netdfs_dfs_Info4 = -1;
+static gint ett_netdfs_dfs_PropertyFlags = -1;
+static gint ett_netdfs_dfs_Info5 = -1;
+static gint ett_netdfs_dfs_Target_Priority = -1;
+static gint ett_netdfs_dfs_StorageInfo2 = -1;
+static gint ett_netdfs_dfs_Info6 = -1;
+static gint ett_netdfs_dfs_Info7 = -1;
+static gint ett_netdfs_dfs_Info100 = -1;
+static gint ett_netdfs_dfs_Info101 = -1;
+static gint ett_netdfs_dfs_Info102 = -1;
+static gint ett_netdfs_dfs_Info103 = -1;
+static gint ett_netdfs_dfs_Info104 = -1;
+static gint ett_netdfs_dfs_Info105 = -1;
+static gint ett_netdfs_dfs_Info106 = -1;
+static gint ett_netdfs_dfs_Info200 = -1;
+static gint ett_netdfs_dfs_Info300 = -1;
+static gint ett_netdfs_dfs_Info = -1;
+static gint ett_netdfs_dfs_EnumArray1 = -1;
+static gint ett_netdfs_dfs_EnumArray2 = -1;
+static gint ett_netdfs_dfs_EnumArray3 = -1;
+static gint ett_netdfs_dfs_EnumArray4 = -1;
+static gint ett_netdfs_dfs_EnumArray5 = -1;
+static gint ett_netdfs_dfs_EnumArray6 = -1;
+static gint ett_netdfs_dfs_EnumArray200 = -1;
+static gint ett_netdfs_dfs_EnumArray300 = -1;
+static gint ett_netdfs_dfs_EnumInfo = -1;
+static gint ett_netdfs_dfs_EnumStruct = -1;
+static gint ett_netdfs_dfs_UnknownStruct = -1;
+
+
+/* Header field declarations */
+static gint hf_netdfs_dfs_Add_share = -1;
+static gint hf_netdfs_dfs_FlushFtTable_rootshare = -1;
+static gint hf_netdfs_dfs_AddFtRoot_dfsname = -1;
+static gint hf_netdfs_dfs_Info105_comment = -1;
+static gint hf_netdfs_dfs_Info5_guid = -1;
+static gint hf_netdfs_dfs_Info5_path = -1;
+static gint hf_netdfs_dfs_Add_path = -1;
+static gint hf_netdfs_dfs_StorageInfo_share = -1;
+static gint hf_netdfs_dfs_GetInfo_dfs_entry_path = -1;
+static gint hf_netdfs_dfs_Info6_stores = -1;
+static gint hf_netdfs_dfs_Remove_dfs_entry_path = -1;
+static gint hf_netdfs_dfs_Info105_state = -1;
+static gint hf_netdfs_dfs_RemoveFtRoot_dfsname = -1;
+static gint hf_netdfs_dfs_UnknownStruct_unknown2 = -1;
+static gint hf_netdfs_dfs_Info_info7 = -1;
+static gint hf_netdfs_dfs_EnumArray3_s = -1;
+static gint hf_netdfs_dfs_Info_info4 = -1;
+static gint hf_netdfs_dfs_Info106_priority = -1;
+static gint hf_netdfs_dfs_SetDcAddress_ttl = -1;
+static gint hf_netdfs_dfs_Info5_timeout = -1;
+static gint hf_netdfs_dfs_EnumEx_info = -1;
+static gint hf_netdfs_dfs_Info6_entry_path = -1;
+static gint hf_netdfs_dfs_Info_info6 = -1;
+static gint hf_netdfs_dfs_EnumStruct_level = -1;
+static gint hf_netdfs_dfs_Info6_state = -1;
+static gint hf_netdfs_dfs_StorageInfo_server = -1;
+static gint hf_netdfs_dfs_SetInfo_dfs_entry_path = -1;
+static gint hf_netdfs_dfs_Info4_timeout = -1;
+static gint hf_netdfs_dfs_SetInfo_sharename = -1;
+static gint hf_netdfs_dfs_Info_info1 = -1;
+static gint hf_netdfs_dfs_Add_comment = -1;
+static gint hf_netdfs_dfs_Info105_property_flags = -1;
+static gint hf_netdfs_dfs_EnumEx_bufsize = -1;
+static gint hf_netdfs_dfs_AddStdRootForced_store = -1;
+static gint hf_netdfs_dfs_Info2_num_stores = -1;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE = -1;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE = -1;
+static gint hf_netdfs_dfs_EnumInfo_info4 = -1;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED = -1;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB = -1;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT = -1;
+static gint hf_netdfs_dfs_AddFtRoot_servername = -1;
+static gint hf_netdfs_dfs_Info_info101 = -1;
+static gint hf_netdfs_dfs_AddFtRoot_unknown2 = -1;
+static gint hf_netdfs_dfs_GetDcAddress_is_root = -1;
+static gint hf_netdfs_dfs_GetInfo_sharename = -1;
+static gint hf_netdfs_dfs_Info200_dom_root = -1;
+static gint hf_netdfs_dfs_Info6_num_stores = -1;
+static gint hf_netdfs_dfs_Add_flags = -1;
+static gint hf_netdfs_dfs_EnumArray5_count = -1;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING = -1;
+static gint hf_netdfs_dfs_Info_info103 = -1;
+static gint hf_netdfs_dfs_Info_info106 = -1;
+static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE = -1;
+static gint hf_netdfs_dfs_Info7_generation_guid = -1;
+static gint hf_netdfs_dfs_Info5_comment = -1;
+static gint hf_netdfs_dfs_Info5_flags = -1;
+static gint hf_netdfs_dfs_EnumArray6_s = -1;
+static gint hf_netdfs_dfs_Remove_sharename = -1;
+static gint hf_netdfs_dfs_Info5_pktsize = -1;
+static gint hf_netdfs_dfs_Target_Priority_reserved = -1;
+static gint hf_netdfs_dfs_Info6_pktsize = -1;
+static gint hf_netdfs_dfs_GetDcAddress_ttl = -1;
+static gint hf_netdfs_dfs_RemoveStdRoot_flags = -1;
+static gint hf_netdfs_dfs_RemoveFtRoot_rootshare = -1;
+static gint hf_netdfs_dfs_EnumArray2_count = -1;
+static gint hf_netdfs_dfs_Info_info105 = -1;
+static gint hf_netdfs_dfs_AddStdRootForced_rootshare = -1;
+static gint hf_netdfs_dfs_GetInfo_info = -1;
+static gint hf_netdfs_dfs_Info3_path = -1;
+static gint hf_netdfs_dfs_EnumEx_dfs_name = -1;
+static gint hf_netdfs_dfs_Info4_state = -1;
+static gint hf_netdfs_dfs_EnumArray200_s = -1;
+static gint hf_netdfs_dfs_Info_info0 = -1;
+static gint hf_netdfs_dfs_AddFtRoot_flags = -1;
+static gint hf_netdfs_dfs_EnumArray300_s = -1;
+static gint hf_netdfs_dfs_Info4_path = -1;
+static gint hf_netdfs_dfs_EnumArray5_s = -1;
+static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE = -1;
+static gint hf_netdfs_dfs_RemoveStdRoot_servername = -1;
+static gint hf_netdfs_dfs_Add_server = -1;
+static gint hf_netdfs_dfs_EnumInfo_info1 = -1;
+static gint hf_netdfs_dfs_Info300_dom_root = -1;
+static gint hf_netdfs_dfs_EnumEx_level = -1;
+static gint hf_netdfs_dfs_EnumArray200_count = -1;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE = -1;
+static gint hf_netdfs_dfs_Info106_state = -1;
+static gint hf_netdfs_dfs_GetManagerVersion_version = -1;
+static gint hf_netdfs_dfs_SetInfo_level = -1;
+static gint hf_netdfs_dfs_Enum_total = -1;
+static gint hf_netdfs_dfs_EnumInfo_info6 = -1;
+static gint hf_netdfs_dfs_SetDcAddress_flags = -1;
+static gint hf_netdfs_dfs_AddFtRoot_dfs_config_dn = -1;
+static gint hf_netdfs_dfs_RemoveFtRoot_unknown = -1;
+static gint hf_netdfs_dfs_Info1_path = -1;
+static gint hf_netdfs_dfs_SetInfo_servername = -1;
+static gint hf_netdfs_dfs_FlushFtTable_servername = -1;
+static gint hf_netdfs_dfs_EnumArray6_count = -1;
+static gint hf_netdfs_dfs_Info103_flags = -1;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY = -1;
+static gint hf_netdfs_dfs_EnumInfo_info3 = -1;
+static gint hf_netdfs_dfs_GetInfo_servername = -1;
+static gint hf_netdfs_dfs_Info4_guid = -1;
+static gint hf_netdfs_dfs_EnumArray4_s = -1;
+static gint hf_netdfs_dfs_Remove_servername = -1;
+static gint hf_netdfs_dfs_StorageInfo2_info = -1;
+static gint hf_netdfs_dfs_Info4_comment = -1;
+static gint hf_netdfs_dfs_AddFtRoot_rootshare = -1;
+static gint hf_netdfs_dfs_Info3_state = -1;
+static gint hf_netdfs_dfs_EnumArray1_s = -1;
+static gint hf_netdfs_dfs_Info_info2 = -1;
+static gint hf_netdfs_dfs_SetDcAddress_server_fullname = -1;
+static gint hf_netdfs_dfs_Enum_info = -1;
+static gint hf_netdfs_dfs_EnumStruct_e = -1;
+static gint hf_netdfs_dfs_Info_info5 = -1;
+static gint hf_netdfs_dfs_EnumArray300_count = -1;
+static gint hf_netdfs_dfs_ManagerInitialize_servername = -1;
+static gint hf_netdfs_dfs_RemoveStdRoot_rootshare = -1;
+static gint hf_netdfs_dfs_Info_info100 = -1;
+static gint hf_netdfs_dfs_Info100_comment = -1;
+static gint hf_netdfs_dfs_AddFtRoot_unknown1 = -1;
+static gint hf_netdfs_opnum = -1;
+static gint hf_netdfs_dfs_EnumInfo_info300 = -1;
+static gint hf_netdfs_dfs_Info6_flags = -1;
+static gint hf_netdfs_dfs_Info102_timeout = -1;
+static gint hf_netdfs_dfs_EnumInfo_info200 = -1;
+static gint hf_netdfs_dfs_Info3_num_stores = -1;
+static gint hf_netdfs_dfs_StorageInfo_state = -1;
+static gint hf_netdfs_dfs_EnumArray1_count = -1;
+static gint hf_netdfs_dfs_GetDcAddress_server_fullname = -1;
+static gint hf_netdfs_dfs_Info_info3 = -1;
+static gint hf_netdfs_dfs_AddStdRootForced_comment = -1;
+static gint hf_netdfs_dfs_Info104_priority = -1;
+static gint hf_netdfs_dfs_AddStdRoot_comment = -1;
+static gint hf_netdfs_dfs_Info3_comment = -1;
+static gint hf_netdfs_dfs_UnknownStruct_unknown1 = -1;
+static gint hf_netdfs_dfs_Info6_timeout = -1;
+static gint hf_netdfs_dfs_Info101_state = -1;
+static gint hf_netdfs_dfs_AddStdRootForced_servername = -1;
+static gint hf_netdfs_dfs_Info2_path = -1;
+static gint hf_netdfs_dfs_Info105_timeout = -1;
+static gint hf_netdfs_dfs_Info3_stores = -1;
+static gint hf_netdfs_dfs_AddFtRoot_dns_servername = -1;
+static gint hf_netdfs_dfs_Enum_bufsize = -1;
+static gint hf_netdfs_dfs_GetInfo_level = -1;
+static gint hf_netdfs_werror = -1;
+static gint hf_netdfs_dfs_AddFtRoot_comment = -1;
+static gint hf_netdfs_dfs_Info_info102 = -1;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK = -1;
+static gint hf_netdfs_dfs_EnumArray3_count = -1;
+static gint hf_netdfs_dfs_ManagerInitialize_flags = -1;
+static gint hf_netdfs_dfs_SetInfo_info = -1;
+static gint hf_netdfs_dfs_Info4_stores = -1;
+static gint hf_netdfs_dfs_Info_info104 = -1;
+static gint hf_netdfs_dfs_RemoveFtRoot_dns_servername = -1;
+static gint hf_netdfs_dfs_StorageInfo2_target_priority = -1;
+static gint hf_netdfs_dfs_Target_Priority_target_priority_rank = -1;
+static gint hf_netdfs_dfs_Info5_num_stores = -1;
+static gint hf_netdfs_dfs_AddStdRoot_flags = -1;
+static gint hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK = -1;
+static gint hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE = -1;
+static gint hf_netdfs_dfs_EnumArray2_s = -1;
+static gint hf_netdfs_dfs_EnumInfo_info5 = -1;
+static gint hf_netdfs_dfs_EnumEx_total = -1;
+static gint hf_netdfs_dfs_AddStdRoot_servername = -1;
+static gint hf_netdfs_dfs_EnumInfo_info2 = -1;
+static gint hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS = -1;
+static gint hf_netdfs_dfs_Info6_guid = -1;
+static gint hf_netdfs_dfs_Info2_comment = -1;
+static gint hf_netdfs_dfs_Info2_state = -1;
+static gint hf_netdfs_dfs_Info300_flavor = -1;
+static gint hf_netdfs_dfs_RemoveFtRoot_flags = -1;
+static gint hf_netdfs_dfs_EnumArray4_count = -1;
+static gint hf_netdfs_dfs_Info6_comment = -1;
+static gint hf_netdfs_dfs_SetDcAddress_servername = -1;
+static gint hf_netdfs_dfs_Target_Priority_target_priority_class = -1;
+static gint hf_netdfs_dfs_Enum_level = -1;
+static gint hf_netdfs_dfs_Info5_state = -1;
+static gint hf_netdfs_dfs_AddStdRoot_rootshare = -1;
+static gint hf_netdfs_dfs_Info4_num_stores = -1;
+static gint hf_netdfs_dfs_RemoveFtRoot_servername = -1;
+static gint hf_netdfs_dfs_GetDcAddress_servername = -1;
+static gint hf_netdfs_dfs_Info105_property_flag_mask = -1;
+
+static gint proto_dcerpc_netdfs = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_netdfs = {
+       0x4fc742e0, 0x4a10, 0x11cf,
+       { 0x82, 0x73, 0x00, 0xaa, 0x00, 0x4a, 0xe6, 0x73 }
+};
+static guint16 ver_dcerpc_netdfs = 3;
+
+const value_string netdfs_dfs_ManagerVersion_vals[] = {
+       { DFS_MANAGER_VERSION_NT4, "DFS_MANAGER_VERSION_NT4" },
+       { DFS_MANAGER_VERSION_W2K, "DFS_MANAGER_VERSION_W2K" },
+       { DFS_MANAGER_VERSION_W2K3, "DFS_MANAGER_VERSION_W2K3" },
+       { DFS_MANAGER_VERSION_W2K8, "DFS_MANAGER_VERSION_W2K8" },
+{ 0, NULL }
+};
+static int netdfs_dissect_element_dfs_Info1_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info1_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_OK_tfs = {
+   "DFS_VOLUME_STATE_OK is SET",
+   "DFS_VOLUME_STATE_OK is NOT SET",
+};
+static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT_tfs = {
+   "DFS_VOLUME_STATE_INCONSISTENT is SET",
+   "DFS_VOLUME_STATE_INCONSISTENT is NOT SET",
+};
+static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE_tfs = {
+   "DFS_VOLUME_STATE_OFFLINE is SET",
+   "DFS_VOLUME_STATE_OFFLINE is NOT SET",
+};
+static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_ONLINE_tfs = {
+   "DFS_VOLUME_STATE_ONLINE is SET",
+   "DFS_VOLUME_STATE_ONLINE is NOT SET",
+};
+static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE_tfs = {
+   "DFS_VOLUME_STATE_STANDALONE is SET",
+   "DFS_VOLUME_STATE_STANDALONE is NOT SET",
+};
+static const true_false_string dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB_tfs = {
+   "DFS_VOLUME_STATE_AD_BLOB is SET",
+   "DFS_VOLUME_STATE_AD_BLOB is NOT SET",
+};
+static int netdfs_dissect_element_dfs_Info2_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info2_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info2_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info2_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string dfs_StorageState_DFS_STORAGE_STATE_OFFLINE_tfs = {
+   "DFS_STORAGE_STATE_OFFLINE is SET",
+   "DFS_STORAGE_STATE_OFFLINE is NOT SET",
+};
+static const true_false_string dfs_StorageState_DFS_STORAGE_STATE_ONLINE_tfs = {
+   "DFS_STORAGE_STATE_ONLINE is SET",
+   "DFS_STORAGE_STATE_ONLINE is NOT SET",
+};
+static const true_false_string dfs_StorageState_DFS_STORAGE_STATE_ACTIVE_tfs = {
+   "DFS_STORAGE_STATE_ACTIVE is SET",
+   "DFS_STORAGE_STATE_ACTIVE is NOT SET",
+};
+static int netdfs_dissect_element_dfs_StorageInfo_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_StorageInfo_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_StorageInfo_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_StorageInfo_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_StorageInfo_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_stores_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info3_stores__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_stores_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info4_stores__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS_tfs = {
+   "DFS_PROPERTY_FLAG_INSITE_REFERRALS is SET",
+   "DFS_PROPERTY_FLAG_INSITE_REFERRALS is NOT SET",
+};
+static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY_tfs = {
+   "DFS_PROPERTY_FLAG_ROOT_SCALABILITY is SET",
+   "DFS_PROPERTY_FLAG_ROOT_SCALABILITY is NOT SET",
+};
+static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING_tfs = {
+   "DFS_PROPERTY_FLAG_SITE_COSTING is SET",
+   "DFS_PROPERTY_FLAG_SITE_COSTING is NOT SET",
+};
+static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK_tfs = {
+   "DFS_PROPERTY_FLAG_TARGET_FAILBACK is SET",
+   "DFS_PROPERTY_FLAG_TARGET_FAILBACK is NOT SET",
+};
+static const true_false_string dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED_tfs = {
+   "DFS_PROPERTY_FLAG_CLUSTER_ENABLED is SET",
+   "DFS_PROPERTY_FLAG_CLUSTER_ENABLED is NOT SET",
+};
+static int netdfs_dissect_element_dfs_Info5_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_pktsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info5_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netdfs_dfs_Target_PriorityClass_vals[] = {
+       { DFS_INVALID_PRIORITY_CLASS, "DFS_INVALID_PRIORITY_CLASS" },
+       { DFS_SITE_COST_NORMAL_PRIORITY_CLASS, "DFS_SITE_COST_NORMAL_PRIORITY_CLASS" },
+       { DFS_GLOBAL_HIGH_PRIORITY_CLASS, "DFS_GLOBAL_HIGH_PRIORITY_CLASS" },
+       { DFS_SITE_COST_HIGH_PRIORITY_CLASS, "DFS_SITE_COST_HIGH_PRIORITY_CLASS" },
+       { DFS_SITE_COST_LOW_PRIORITY_CLASS, "DFS_SITE_COST_LOW_PRIORITY_CLASS" },
+       { DFS_GLOBAL_LOW_PRIORITY_CLASS, "DFS_GLOBAL_LOW_PRIORITY_CLASS" },
+{ 0, NULL }
+};
+static int netdfs_dissect_element_dfs_Target_Priority_target_priority_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Target_Priority_target_priority_rank(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Target_Priority_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_StorageInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_StorageInfo2_target_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_entry_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_pktsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_stores_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info6_stores__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info7_generation_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info100_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info100_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info101_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info102_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info103_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info104_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info105_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info105_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info105_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info105_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info105_property_flag_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info105_property_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info106_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info106_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info200_dom_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info200_dom_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netdfs_dfs_VolumeFlavor_vals[] = {
+       { DFS_VOLUME_FLAVOR_STANDALONE, "DFS_VOLUME_FLAVOR_STANDALONE" },
+       { DFS_VOLUME_FLAVOR_AD_BLOB, "DFS_VOLUME_FLAVOR_AD_BLOB" },
+{ 0, NULL }
+};
+static int netdfs_dissect_element_dfs_Info300_flavor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info300_dom_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info300_dom_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info102_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info103(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info103_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info104(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info104_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info105(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info105_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info106(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Info_info106_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray1_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray1_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray1_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray2_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray2_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray2_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray3_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray3_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray3_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray4_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray4_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray4_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray4_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray5_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray5_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray5_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray5_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray6_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray6_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray6_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray6_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray200_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray200_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray200_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray200_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray300_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray300_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray300_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumArray300_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info200(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info200_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info300(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumInfo_info300_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumStruct_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int netdfs_dissect_element_dfs_EnumStruct_e(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int netdfs_dissect_element_dfs_UnknownStruct_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_UnknownStruct_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_UnknownStruct_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetManagerVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetManagerVersion_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Add_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Remove_dfs_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Remove_dfs_entry_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Remove_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Remove_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Remove_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Remove_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_dfs_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_dfs_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Enum_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Enum_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Enum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Enum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Enum_total(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_Enum_total_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_dns_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_dfsname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_dfs_config_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddFtRoot_unknown2__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_dns_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_dfsname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveFtRoot_unknown__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRoot_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveStdRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveStdRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_RemoveStdRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_ManagerInitialize_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_ManagerInitialize_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_ManagerInitialize_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRootForced_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRootForced_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRootForced_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_AddStdRootForced_store(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_server_fullname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_server_fullname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_server_fullname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_is_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_is_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_GetDcAddress_ttl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetDcAddress_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetDcAddress_server_fullname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetDcAddress_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_SetDcAddress_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_FlushFtTable_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_FlushFtTable_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_dfs_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_total(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netdfs_dissect_element_dfs_EnumEx_total_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        DFS_MANAGER_VERSION_NT4=1, */
+/* IDL:        DFS_MANAGER_VERSION_W2K=2, */
+/* IDL:        DFS_MANAGER_VERSION_W2K3=4, */
+/* IDL:        DFS_MANAGER_VERSION_W2K8=6, */
+/* IDL: } */
+
+int
+netdfs_dissect_enum_dfs_ManagerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+netdfs_dissect_struct_dfs_Info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info0);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info1_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info1_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_netdfs_dfs_Info1_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info1_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info1_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info1);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info1_path(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DFS_VOLUME_STATE_OK =  0x1 , */
+/* IDL:        DFS_VOLUME_STATE_INCONSISTENT =  0x2 , */
+/* IDL:        DFS_VOLUME_STATE_OFFLINE =  0x3 , */
+/* IDL:        DFS_VOLUME_STATE_ONLINE =  0x4 , */
+/* IDL:        DFS_VOLUME_STATE_STANDALONE =  DFS_VOLUME_FLAVOR_STANDALONE , */
+/* IDL:        DFS_VOLUME_STATE_AD_BLOB =  DFS_VOLUME_FLAVOR_AD_BLOB , */
+/* IDL: } */
+
+int
+netdfs_dissect_bitmap_dfs_VolumeState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netdfs_dfs_VolumeState);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK, tvb, offset-4, 4, flags);
+       if (flags&( 0x1 )){
+               proto_item_append_text(item, "DFS_VOLUME_STATE_OK");
+               if (flags & (~( 0x1 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x1 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x2 )){
+               proto_item_append_text(item, "DFS_VOLUME_STATE_INCONSISTENT");
+               if (flags & (~( 0x2 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x2 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE, tvb, offset-4, 4, flags);
+       if (flags&( 0x3 )){
+               proto_item_append_text(item, "DFS_VOLUME_STATE_OFFLINE");
+               if (flags & (~( 0x3 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x3 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE, tvb, offset-4, 4, flags);
+       if (flags&( 0x4 )){
+               proto_item_append_text(item, "DFS_VOLUME_STATE_ONLINE");
+               if (flags & (~( 0x4 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x4 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE, tvb, offset-4, 4, flags);
+       if (flags&( DFS_VOLUME_FLAVOR_STANDALONE )){
+               proto_item_append_text(item, "DFS_VOLUME_STATE_STANDALONE");
+               if (flags & (~( DFS_VOLUME_FLAVOR_STANDALONE )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( DFS_VOLUME_FLAVOR_STANDALONE ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB, tvb, offset-4, 4, flags);
+       if (flags&( DFS_VOLUME_FLAVOR_AD_BLOB )){
+               proto_item_append_text(item, "DFS_VOLUME_STATE_AD_BLOB");
+               if (flags & (~( DFS_VOLUME_FLAVOR_AD_BLOB )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( DFS_VOLUME_FLAVOR_AD_BLOB ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        dfs_VolumeState state; */
+/* IDL:        uint32 num_stores; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info2_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info2_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_netdfs_dfs_Info2_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info2_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info2_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info2_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info2_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info2_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info2_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info2_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info2_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info2_num_stores, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info2);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info2_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info2_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info2_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info2_num_stores(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DFS_STORAGE_STATE_OFFLINE =  1 , */
+/* IDL:        DFS_STORAGE_STATE_ONLINE =  2 , */
+/* IDL:        DFS_STORAGE_STATE_ACTIVE =  4 , */
+/* IDL: } */
+
+int
+netdfs_dissect_bitmap_dfs_StorageState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netdfs_dfs_StorageState);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE, tvb, offset-4, 4, flags);
+       if (flags&( 1 )){
+               proto_item_append_text(item, "DFS_STORAGE_STATE_OFFLINE");
+               if (flags & (~( 1 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 1 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE, tvb, offset-4, 4, flags);
+       if (flags&( 2 )){
+               proto_item_append_text(item, "DFS_STORAGE_STATE_ONLINE");
+               if (flags & (~( 2 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 2 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE, tvb, offset-4, 4, flags);
+       if (flags&( 4 )){
+               proto_item_append_text(item, "DFS_STORAGE_STATE_ACTIVE");
+               if (flags & (~( 4 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 4 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_StorageState state; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *share; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_StorageInfo_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_StorageState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_StorageInfo_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_StorageInfo_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_StorageInfo_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_netdfs_dfs_StorageInfo_server);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_StorageInfo_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_StorageInfo_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_StorageInfo_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_StorageInfo_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_netdfs_dfs_StorageInfo_share);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_StorageInfo_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_StorageInfo_share, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_StorageInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_StorageInfo);
+       }
+       
+       offset = netdfs_dissect_element_dfs_StorageInfo_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_StorageInfo_server(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_StorageInfo_share(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        dfs_VolumeState state; */
+/* IDL:        uint32 num_stores; */
+/* IDL:        [unique(1)] [size_is(num_stores)] dfs_StorageInfo *stores; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info3_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info3_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_netdfs_dfs_Info3_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info3_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info3_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info3_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info3_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info3_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info3_num_stores, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info3_stores_, NDR_POINTER_UNIQUE, "Pointer to Stores (dfs_StorageInfo)",hf_netdfs_dfs_Info3_stores);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_stores_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info3_stores__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info3_stores__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_StorageInfo(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info3_stores,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info3);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info3_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info3_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info3_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info3_num_stores(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info3_stores(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        dfs_VolumeState state; */
+/* IDL:        uint32 timeout; */
+/* IDL:        GUID guid; */
+/* IDL:        uint32 num_stores; */
+/* IDL:        [unique(1)] [size_is(num_stores)] dfs_StorageInfo *stores; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info4_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info4_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_netdfs_dfs_Info4_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info4_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info4_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info4_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info4_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info4_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info4_timeout, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info4_guid, NULL);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info4_num_stores, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info4_stores_, NDR_POINTER_UNIQUE, "Pointer to Stores (dfs_StorageInfo)",hf_netdfs_dfs_Info4_stores);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_stores_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info4_stores__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info4_stores__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_StorageInfo(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info4_stores,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info4);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info4_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info4_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info4_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info4_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info4_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info4_num_stores(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info4_stores(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DFS_PROPERTY_FLAG_INSITE_REFERRALS =  0x01 , */
+/* IDL:        DFS_PROPERTY_FLAG_ROOT_SCALABILITY =  0x02 , */
+/* IDL:        DFS_PROPERTY_FLAG_SITE_COSTING =  0x04 , */
+/* IDL:        DFS_PROPERTY_FLAG_TARGET_FAILBACK =  0x08 , */
+/* IDL:        DFS_PROPERTY_FLAG_CLUSTER_ENABLED =  0x10 , */
+/* IDL: } */
+
+int
+netdfs_dissect_bitmap_dfs_PropertyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netdfs_dfs_PropertyFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS, tvb, offset-4, 4, flags);
+       if (flags&( 0x01 )){
+               proto_item_append_text(item, "DFS_PROPERTY_FLAG_INSITE_REFERRALS");
+               if (flags & (~( 0x01 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY, tvb, offset-4, 4, flags);
+       if (flags&( 0x02 )){
+               proto_item_append_text(item, "DFS_PROPERTY_FLAG_ROOT_SCALABILITY");
+               if (flags & (~( 0x02 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING, tvb, offset-4, 4, flags);
+       if (flags&( 0x04 )){
+               proto_item_append_text(item, "DFS_PROPERTY_FLAG_SITE_COSTING");
+               if (flags & (~( 0x04 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK, tvb, offset-4, 4, flags);
+       if (flags&( 0x08 )){
+               proto_item_append_text(item, "DFS_PROPERTY_FLAG_TARGET_FAILBACK");
+               if (flags & (~( 0x08 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08 ));
+
+       proto_tree_add_boolean(tree, hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED, tvb, offset-4, 4, flags);
+       if (flags&( 0x10 )){
+               proto_item_append_text(item, "DFS_PROPERTY_FLAG_CLUSTER_ENABLED");
+               if (flags & (~( 0x10 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        dfs_VolumeState state; */
+/* IDL:        uint32 timeout; */
+/* IDL:        GUID guid; */
+/* IDL:        dfs_PropertyFlags flags; */
+/* IDL:        uint32 pktsize; */
+/* IDL:        uint32 num_stores; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info5_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info5_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_netdfs_dfs_Info5_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info5_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info5_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info5_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info5_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_timeout, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_guid, NULL);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_PropertyFlags(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_flags, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_pktsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_pktsize, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info5_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info5_num_stores, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info5);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info5_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_pktsize(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info5_num_stores(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DFS_INVALID_PRIORITY_CLASS=-1, */
+/* IDL:        DFS_SITE_COST_NORMAL_PRIORITY_CLASS=0, */
+/* IDL:        DFS_GLOBAL_HIGH_PRIORITY_CLASS=1, */
+/* IDL:        DFS_SITE_COST_HIGH_PRIORITY_CLASS=2, */
+/* IDL:        DFS_SITE_COST_LOW_PRIORITY_CLASS=3, */
+/* IDL:        DFS_GLOBAL_LOW_PRIORITY_CLASS=4, */
+/* IDL: } */
+
+int
+netdfs_dissect_enum_dfs_Target_PriorityClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_Target_PriorityClass target_priority_class; */
+/* IDL:        uint16 target_priority_rank; */
+/* IDL:        uint16 reserved; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Target_Priority_target_priority_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_enum_dfs_Target_PriorityClass(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Target_Priority_target_priority_class, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Target_Priority_target_priority_rank(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Target_Priority_target_priority_rank, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Target_Priority_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Target_Priority_reserved, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Target_Priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Target_Priority);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Target_Priority_target_priority_class(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Target_Priority_target_priority_rank(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Target_Priority_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_StorageInfo info; */
+/* IDL:        dfs_Target_Priority target_priority; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_StorageInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_StorageInfo(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_StorageInfo2_info,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_StorageInfo2_target_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Target_Priority(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_StorageInfo2_target_priority,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_StorageInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_StorageInfo2);
+       }
+       
+       offset = netdfs_dissect_element_dfs_StorageInfo2_info(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_StorageInfo2_target_priority(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *entry_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        dfs_VolumeState state; */
+/* IDL:        uint32 timeout; */
+/* IDL:        GUID guid; */
+/* IDL:        dfs_PropertyFlags flags; */
+/* IDL:        uint32 pktsize; */
+/* IDL:        uint16 num_stores; */
+/* IDL:        [unique(1)] [size_is(num_stores)] dfs_StorageInfo2 *stores; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info6_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_entry_path_, NDR_POINTER_UNIQUE, "Pointer to Entry Path (uint16)",hf_netdfs_dfs_Info6_entry_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_entry_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info6_entry_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info6_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info6_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_timeout, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_guid, NULL);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_PropertyFlags(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_flags, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_pktsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_pktsize, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_num_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info6_num_stores, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_stores(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_stores_, NDR_POINTER_UNIQUE, "Pointer to Stores (dfs_StorageInfo2)",hf_netdfs_dfs_Info6_stores);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_stores_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info6_stores__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info6_stores__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_StorageInfo2(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info6_stores,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info6);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info6_entry_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_pktsize(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_num_stores(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info6_stores(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID generation_guid; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info7_generation_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info7_generation_guid, NULL);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info7);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info7_generation_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info100_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info100_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info100_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info100_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info100_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info100);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info100_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_StorageState state; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info101_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_StorageState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info101_state, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info101);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info101_state(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 timeout; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info102_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info102_timeout, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info102);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info102_timeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_PropertyFlags flags; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info103_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_PropertyFlags(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info103_flags, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info103(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info103);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info103_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_Target_Priority priority; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info104_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Target_Priority(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info104_priority,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info104(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info104);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info104_priority(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        dfs_VolumeState state; */
+/* IDL:        uint32 timeout; */
+/* IDL:        uint32 property_flag_mask; */
+/* IDL:        uint32 property_flags; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info105_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info105_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Info105_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info105_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info105_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info105_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_VolumeState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info105_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_timeout, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info105_property_flag_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_property_flag_mask, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info105_property_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info105_property_flags, 0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info105(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info105);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info105_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info105_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info105_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info105_property_flag_mask(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info105_property_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_StorageState state; */
+/* IDL:        dfs_Target_Priority priority; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info106_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_bitmap_dfs_StorageState(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info106_state, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info106_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Target_Priority(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info106_priority,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info106(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info106);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info106_state(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info106_priority(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dom_root; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info200_dom_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info200_dom_root_, NDR_POINTER_UNIQUE, "Pointer to Dom Root (uint16)",hf_netdfs_dfs_Info200_dom_root);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info200_dom_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info200_dom_root, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info200(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info200);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info200_dom_root(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DFS_VOLUME_FLAVOR_STANDALONE=0x100, */
+/* IDL:        DFS_VOLUME_FLAVOR_AD_BLOB=0x200, */
+/* IDL: } */
+
+int
+netdfs_dissect_enum_dfs_VolumeFlavor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dfs_VolumeFlavor flavor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dom_root; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info300_flavor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_enum_dfs_VolumeFlavor(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Info300_flavor, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info300_dom_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info300_dom_root_, NDR_POINTER_UNIQUE, "Pointer to Dom Root (uint16)",hf_netdfs_dfs_Info300_dom_root);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info300_dom_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Info300_dom_root, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_Info300(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info300);
+       }
+       
+       offset = netdfs_dissect_element_dfs_Info300_flavor(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_Info300_dom_root(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] dfs_Info0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] dfs_Info1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] dfs_Info2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] dfs_Info3 *info3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] dfs_Info4 *info4; */
+/* IDL: [case(5)] [unique(1)] [case(5)] dfs_Info5 *info5; */
+/* IDL: [case(6)] [unique(1)] [case(6)] dfs_Info6 *info6; */
+/* IDL: [case(7)] [unique(1)] [case(7)] dfs_Info7 *info7; */
+/* IDL: [case(100)] [unique(1)] [case(100)] dfs_Info100 *info100; */
+/* IDL: [case(101)] [unique(1)] [case(101)] dfs_Info101 *info101; */
+/* IDL: [case(102)] [unique(1)] [case(102)] dfs_Info102 *info102; */
+/* IDL: [case(103)] [unique(1)] [case(103)] dfs_Info103 *info103; */
+/* IDL: [case(104)] [unique(1)] [case(104)] dfs_Info104 *info104; */
+/* IDL: [case(105)] [unique(1)] [case(105)] dfs_Info105 *info105; */
+/* IDL: [case(106)] [unique(1)] [case(106)] dfs_Info106 *info106; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_Info_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (dfs_Info0)",hf_netdfs_dfs_Info_info0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info0(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info0,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (dfs_Info1)",hf_netdfs_dfs_Info_info1);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info1(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info1,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (dfs_Info2)",hf_netdfs_dfs_Info_info2);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info2(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info2,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (dfs_Info3)",hf_netdfs_dfs_Info_info3);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info3(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info3,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (dfs_Info4)",hf_netdfs_dfs_Info_info4);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info4(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info4,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info5_, NDR_POINTER_UNIQUE, "Pointer to Info5 (dfs_Info5)",hf_netdfs_dfs_Info_info5);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info5(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info5,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (dfs_Info6)",hf_netdfs_dfs_Info_info6);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info6(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info6,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info7_, NDR_POINTER_UNIQUE, "Pointer to Info7 (dfs_Info7)",hf_netdfs_dfs_Info_info7);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info7(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info7,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info100_, NDR_POINTER_UNIQUE, "Pointer to Info100 (dfs_Info100)",hf_netdfs_dfs_Info_info100);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info100(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info100,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info101_, NDR_POINTER_UNIQUE, "Pointer to Info101 (dfs_Info101)",hf_netdfs_dfs_Info_info101);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info101(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info101,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info102_, NDR_POINTER_UNIQUE, "Pointer to Info102 (dfs_Info102)",hf_netdfs_dfs_Info_info102);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info102_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info102(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info102,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info103(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info103_, NDR_POINTER_UNIQUE, "Pointer to Info103 (dfs_Info103)",hf_netdfs_dfs_Info_info103);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info103_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info103(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info103,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info104(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info104_, NDR_POINTER_UNIQUE, "Pointer to Info104 (dfs_Info104)",hf_netdfs_dfs_Info_info104);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info104_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info104(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info104,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info105(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info105_, NDR_POINTER_UNIQUE, "Pointer to Info105 (dfs_Info105)",hf_netdfs_dfs_Info_info105);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info105_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info105(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info105,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info106(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Info_info106_, NDR_POINTER_UNIQUE, "Pointer to Info106 (dfs_Info106)",hf_netdfs_dfs_Info_info106);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Info_info106_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info106(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Info_info106,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dfs_Info");
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_Info);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = netdfs_dissect_element_dfs_Info_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = netdfs_dissect_element_dfs_Info_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = netdfs_dissect_element_dfs_Info_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = netdfs_dissect_element_dfs_Info_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = netdfs_dissect_element_dfs_Info_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = netdfs_dissect_element_dfs_Info_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = netdfs_dissect_element_dfs_Info_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = netdfs_dissect_element_dfs_Info_info7(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 100:
+                       offset = netdfs_dissect_element_dfs_Info_info100(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 101:
+                       offset = netdfs_dissect_element_dfs_Info_info101(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 102:
+                       offset = netdfs_dissect_element_dfs_Info_info102(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 103:
+                       offset = netdfs_dissect_element_dfs_Info_info103(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 104:
+                       offset = netdfs_dissect_element_dfs_Info_info104(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 105:
+                       offset = netdfs_dissect_element_dfs_Info_info105(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 106:
+                       offset = netdfs_dissect_element_dfs_Info_info106(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info1 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray1_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray1_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray1_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info1)",hf_netdfs_dfs_EnumArray1_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray1_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray1_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray1_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info1(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray1_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray1);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray1_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info2 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray2_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray2_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray2_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info2)",hf_netdfs_dfs_EnumArray2_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray2_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray2_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray2_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info2(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray2_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray2);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray2_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info3 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray3_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray3_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray3_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info3)",hf_netdfs_dfs_EnumArray3_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray3_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray3_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray3_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info3(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray3_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray3);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray3_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray3_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info4 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray4_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray4_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray4_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray4_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info4)",hf_netdfs_dfs_EnumArray4_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray4_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray4_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray4_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info4(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray4_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray4);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray4_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray4_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info5 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray5_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray5_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray5_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray5_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info5)",hf_netdfs_dfs_EnumArray5_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray5_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray5_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray5_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info5(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray5_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray5);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray5_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray5_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info6 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray6_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray6_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray6_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray6_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info6)",hf_netdfs_dfs_EnumArray6_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray6_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray6_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray6_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info6(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray6_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray6);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray6_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray6_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info200 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray200_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray200_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray200_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray200_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info200)",hf_netdfs_dfs_EnumArray200_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray200_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray200_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray200_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info200(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray200_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray200(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray200);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray200_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray200_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] dfs_Info300 *s; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumArray300_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumArray300_count, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray300_s(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray300_s_, NDR_POINTER_UNIQUE, "Pointer to S (dfs_Info300)",hf_netdfs_dfs_EnumArray300_s);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray300_s_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumArray300_s__);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumArray300_s__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_Info300(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumArray300_s,0);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumArray300(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumArray300);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumArray300_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumArray300_s(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] dfs_EnumArray1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] dfs_EnumArray2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] dfs_EnumArray3 *info3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] dfs_EnumArray4 *info4; */
+/* IDL: [case(5)] [unique(1)] [case(5)] dfs_EnumArray5 *info5; */
+/* IDL: [case(6)] [unique(1)] [case(6)] dfs_EnumArray6 *info6; */
+/* IDL: [case(200)] [unique(1)] [case(200)] dfs_EnumArray200 *info200; */
+/* IDL: [case(300)] [unique(1)] [case(300)] dfs_EnumArray300 *info300; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (dfs_EnumArray1)",hf_netdfs_dfs_EnumInfo_info1);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray1(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info1,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (dfs_EnumArray2)",hf_netdfs_dfs_EnumInfo_info2);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray2(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info2,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (dfs_EnumArray3)",hf_netdfs_dfs_EnumInfo_info3);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray3(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info3,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (dfs_EnumArray4)",hf_netdfs_dfs_EnumInfo_info4);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray4(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info4,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info5_, NDR_POINTER_UNIQUE, "Pointer to Info5 (dfs_EnumArray5)",hf_netdfs_dfs_EnumInfo_info5);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray5(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info5,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (dfs_EnumArray6)",hf_netdfs_dfs_EnumInfo_info6);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray6(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info6,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info200(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info200_, NDR_POINTER_UNIQUE, "Pointer to Info200 (dfs_EnumArray200)",hf_netdfs_dfs_EnumInfo_info200);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info200_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray200(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info200,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info300(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumInfo_info300_, NDR_POINTER_UNIQUE, "Pointer to Info300 (dfs_EnumArray300)",hf_netdfs_dfs_EnumInfo_info300);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumInfo_info300_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumArray300(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumInfo_info300,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_EnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dfs_EnumInfo");
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 200:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info200(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 300:
+                       offset = netdfs_dissect_element_dfs_EnumInfo_info300(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] dfs_EnumInfo e; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_EnumStruct_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumStruct_level, level);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumStruct_e(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = netdfs_dissect_dfs_EnumInfo(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumStruct_e, *level);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_EnumStruct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+        e;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_EnumStruct);
+       }
+       
+       offset = netdfs_dissect_element_dfs_EnumStruct_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = netdfs_dissect_element_dfs_EnumStruct_e(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 unknown1; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *unknown2; */
+/* IDL: } */
+
+static int
+netdfs_dissect_element_dfs_UnknownStruct_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_UnknownStruct_unknown1, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_UnknownStruct_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_UnknownStruct_unknown2_, NDR_POINTER_UNIQUE, "Pointer to Unknown2 (uint16)",hf_netdfs_dfs_UnknownStruct_unknown2);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_UnknownStruct_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_UnknownStruct_unknown2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netdfs_dissect_struct_dfs_UnknownStruct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netdfs_dfs_UnknownStruct);
+       }
+       
+       offset = netdfs_dissect_element_dfs_UnknownStruct_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netdfs_dissect_element_dfs_UnknownStruct_unknown2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetManagerVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetManagerVersion_version_, NDR_POINTER_REF, "Pointer to Version (dfs_ManagerVersion)",hf_netdfs_dfs_GetManagerVersion_version);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetManagerVersion_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_enum_dfs_ManagerVersion(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_GetManagerVersion_version, 0);
+
+       return offset;
+}
+
+/* IDL: void dfs_GetManagerVersion( */
+/* IDL: [out] [ref] dfs_ManagerVersion *version */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_GetManagerVersion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_GetManagerVersion";
+       offset = netdfs_dissect_element_dfs_GetManagerVersion_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_GetManagerVersion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_GetManagerVersion";
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Add_path_, NDR_POINTER_REF, "Pointer to Path (uint16)",hf_netdfs_dfs_Add_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Add_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Add_server_, NDR_POINTER_REF, "Pointer to Server (uint16)",hf_netdfs_dfs_Add_server);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Add_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Add_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_netdfs_dfs_Add_share);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Add_share, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Add_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_netdfs_dfs_Add_comment);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Add_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Add_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Add_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_Add( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *path, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *share, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *comment, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Add_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Add";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Add_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Add";
+       offset = netdfs_dissect_element_dfs_Add_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Add_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Add_share(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Add_comment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Add_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Remove_dfs_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_dfs_entry_path_, NDR_POINTER_REF, "Pointer to Dfs Entry Path (uint16)",hf_netdfs_dfs_Remove_dfs_entry_path);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Remove_dfs_entry_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_dfs_entry_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Remove_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_netdfs_dfs_Remove_servername);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Remove_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Remove_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Remove_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_netdfs_dfs_Remove_sharename);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Remove_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_Remove_sharename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_Remove( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *dfs_entry_path, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *sharename */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Remove_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Remove";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Remove_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Remove";
+       offset = netdfs_dissect_element_dfs_Remove_dfs_entry_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Remove_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Remove_sharename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_dfs_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetInfo_dfs_entry_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_SetInfo_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_netdfs_dfs_SetInfo_servername);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetInfo_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_SetInfo_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_netdfs_dfs_SetInfo_sharename);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetInfo_sharename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_SetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_SetInfo_info_, NDR_POINTER_REF, "Pointer to Info (dfs_Info)",hf_netdfs_dfs_SetInfo_info);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_dfs_Info(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_SetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_SetInfo( */
+/* IDL: [in] [charset(UTF16)] uint16 dfs_entry_path[*], */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *sharename, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] dfs_Info *info */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_SetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_SetInfo";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_SetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_SetInfo";
+       offset = netdfs_dissect_element_dfs_SetInfo_dfs_entry_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetInfo_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetInfo_sharename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_dfs_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_dfs_entry_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_netdfs_dfs_GetInfo_servername);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_netdfs_dfs_GetInfo_sharename);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetInfo_sharename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_GetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetInfo_info_, NDR_POINTER_REF, "Pointer to Info (dfs_Info)",hf_netdfs_dfs_GetInfo_info);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_dfs_Info(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_GetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_GetInfo( */
+/* IDL: [in] [charset(UTF16)] uint16 dfs_entry_path[*], */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *sharename, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] dfs_Info *info */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_GetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_GetInfo";
+       offset = netdfs_dissect_element_dfs_GetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_GetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_GetInfo";
+       offset = netdfs_dissect_element_dfs_GetInfo_dfs_entry_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_GetInfo_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_GetInfo_sharename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_GetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Enum_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Enum_level, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Enum_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Enum_bufsize, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Enum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Enum_info_, NDR_POINTER_UNIQUE, "Pointer to Info (dfs_EnumStruct)",hf_netdfs_dfs_Enum_info);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Enum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumStruct(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_Enum_info,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Enum_total(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_Enum_total_, NDR_POINTER_UNIQUE, "Pointer to Total (uint32)",hf_netdfs_dfs_Enum_total);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_Enum_total_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_Enum_total, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_Enum( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 bufsize, */
+/* IDL: [out] [unique(1)] [in] dfs_EnumStruct *info, */
+/* IDL: [out] [unique(1)] [in] uint32 *total */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Enum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Enum";
+       offset = netdfs_dissect_element_dfs_Enum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netdfs_dissect_element_dfs_Enum_total(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Enum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Enum";
+       offset = netdfs_dissect_element_dfs_Enum_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Enum_bufsize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Enum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_Enum_total(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR dfs_Rename( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Rename_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Rename";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Rename_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Rename";
+       return offset;
+}
+
+/* IDL: WERROR dfs_Move( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Move_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Move";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Move_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Move";
+       return offset;
+}
+
+/* IDL: WERROR dfs_ManagerGetConfigInfo( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_ManagerGetConfigInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_ManagerGetConfigInfo";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_ManagerGetConfigInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_ManagerGetConfigInfo";
+       return offset;
+}
+
+/* IDL: WERROR dfs_ManagerSendSiteInfo( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_ManagerSendSiteInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_ManagerSendSiteInfo";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_ManagerSendSiteInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_ManagerSendSiteInfo";
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddFtRoot_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_dns_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddFtRoot_dns_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_dfsname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddFtRoot_dfsname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddFtRoot_rootshare, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddFtRoot_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_dfs_config_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddFtRoot_dfs_config_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_AddFtRoot_unknown1, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_AddFtRoot_flags, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_AddFtRoot_unknown2_, NDR_POINTER_UNIQUE, "Pointer to Unknown2 (dfs_UnknownStruct)",hf_netdfs_dfs_AddFtRoot_unknown2);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_AddFtRoot_unknown2__, NDR_POINTER_UNIQUE, "Pointer to Unknown2 (dfs_UnknownStruct)",hf_netdfs_dfs_AddFtRoot_unknown2);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddFtRoot_unknown2__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_UnknownStruct(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_AddFtRoot_unknown2,0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_AddFtRoot( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 dns_servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 dfsname[*], */
+/* IDL: [in] [charset(UTF16)] uint16 rootshare[*], */
+/* IDL: [in] [charset(UTF16)] uint16 comment[*], */
+/* IDL: [in] [charset(UTF16)] uint16 dfs_config_dn[*], */
+/* IDL: [in] uint8 unknown1, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [unique(1)] [in] dfs_UnknownStruct **unknown2 */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_AddFtRoot_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_AddFtRoot";
+       offset = netdfs_dissect_element_dfs_AddFtRoot_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_AddFtRoot_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_AddFtRoot";
+       offset = netdfs_dissect_element_dfs_AddFtRoot_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_dns_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_dfsname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_rootshare(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_comment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_dfs_config_dn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_unknown1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddFtRoot_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveFtRoot_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_dns_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveFtRoot_dns_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_dfsname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveFtRoot_dfsname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveFtRoot_rootshare, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_RemoveFtRoot_flags, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_RemoveFtRoot_unknown_, NDR_POINTER_UNIQUE, "Pointer to Unknown (dfs_UnknownStruct)",hf_netdfs_dfs_RemoveFtRoot_unknown);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_RemoveFtRoot_unknown__, NDR_POINTER_UNIQUE, "Pointer to Unknown (dfs_UnknownStruct)",hf_netdfs_dfs_RemoveFtRoot_unknown);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveFtRoot_unknown__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_UnknownStruct(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_RemoveFtRoot_unknown,0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_RemoveFtRoot( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 dns_servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 dfsname[*], */
+/* IDL: [in] [charset(UTF16)] uint16 rootshare[*], */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [unique(1)] [in] dfs_UnknownStruct **unknown */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_RemoveFtRoot_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_RemoveFtRoot";
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_RemoveFtRoot_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_RemoveFtRoot";
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_dns_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_dfsname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_rootshare(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveFtRoot_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRoot_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRoot_rootshare, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRoot_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRoot_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_AddStdRoot_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_AddStdRoot( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 rootshare[*], */
+/* IDL: [in] [charset(UTF16)] uint16 comment[*], */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_AddStdRoot_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_AddStdRoot";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_AddStdRoot_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_AddStdRoot";
+       offset = netdfs_dissect_element_dfs_AddStdRoot_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddStdRoot_rootshare(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddStdRoot_comment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddStdRoot_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveStdRoot_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveStdRoot_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveStdRoot_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_RemoveStdRoot_rootshare, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_RemoveStdRoot_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_RemoveStdRoot_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_RemoveStdRoot( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 rootshare[*], */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_RemoveStdRoot_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_RemoveStdRoot";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_RemoveStdRoot_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_RemoveStdRoot";
+       offset = netdfs_dissect_element_dfs_RemoveStdRoot_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveStdRoot_rootshare(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_RemoveStdRoot_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_ManagerInitialize_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_ManagerInitialize_servername_, NDR_POINTER_REF, "Pointer to Servername (uint16)",hf_netdfs_dfs_ManagerInitialize_servername);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_ManagerInitialize_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_ManagerInitialize_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_ManagerInitialize_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_ManagerInitialize_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_ManagerInitialize( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_ManagerInitialize_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_ManagerInitialize";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_ManagerInitialize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_ManagerInitialize";
+       offset = netdfs_dissect_element_dfs_ManagerInitialize_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_ManagerInitialize_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRootForced_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRootForced_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_rootshare, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRootForced_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_AddStdRootForced_store(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_AddStdRootForced_store, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_AddStdRootForced( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 rootshare[*], */
+/* IDL: [in] [charset(UTF16)] uint16 comment[*], */
+/* IDL: [in] [charset(UTF16)] uint16 store[*] */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_AddStdRootForced_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_AddStdRootForced";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_AddStdRootForced_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_AddStdRootForced";
+       offset = netdfs_dissect_element_dfs_AddStdRootForced_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddStdRootForced_rootshare(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddStdRootForced_comment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_AddStdRootForced_store(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetDcAddress_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_server_fullname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetDcAddress_server_fullname_, NDR_POINTER_REF, "Pointer to Server Fullname (uint16)",hf_netdfs_dfs_GetDcAddress_server_fullname);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_server_fullname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetDcAddress_server_fullname__, NDR_POINTER_UNIQUE, "Pointer to Server Fullname (uint16)",hf_netdfs_dfs_GetDcAddress_server_fullname);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_server_fullname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_GetDcAddress_server_fullname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_is_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetDcAddress_is_root_, NDR_POINTER_REF, "Pointer to Is Root (uint8)",hf_netdfs_dfs_GetDcAddress_is_root);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_is_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_GetDcAddress_is_root, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_GetDcAddress_ttl_, NDR_POINTER_REF, "Pointer to Ttl (uint32)",hf_netdfs_dfs_GetDcAddress_ttl);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_GetDcAddress_ttl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_GetDcAddress_ttl, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_GetDcAddress( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [out] [ref] [in] [charset(UTF16)] uint16 **server_fullname, */
+/* IDL: [out] [in] [ref] uint8 *is_root, */
+/* IDL: [out] [in] [ref] uint32 *ttl */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_GetDcAddress_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_GetDcAddress";
+       offset = netdfs_dissect_element_dfs_GetDcAddress_server_fullname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netdfs_dissect_element_dfs_GetDcAddress_is_root(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netdfs_dissect_element_dfs_GetDcAddress_ttl(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_GetDcAddress_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_GetDcAddress";
+       offset = netdfs_dissect_element_dfs_GetDcAddress_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_GetDcAddress_server_fullname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_GetDcAddress_is_root(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_GetDcAddress_ttl(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetDcAddress_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetDcAddress_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetDcAddress_server_fullname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_SetDcAddress_server_fullname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetDcAddress_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_SetDcAddress_flags, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_SetDcAddress_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_SetDcAddress_ttl, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_SetDcAddress( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 server_fullname[*], */
+/* IDL: [in] uint32 flags, */
+/* IDL: [in] uint32 ttl */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_SetDcAddress_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_SetDcAddress";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_SetDcAddress_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_SetDcAddress";
+       offset = netdfs_dissect_element_dfs_SetDcAddress_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetDcAddress_server_fullname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetDcAddress_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_SetDcAddress_ttl(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_FlushFtTable_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_FlushFtTable_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_FlushFtTable_rootshare(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_FlushFtTable_rootshare, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_FlushFtTable( */
+/* IDL: [in] [charset(UTF16)] uint16 servername[*], */
+/* IDL: [in] [charset(UTF16)] uint16 rootshare[*] */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_FlushFtTable_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_FlushFtTable";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_FlushFtTable_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_FlushFtTable";
+       offset = netdfs_dissect_element_dfs_FlushFtTable_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_FlushFtTable_rootshare(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR dfs_Add2( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Add2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Add2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Add2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Add2";
+       return offset;
+}
+
+/* IDL: WERROR dfs_Remove2( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_Remove2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_Remove2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_Remove2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_Remove2";
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_dfs_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netdfs_dfs_EnumEx_dfs_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumEx_level, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumEx_bufsize, 0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumEx_info_, NDR_POINTER_UNIQUE, "Pointer to Info (dfs_EnumStruct)",hf_netdfs_dfs_EnumEx_info);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netdfs_dissect_struct_dfs_EnumStruct(tvb,offset,pinfo,tree,drep,hf_netdfs_dfs_EnumEx_info,0);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_total(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netdfs_dissect_element_dfs_EnumEx_total_, NDR_POINTER_UNIQUE, "Pointer to Total (uint32)",hf_netdfs_dfs_EnumEx_total);
+
+       return offset;
+}
+
+static int
+netdfs_dissect_element_dfs_EnumEx_total_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_dfs_EnumEx_total, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR dfs_EnumEx( */
+/* IDL: [in] [charset(UTF16)] uint16 dfs_name[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 bufsize, */
+/* IDL: [out] [unique(1)] [in] dfs_EnumStruct *info, */
+/* IDL: [out] [unique(1)] [in] uint32 *total */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_EnumEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_EnumEx";
+       offset = netdfs_dissect_element_dfs_EnumEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netdfs_dissect_element_dfs_EnumEx_total(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_EnumEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_EnumEx";
+       offset = netdfs_dissect_element_dfs_EnumEx_dfs_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_EnumEx_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_EnumEx_bufsize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_EnumEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netdfs_dissect_element_dfs_EnumEx_total(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR dfs_SetInfo2( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netdfs_dissect_dfs_SetInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="dfs_SetInfo2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netdfs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netdfs_dissect_dfs_SetInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_SetInfo2";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector netdfs_dissectors[] = {
+       { 0, "dfs_GetManagerVersion",
+          netdfs_dissect_dfs_GetManagerVersion_request, netdfs_dissect_dfs_GetManagerVersion_response},
+       { 1, "dfs_Add",
+          netdfs_dissect_dfs_Add_request, netdfs_dissect_dfs_Add_response},
+       { 2, "dfs_Remove",
+          netdfs_dissect_dfs_Remove_request, netdfs_dissect_dfs_Remove_response},
+       { 3, "dfs_SetInfo",
+          netdfs_dissect_dfs_SetInfo_request, netdfs_dissect_dfs_SetInfo_response},
+       { 4, "dfs_GetInfo",
+          netdfs_dissect_dfs_GetInfo_request, netdfs_dissect_dfs_GetInfo_response},
+       { 5, "dfs_Enum",
+          netdfs_dissect_dfs_Enum_request, netdfs_dissect_dfs_Enum_response},
+       { 6, "dfs_Rename",
+          netdfs_dissect_dfs_Rename_request, netdfs_dissect_dfs_Rename_response},
+       { 7, "dfs_Move",
+          netdfs_dissect_dfs_Move_request, netdfs_dissect_dfs_Move_response},
+       { 8, "dfs_ManagerGetConfigInfo",
+          netdfs_dissect_dfs_ManagerGetConfigInfo_request, netdfs_dissect_dfs_ManagerGetConfigInfo_response},
+       { 9, "dfs_ManagerSendSiteInfo",
+          netdfs_dissect_dfs_ManagerSendSiteInfo_request, netdfs_dissect_dfs_ManagerSendSiteInfo_response},
+       { 10, "dfs_AddFtRoot",
+          netdfs_dissect_dfs_AddFtRoot_request, netdfs_dissect_dfs_AddFtRoot_response},
+       { 11, "dfs_RemoveFtRoot",
+          netdfs_dissect_dfs_RemoveFtRoot_request, netdfs_dissect_dfs_RemoveFtRoot_response},
+       { 12, "dfs_AddStdRoot",
+          netdfs_dissect_dfs_AddStdRoot_request, netdfs_dissect_dfs_AddStdRoot_response},
+       { 13, "dfs_RemoveStdRoot",
+          netdfs_dissect_dfs_RemoveStdRoot_request, netdfs_dissect_dfs_RemoveStdRoot_response},
+       { 14, "dfs_ManagerInitialize",
+          netdfs_dissect_dfs_ManagerInitialize_request, netdfs_dissect_dfs_ManagerInitialize_response},
+       { 15, "dfs_AddStdRootForced",
+          netdfs_dissect_dfs_AddStdRootForced_request, netdfs_dissect_dfs_AddStdRootForced_response},
+       { 16, "dfs_GetDcAddress",
+          netdfs_dissect_dfs_GetDcAddress_request, netdfs_dissect_dfs_GetDcAddress_response},
+       { 17, "dfs_SetDcAddress",
+          netdfs_dissect_dfs_SetDcAddress_request, netdfs_dissect_dfs_SetDcAddress_response},
+       { 18, "dfs_FlushFtTable",
+          netdfs_dissect_dfs_FlushFtTable_request, netdfs_dissect_dfs_FlushFtTable_response},
+       { 19, "dfs_Add2",
+          netdfs_dissect_dfs_Add2_request, netdfs_dissect_dfs_Add2_response},
+       { 20, "dfs_Remove2",
+          netdfs_dissect_dfs_Remove2_request, netdfs_dissect_dfs_Remove2_response},
+       { 21, "dfs_EnumEx",
+          netdfs_dissect_dfs_EnumEx_request, netdfs_dissect_dfs_EnumEx_response},
+       { 22, "dfs_SetInfo2",
+          netdfs_dissect_dfs_SetInfo2_request, netdfs_dissect_dfs_SetInfo2_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_netdfs(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_netdfs_dfs_Add_share,
+         { "Share", "netdfs.dfs_Add.share", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_FlushFtTable_rootshare,
+         { "Rootshare", "netdfs.dfs_FlushFtTable.rootshare", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_dfsname,
+         { "Dfsname", "netdfs.dfs_AddFtRoot.dfsname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info105_comment,
+         { "Comment", "netdfs.dfs_Info105.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_guid,
+         { "Guid", "netdfs.dfs_Info5.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_path,
+         { "Path", "netdfs.dfs_Info5.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Add_path,
+         { "Path", "netdfs.dfs_Add.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageInfo_share,
+         { "Share", "netdfs.dfs_StorageInfo.share", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetInfo_dfs_entry_path,
+         { "Dfs Entry Path", "netdfs.dfs_GetInfo.dfs_entry_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_stores,
+         { "Stores", "netdfs.dfs_Info6.stores", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Remove_dfs_entry_path,
+         { "Dfs Entry Path", "netdfs.dfs_Remove.dfs_entry_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info105_state,
+         { "State", "netdfs.dfs_Info105.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveFtRoot_dfsname,
+         { "Dfsname", "netdfs.dfs_RemoveFtRoot.dfsname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_UnknownStruct_unknown2,
+         { "Unknown2", "netdfs.dfs_UnknownStruct.unknown2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info7,
+         { "Info7", "netdfs.dfs_Info.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray3_s,
+         { "S", "netdfs.dfs_EnumArray3.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info4,
+         { "Info4", "netdfs.dfs_Info.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info106_priority,
+         { "Priority", "netdfs.dfs_Info106.priority", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetDcAddress_ttl,
+         { "Ttl", "netdfs.dfs_SetDcAddress.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_timeout,
+         { "Timeout", "netdfs.dfs_Info5.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumEx_info,
+         { "Info", "netdfs.dfs_EnumEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_entry_path,
+         { "Entry Path", "netdfs.dfs_Info6.entry_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info6,
+         { "Info6", "netdfs.dfs_Info.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumStruct_level,
+         { "Level", "netdfs.dfs_EnumStruct.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_state,
+         { "State", "netdfs.dfs_Info6.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageInfo_server,
+         { "Server", "netdfs.dfs_StorageInfo.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetInfo_dfs_entry_path,
+         { "Dfs Entry Path", "netdfs.dfs_SetInfo.dfs_entry_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_timeout,
+         { "Timeout", "netdfs.dfs_Info4.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetInfo_sharename,
+         { "Sharename", "netdfs.dfs_SetInfo.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info1,
+         { "Info1", "netdfs.dfs_Info.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Add_comment,
+         { "Comment", "netdfs.dfs_Add.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info105_property_flags,
+         { "Property Flags", "netdfs.dfs_Info105.property_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumEx_bufsize,
+         { "Bufsize", "netdfs.dfs_EnumEx.bufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRootForced_store,
+         { "Store", "netdfs.dfs_AddStdRootForced.store", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info2_num_stores,
+         { "Num Stores", "netdfs.dfs_Info2.num_stores", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE,
+         { "Dfs Volume State Standalone", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_STANDALONE", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_STANDALONE_tfs), ( DFS_VOLUME_FLAVOR_STANDALONE ), NULL, HFILL }},
+       { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE,
+         { "Dfs Volume State Offline", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_OFFLINE", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_OFFLINE_tfs), ( 0x3 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info4,
+         { "Info4", "netdfs.dfs_EnumInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED,
+         { "Dfs Property Flag Cluster Enabled", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_CLUSTER_ENABLED", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_CLUSTER_ENABLED_tfs), ( 0x10 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB,
+         { "Dfs Volume State Ad Blob", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_AD_BLOB", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_AD_BLOB_tfs), ( DFS_VOLUME_FLAVOR_AD_BLOB ), NULL, HFILL }},
+       { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT,
+         { "Dfs Volume State Inconsistent", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_INCONSISTENT", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_INCONSISTENT_tfs), ( 0x2 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_servername,
+         { "Servername", "netdfs.dfs_AddFtRoot.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info101,
+         { "Info101", "netdfs.dfs_Info.info101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_unknown2,
+         { "Unknown2", "netdfs.dfs_AddFtRoot.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetDcAddress_is_root,
+         { "Is Root", "netdfs.dfs_GetDcAddress.is_root", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetInfo_sharename,
+         { "Sharename", "netdfs.dfs_GetInfo.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info200_dom_root,
+         { "Dom Root", "netdfs.dfs_Info200.dom_root", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_num_stores,
+         { "Num Stores", "netdfs.dfs_Info6.num_stores", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Add_flags,
+         { "Flags", "netdfs.dfs_Add.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray5_count,
+         { "Count", "netdfs.dfs_EnumArray5.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING,
+         { "Dfs Property Flag Site Costing", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_SITE_COSTING", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_SITE_COSTING_tfs), ( 0x04 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info103,
+         { "Info103", "netdfs.dfs_Info.info103", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info106,
+         { "Info106", "netdfs.dfs_Info.info106", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ACTIVE,
+         { "Dfs Storage State Active", "netdfs.dfs_StorageState.DFS_STORAGE_STATE_ACTIVE", FT_BOOLEAN, 32, TFS(&dfs_StorageState_DFS_STORAGE_STATE_ACTIVE_tfs), ( 4 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_Info7_generation_guid,
+         { "Generation Guid", "netdfs.dfs_Info7.generation_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_comment,
+         { "Comment", "netdfs.dfs_Info5.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_flags,
+         { "Flags", "netdfs.dfs_Info5.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray6_s,
+         { "S", "netdfs.dfs_EnumArray6.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Remove_sharename,
+         { "Sharename", "netdfs.dfs_Remove.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_pktsize,
+         { "Pktsize", "netdfs.dfs_Info5.pktsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Target_Priority_reserved,
+         { "Reserved", "netdfs.dfs_Target_Priority.reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_pktsize,
+         { "Pktsize", "netdfs.dfs_Info6.pktsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetDcAddress_ttl,
+         { "Ttl", "netdfs.dfs_GetDcAddress.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveStdRoot_flags,
+         { "Flags", "netdfs.dfs_RemoveStdRoot.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveFtRoot_rootshare,
+         { "Rootshare", "netdfs.dfs_RemoveFtRoot.rootshare", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray2_count,
+         { "Count", "netdfs.dfs_EnumArray2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info105,
+         { "Info105", "netdfs.dfs_Info.info105", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRootForced_rootshare,
+         { "Rootshare", "netdfs.dfs_AddStdRootForced.rootshare", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetInfo_info,
+         { "Info", "netdfs.dfs_GetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info3_path,
+         { "Path", "netdfs.dfs_Info3.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumEx_dfs_name,
+         { "Dfs Name", "netdfs.dfs_EnumEx.dfs_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_state,
+         { "State", "netdfs.dfs_Info4.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray200_s,
+         { "S", "netdfs.dfs_EnumArray200.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info0,
+         { "Info0", "netdfs.dfs_Info.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_flags,
+         { "Flags", "netdfs.dfs_AddFtRoot.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray300_s,
+         { "S", "netdfs.dfs_EnumArray300.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_path,
+         { "Path", "netdfs.dfs_Info4.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray5_s,
+         { "S", "netdfs.dfs_EnumArray5.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_ONLINE,
+         { "Dfs Storage State Online", "netdfs.dfs_StorageState.DFS_STORAGE_STATE_ONLINE", FT_BOOLEAN, 32, TFS(&dfs_StorageState_DFS_STORAGE_STATE_ONLINE_tfs), ( 2 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveStdRoot_servername,
+         { "Servername", "netdfs.dfs_RemoveStdRoot.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Add_server,
+         { "Server", "netdfs.dfs_Add.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info1,
+         { "Info1", "netdfs.dfs_EnumInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info300_dom_root,
+         { "Dom Root", "netdfs.dfs_Info300.dom_root", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumEx_level,
+         { "Level", "netdfs.dfs_EnumEx.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray200_count,
+         { "Count", "netdfs.dfs_EnumArray200.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_ONLINE,
+         { "Dfs Volume State Online", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_ONLINE", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_ONLINE_tfs), ( 0x4 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_Info106_state,
+         { "State", "netdfs.dfs_Info106.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetManagerVersion_version,
+         { "Version", "netdfs.dfs_GetManagerVersion.version", FT_UINT32, BASE_DEC, VALS(netdfs_dfs_ManagerVersion_vals), 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetInfo_level,
+         { "Level", "netdfs.dfs_SetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Enum_total,
+         { "Total", "netdfs.dfs_Enum.total", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info6,
+         { "Info6", "netdfs.dfs_EnumInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetDcAddress_flags,
+         { "Flags", "netdfs.dfs_SetDcAddress.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_dfs_config_dn,
+         { "Dfs Config Dn", "netdfs.dfs_AddFtRoot.dfs_config_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveFtRoot_unknown,
+         { "Unknown", "netdfs.dfs_RemoveFtRoot.unknown", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info1_path,
+         { "Path", "netdfs.dfs_Info1.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetInfo_servername,
+         { "Servername", "netdfs.dfs_SetInfo.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_FlushFtTable_servername,
+         { "Servername", "netdfs.dfs_FlushFtTable.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray6_count,
+         { "Count", "netdfs.dfs_EnumArray6.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info103_flags,
+         { "Flags", "netdfs.dfs_Info103.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY,
+         { "Dfs Property Flag Root Scalability", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_ROOT_SCALABILITY", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_ROOT_SCALABILITY_tfs), ( 0x02 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info3,
+         { "Info3", "netdfs.dfs_EnumInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetInfo_servername,
+         { "Servername", "netdfs.dfs_GetInfo.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_guid,
+         { "Guid", "netdfs.dfs_Info4.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray4_s,
+         { "S", "netdfs.dfs_EnumArray4.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Remove_servername,
+         { "Servername", "netdfs.dfs_Remove.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageInfo2_info,
+         { "Info", "netdfs.dfs_StorageInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_comment,
+         { "Comment", "netdfs.dfs_Info4.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_rootshare,
+         { "Rootshare", "netdfs.dfs_AddFtRoot.rootshare", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info3_state,
+         { "State", "netdfs.dfs_Info3.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray1_s,
+         { "S", "netdfs.dfs_EnumArray1.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info2,
+         { "Info2", "netdfs.dfs_Info.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetDcAddress_server_fullname,
+         { "Server Fullname", "netdfs.dfs_SetDcAddress.server_fullname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Enum_info,
+         { "Info", "netdfs.dfs_Enum.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumStruct_e,
+         { "E", "netdfs.dfs_EnumStruct.e", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info5,
+         { "Info5", "netdfs.dfs_Info.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray300_count,
+         { "Count", "netdfs.dfs_EnumArray300.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_ManagerInitialize_servername,
+         { "Servername", "netdfs.dfs_ManagerInitialize.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveStdRoot_rootshare,
+         { "Rootshare", "netdfs.dfs_RemoveStdRoot.rootshare", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info100,
+         { "Info100", "netdfs.dfs_Info.info100", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info100_comment,
+         { "Comment", "netdfs.dfs_Info100.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_unknown1,
+         { "Unknown1", "netdfs.dfs_AddFtRoot.unknown1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_opnum,
+         { "Operation", "netdfs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info300,
+         { "Info300", "netdfs.dfs_EnumInfo.info300", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_flags,
+         { "Flags", "netdfs.dfs_Info6.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info102_timeout,
+         { "Timeout", "netdfs.dfs_Info102.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info200,
+         { "Info200", "netdfs.dfs_EnumInfo.info200", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info3_num_stores,
+         { "Num Stores", "netdfs.dfs_Info3.num_stores", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageInfo_state,
+         { "State", "netdfs.dfs_StorageInfo.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray1_count,
+         { "Count", "netdfs.dfs_EnumArray1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetDcAddress_server_fullname,
+         { "Server Fullname", "netdfs.dfs_GetDcAddress.server_fullname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info3,
+         { "Info3", "netdfs.dfs_Info.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRootForced_comment,
+         { "Comment", "netdfs.dfs_AddStdRootForced.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info104_priority,
+         { "Priority", "netdfs.dfs_Info104.priority", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRoot_comment,
+         { "Comment", "netdfs.dfs_AddStdRoot.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info3_comment,
+         { "Comment", "netdfs.dfs_Info3.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_UnknownStruct_unknown1,
+         { "Unknown1", "netdfs.dfs_UnknownStruct.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_timeout,
+         { "Timeout", "netdfs.dfs_Info6.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info101_state,
+         { "State", "netdfs.dfs_Info101.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRootForced_servername,
+         { "Servername", "netdfs.dfs_AddStdRootForced.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info2_path,
+         { "Path", "netdfs.dfs_Info2.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info105_timeout,
+         { "Timeout", "netdfs.dfs_Info105.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info3_stores,
+         { "Stores", "netdfs.dfs_Info3.stores", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_dns_servername,
+         { "Dns Servername", "netdfs.dfs_AddFtRoot.dns_servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Enum_bufsize,
+         { "Bufsize", "netdfs.dfs_Enum.bufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetInfo_level,
+         { "Level", "netdfs.dfs_GetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_werror,
+         { "Windows Error", "netdfs.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddFtRoot_comment,
+         { "Comment", "netdfs.dfs_AddFtRoot.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info102,
+         { "Info102", "netdfs.dfs_Info.info102", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK,
+         { "Dfs Property Flag Target Failback", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_TARGET_FAILBACK", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_TARGET_FAILBACK_tfs), ( 0x08 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray3_count,
+         { "Count", "netdfs.dfs_EnumArray3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_ManagerInitialize_flags,
+         { "Flags", "netdfs.dfs_ManagerInitialize.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetInfo_info,
+         { "Info", "netdfs.dfs_SetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_stores,
+         { "Stores", "netdfs.dfs_Info4.stores", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info_info104,
+         { "Info104", "netdfs.dfs_Info.info104", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveFtRoot_dns_servername,
+         { "Dns Servername", "netdfs.dfs_RemoveFtRoot.dns_servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageInfo2_target_priority,
+         { "Target Priority", "netdfs.dfs_StorageInfo2.target_priority", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Target_Priority_target_priority_rank,
+         { "Target Priority Rank", "netdfs.dfs_Target_Priority.target_priority_rank", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_num_stores,
+         { "Num Stores", "netdfs.dfs_Info5.num_stores", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRoot_flags,
+         { "Flags", "netdfs.dfs_AddStdRoot.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_VolumeState_DFS_VOLUME_STATE_OK,
+         { "Dfs Volume State Ok", "netdfs.dfs_VolumeState.DFS_VOLUME_STATE_OK", FT_BOOLEAN, 32, TFS(&dfs_VolumeState_DFS_VOLUME_STATE_OK_tfs), ( 0x1 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_StorageState_DFS_STORAGE_STATE_OFFLINE,
+         { "Dfs Storage State Offline", "netdfs.dfs_StorageState.DFS_STORAGE_STATE_OFFLINE", FT_BOOLEAN, 32, TFS(&dfs_StorageState_DFS_STORAGE_STATE_OFFLINE_tfs), ( 1 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray2_s,
+         { "S", "netdfs.dfs_EnumArray2.s", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info5,
+         { "Info5", "netdfs.dfs_EnumInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumEx_total,
+         { "Total", "netdfs.dfs_EnumEx.total", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRoot_servername,
+         { "Servername", "netdfs.dfs_AddStdRoot.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumInfo_info2,
+         { "Info2", "netdfs.dfs_EnumInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS,
+         { "Dfs Property Flag Insite Referrals", "netdfs.dfs_PropertyFlags.DFS_PROPERTY_FLAG_INSITE_REFERRALS", FT_BOOLEAN, 32, TFS(&dfs_PropertyFlags_DFS_PROPERTY_FLAG_INSITE_REFERRALS_tfs), ( 0x01 ), NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_guid,
+         { "Guid", "netdfs.dfs_Info6.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info2_comment,
+         { "Comment", "netdfs.dfs_Info2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info2_state,
+         { "State", "netdfs.dfs_Info2.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info300_flavor,
+         { "Flavor", "netdfs.dfs_Info300.flavor", FT_UINT1632, BASE_DEC, VALS(netdfs_dfs_VolumeFlavor_vals), 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveFtRoot_flags,
+         { "Flags", "netdfs.dfs_RemoveFtRoot.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_EnumArray4_count,
+         { "Count", "netdfs.dfs_EnumArray4.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info6_comment,
+         { "Comment", "netdfs.dfs_Info6.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_SetDcAddress_servername,
+         { "Servername", "netdfs.dfs_SetDcAddress.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Target_Priority_target_priority_class,
+         { "Target Priority Class", "netdfs.dfs_Target_Priority.target_priority_class", FT_UINT32, BASE_DEC, VALS(netdfs_dfs_Target_PriorityClass_vals), 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Enum_level,
+         { "Level", "netdfs.dfs_Enum.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info5_state,
+         { "State", "netdfs.dfs_Info5.state", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_AddStdRoot_rootshare,
+         { "Rootshare", "netdfs.dfs_AddStdRoot.rootshare", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info4_num_stores,
+         { "Num Stores", "netdfs.dfs_Info4.num_stores", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_RemoveFtRoot_servername,
+         { "Servername", "netdfs.dfs_RemoveFtRoot.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_GetDcAddress_servername,
+         { "Servername", "netdfs.dfs_GetDcAddress.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netdfs_dfs_Info105_property_flag_mask,
+         { "Property Flag Mask", "netdfs.dfs_Info105.property_flag_mask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_netdfs,
+               &ett_netdfs_dfs_Info0,
+               &ett_netdfs_dfs_Info1,
+               &ett_netdfs_dfs_VolumeState,
+               &ett_netdfs_dfs_Info2,
+               &ett_netdfs_dfs_StorageState,
+               &ett_netdfs_dfs_StorageInfo,
+               &ett_netdfs_dfs_Info3,
+               &ett_netdfs_dfs_Info4,
+               &ett_netdfs_dfs_PropertyFlags,
+               &ett_netdfs_dfs_Info5,
+               &ett_netdfs_dfs_Target_Priority,
+               &ett_netdfs_dfs_StorageInfo2,
+               &ett_netdfs_dfs_Info6,
+               &ett_netdfs_dfs_Info7,
+               &ett_netdfs_dfs_Info100,
+               &ett_netdfs_dfs_Info101,
+               &ett_netdfs_dfs_Info102,
+               &ett_netdfs_dfs_Info103,
+               &ett_netdfs_dfs_Info104,
+               &ett_netdfs_dfs_Info105,
+               &ett_netdfs_dfs_Info106,
+               &ett_netdfs_dfs_Info200,
+               &ett_netdfs_dfs_Info300,
+               &ett_netdfs_dfs_Info,
+               &ett_netdfs_dfs_EnumArray1,
+               &ett_netdfs_dfs_EnumArray2,
+               &ett_netdfs_dfs_EnumArray3,
+               &ett_netdfs_dfs_EnumArray4,
+               &ett_netdfs_dfs_EnumArray5,
+               &ett_netdfs_dfs_EnumArray6,
+               &ett_netdfs_dfs_EnumArray200,
+               &ett_netdfs_dfs_EnumArray300,
+               &ett_netdfs_dfs_EnumInfo,
+               &ett_netdfs_dfs_EnumStruct,
+               &ett_netdfs_dfs_UnknownStruct,
+       };
+
+       proto_dcerpc_netdfs = proto_register_protocol("Settings for Microsoft Distributed File System", "NETDFS", "netdfs");
+       proto_register_field_array(proto_dcerpc_netdfs, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_netdfs(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_netdfs, ett_dcerpc_netdfs,
+               &uuid_dcerpc_netdfs, ver_dcerpc_netdfs,
+               netdfs_dissectors, hf_netdfs_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dfs.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dfs.h
new file mode 100644 (file)
index 0000000..1332ef8
--- /dev/null
@@ -0,0 +1,74 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_NETDFS_H
+#define __PACKET_DCERPC_NETDFS_H
+
+#define DFS_STORAGE_STATES     ( 0xf )
+
+#define DFS_MANAGER_VERSION_NT4 (1)
+#define DFS_MANAGER_VERSION_W2K (2)
+#define DFS_MANAGER_VERSION_W2K3 (4)
+#define DFS_MANAGER_VERSION_W2K8 (6)
+extern const value_string netdfs_dfs_ManagerVersion_vals[];
+int netdfs_dissect_enum_dfs_ManagerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netdfs_dissect_struct_dfs_Info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_bitmap_dfs_VolumeState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_bitmap_dfs_StorageState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_StorageInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_bitmap_dfs_PropertyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DFS_INVALID_PRIORITY_CLASS (-1)
+#define DFS_SITE_COST_NORMAL_PRIORITY_CLASS (0)
+#define DFS_GLOBAL_HIGH_PRIORITY_CLASS (1)
+#define DFS_SITE_COST_HIGH_PRIORITY_CLASS (2)
+#define DFS_SITE_COST_LOW_PRIORITY_CLASS (3)
+#define DFS_GLOBAL_LOW_PRIORITY_CLASS (4)
+extern const value_string netdfs_dfs_Target_PriorityClass_vals[];
+int netdfs_dissect_enum_dfs_Target_PriorityClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netdfs_dissect_struct_dfs_Target_Priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_StorageInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info103(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info104(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info105(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info106(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_Info200(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DFS_VOLUME_FLAVOR_STANDALONE (0x100)
+#define DFS_VOLUME_FLAVOR_AD_BLOB (0x200)
+extern const value_string netdfs_dfs_VolumeFlavor_vals[];
+int netdfs_dissect_enum_dfs_VolumeFlavor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netdfs_dissect_struct_dfs_Info300(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray200(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumArray300(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_EnumStruct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netdfs_dissect_struct_dfs_UnknownStruct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NETDFS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.c
new file mode 100644 (file)
index 0000000..5be2b57
--- /dev/null
@@ -0,0 +1,1353 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfsblobs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfsblobs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dfsblobs.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_dfsblobs = -1;
+static gint ett_dfsblobs_DFS_HEADER_FLAG = -1;
+static gint ett_dfsblobs_dfs_referral_v1 = -1;
+static gint ett_dfsblobs_dfs_referral_v2 = -1;
+static gint ett_dfsblobs_dfs_normal_referral = -1;
+static gint ett_dfsblobs_dfs_domain_referral = -1;
+static gint ett_dfsblobs_dfs_referral = -1;
+static gint ett_dfsblobs_dfs_padding = -1;
+static gint ett_dfsblobs_dfs_referral_v3 = -1;
+static gint ett_dfsblobs_dfs_referral_version = -1;
+static gint ett_dfsblobs_dfs_referral_type = -1;
+static gint ett_dfsblobs_dfs_referral_resp = -1;
+static gint ett_dfsblobs_dfs_GetDFSReferral_in = -1;
+
+
+/* Header field declarations */
+static gint hf_dfsblobs_dfs_referral_version_v4 = -1;
+static gint hf_dfsblobs_dfs_domain_referral_special_name = -1;
+static gint hf_dfsblobs_dfs_referral_v3_ttl = -1;
+static gint hf_dfsblobs_dfs_referral_v2_server_type = -1;
+static gint hf_dfsblobs_dfs_referral_v1_server_type = -1;
+static gint hf_dfsblobs_dfs_normal_referral_netw_address = -1;
+static gint hf_dfsblobs_dfs_referral_v2_proximity = -1;
+static gint hf_dfsblobs_dfs_referral_v2_size = -1;
+static gint hf_dfsblobs_dfs_referral_v3_server_type = -1;
+static gint hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_REFERAL_SVR = -1;
+static gint hf_dfsblobs_dfs_referral_resp_path_consumed = -1;
+static gint hf_dfsblobs_dfs_referral_version_v3 = -1;
+static gint hf_dfsblobs_dfs_referral_v3_referrals = -1;
+static gint hf_dfsblobs_dfs_referral_v1_entry_flags = -1;
+static gint hf_dfsblobs_dfs_referral_resp_referral_entries = -1;
+static gint hf_dfsblobs_dfs_referral_type_referral = -1;
+static gint hf_dfsblobs_dfs_referral_r1 = -1;
+static gint hf_dfsblobs_dfs_referral_version_v1 = -1;
+static gint hf_dfsblobs_dfs_GetDFSReferral_req = -1;
+static gint hf_dfsblobs_dfs_referral_v1_share_name = -1;
+static gint hf_dfsblobs_dfs_referral_v2_netw_address = -1;
+static gint hf_dfsblobs_dfs_domain_referral_expanded_names_ = -1;
+static gint hf_dfsblobs_dfs_referral_type_version = -1;
+static gint hf_dfsblobs_dfs_domain_referral_nb_expanded_names = -1;
+static gint hf_dfsblobs_opnum = -1;
+static gint hf_dfsblobs_dfs_GetDFSReferral_in_max_referral_level = -1;
+static gint hf_dfsblobs_dfs_referral_v2_DFS_alt_path = -1;
+static gint hf_dfsblobs_dfs_domain_referral_expanded_names = -1;
+static gint hf_dfsblobs_dfs_referral_r2 = -1;
+static gint hf_dfsblobs_dfs_referral_v3_service_site_guid = -1;
+static gint hf_dfsblobs_dfs_GetDFSReferral_in_servername = -1;
+static gint hf_dfsblobs_dfs_referral_resp_nb_referrals = -1;
+static gint hf_dfsblobs_dfs_normal_referral_DFS_alt_path = -1;
+static gint hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_STORAGE_SVR = -1;
+static gint hf_dfsblobs_dfs_referral_v1_size = -1;
+static gint hf_dfsblobs_dfs_padding_value = -1;
+static gint hf_dfsblobs_dfs_referral_resp_header_flags = -1;
+static gint hf_dfsblobs_dfs_normal_referral_DFS_path = -1;
+static gint hf_dfsblobs_dfs_referral_v3_entry_flags = -1;
+static gint hf_dfsblobs_dfs_referral_v3_size = -1;
+static gint hf_dfsblobs_dfs_GetDFSReferral_resp = -1;
+static gint hf_dfsblobs_dfs_referral_v2_entry_flags = -1;
+static gint hf_dfsblobs_dfs_referral_version_v2 = -1;
+static gint hf_dfsblobs_dfs_referral_v2_ttl = -1;
+static gint hf_dfsblobs_dfs_referral_v2_DFS_path = -1;
+static gint hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_TARGET_BCK = -1;
+
+static gint proto_dcerpc_dfsblobs = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_dfsblobs = {
+       0x12345778, 0x1234, 0xabcd,
+       { 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x", 0x }
+};
+static guint16 ver_dcerpc_dfsblobs = 0;
+
+static const true_false_string DFS_HEADER_FLAG_DFS_HEADER_FLAG_REFERAL_SVR_tfs = {
+   "DFS_HEADER_FLAG_REFERAL_SVR is SET",
+   "DFS_HEADER_FLAG_REFERAL_SVR is NOT SET",
+};
+static const true_false_string DFS_HEADER_FLAG_DFS_HEADER_FLAG_STORAGE_SVR_tfs = {
+   "DFS_HEADER_FLAG_STORAGE_SVR is SET",
+   "DFS_HEADER_FLAG_STORAGE_SVR is NOT SET",
+};
+static const true_false_string DFS_HEADER_FLAG_DFS_HEADER_FLAG_TARGET_BCK_tfs = {
+   "DFS_HEADER_FLAG_TARGET_BCK is SET",
+   "DFS_HEADER_FLAG_TARGET_BCK is NOT SET",
+};
+const value_string dfsblobs_DFS_SERVER_TYPE_vals[] = {
+       { DFS_SERVER_NON_ROOT, "DFS_SERVER_NON_ROOT" },
+       { DFS_SERVER_ROOT, "DFS_SERVER_ROOT" },
+{ 0, NULL }
+};
+const value_string dfsblobs_DFS_FLAGS_REFERRAL_vals[] = {
+       { DFS_FLAG_REFERRAL_DOMAIN_RESP, "DFS_FLAG_REFERRAL_DOMAIN_RESP" },
+       { DFS_FLAG_REFERRAL_FIRST_TARGET_SET, "DFS_FLAG_REFERRAL_FIRST_TARGET_SET" },
+{ 0, NULL }
+};
+static int dfsblobs_dissect_element_dfs_referral_v1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v1_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v1_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v1_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v1_share_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_proximity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_DFS_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_DFS_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_DFS_alt_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_DFS_alt_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_netw_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v2_netw_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_normal_referral_DFS_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_normal_referral_DFS_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_normal_referral_DFS_alt_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_normal_referral_DFS_alt_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_normal_referral_netw_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_normal_referral_netw_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_domain_referral_special_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_domain_referral_special_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_domain_referral_nb_expanded_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_domain_referral_expanded_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_domain_referral_expanded_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_domain_referral_expanded_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_r1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_r2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_padding_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_padding_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *size);
+static int dfsblobs_dissect_element_dfs_referral_v3_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v3_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *entry_flags);
+static int dfsblobs_dissect_element_dfs_referral_v3_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_v3_referrals(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int dfsblobs_dissect_element_dfs_referral_v3_service_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int dfsblobs_dissect_element_dfs_referral_version_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_version_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_version_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_version_v4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_type_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int dfsblobs_dissect_element_dfs_referral_type_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int dfsblobs_dissect_element_dfs_referral_resp_path_consumed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_resp_nb_referrals(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_resp_header_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_resp_referral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_referral_resp_referral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_GetDFSReferral_in_max_referral_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_GetDFSReferral_in_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_GetDFSReferral_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_GetDFSReferral_resp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dfsblobs_dissect_element_dfs_GetDFSReferral_resp_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL:        DFS_HEADER_FLAG_REFERAL_SVR =  0x00000001 , */
+/* IDL:        DFS_HEADER_FLAG_STORAGE_SVR =  0x00000002 , */
+/* IDL:        DFS_HEADER_FLAG_TARGET_BCK =  0x00000004 , */
+/* IDL: } */
+
+int
+dfsblobs_dissect_bitmap_DFS_HEADER_FLAG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dfsblobs_DFS_HEADER_FLAG);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_REFERAL_SVR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DFS_HEADER_FLAG_REFERAL_SVR");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_STORAGE_SVR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DFS_HEADER_FLAG_STORAGE_SVR");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_TARGET_BCK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DFS_HEADER_FLAG_TARGET_BCK");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DFS_SERVER_NON_ROOT=0x0000, */
+/* IDL:        DFS_SERVER_ROOT=0x0001, */
+/* IDL: } */
+
+int
+dfsblobs_dissect_enum_DFS_SERVER_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DFS_FLAG_REFERRAL_DOMAIN_RESP=0x0002, */
+/* IDL:        DFS_FLAG_REFERRAL_FIRST_TARGET_SET=0x0004, */
+/* IDL: } */
+
+int
+dfsblobs_dissect_enum_DFS_FLAGS_REFERRAL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 size; */
+/* IDL:        uint16 server_type; */
+/* IDL:        uint16 entry_flags; */
+/* IDL:        [unique(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *share_name; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_v1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v1_size, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v1_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v1_server_type, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v1_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v1_entry_flags, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v1_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_referral_v1_share_name_, NDR_POINTER_UNIQUE, "Pointer to Share Name (string)",hf_dfsblobs_dfs_referral_v1_share_name);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v1_share_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v1_share_name , 0);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_referral_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral_v1);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_referral_v1_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v1_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v1_entry_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v1_share_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 size; */
+/* IDL:        DFS_SERVER_TYPE server_type; */
+/* IDL:        DFS_FLAGS_REFERRAL entry_flags; */
+/* IDL:        uint32 proximity; */
+/* IDL:        uint32 ttl; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *DFS_path; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *DFS_alt_path; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *netw_address; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_size, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_enum_DFS_SERVER_TYPE(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_server_type, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_enum_DFS_FLAGS_REFERRAL(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_entry_flags, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_proximity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_proximity, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_ttl, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_DFS_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_referral_v2_DFS_path_, , "Pointer to Dfs Path (string)",hf_dfsblobs_dfs_referral_v2_DFS_path);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_DFS_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_DFS_path , 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_DFS_alt_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_referral_v2_DFS_alt_path_, , "Pointer to Dfs Alt Path (string)",hf_dfsblobs_dfs_referral_v2_DFS_alt_path);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_DFS_alt_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_DFS_alt_path , 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_netw_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_referral_v2_netw_address_, , "Pointer to Netw Address (string)",hf_dfsblobs_dfs_referral_v2_netw_address);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v2_netw_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v2_netw_address , 0);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_referral_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral_v2);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_referral_v2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_entry_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_proximity(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_ttl(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_DFS_path(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_DFS_alt_path(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v2_netw_address(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *DFS_path; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *DFS_alt_path; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *netw_address; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_normal_referral_DFS_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_normal_referral_DFS_path_, , "Pointer to Dfs Path (string)",hf_dfsblobs_dfs_normal_referral_DFS_path);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_normal_referral_DFS_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_normal_referral_DFS_path , 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_normal_referral_DFS_alt_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_normal_referral_DFS_alt_path_, , "Pointer to Dfs Alt Path (string)",hf_dfsblobs_dfs_normal_referral_DFS_alt_path);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_normal_referral_DFS_alt_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_normal_referral_DFS_alt_path , 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_normal_referral_netw_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_normal_referral_netw_address_, , "Pointer to Netw Address (string)",hf_dfsblobs_dfs_normal_referral_netw_address);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_normal_referral_netw_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_normal_referral_netw_address , 0);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_normal_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_normal_referral);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_normal_referral_DFS_path(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_normal_referral_DFS_alt_path(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_normal_referral_netw_address(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [relative_short(1)] string *special_name; */
+/* IDL:        uint16 nb_expanded_names; */
+/* IDL:        [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM)] [relative_short(1)] string_array *expanded_names; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_domain_referral_special_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_domain_referral_special_name_, , "Pointer to Special Name (string)",hf_dfsblobs_dfs_domain_referral_special_name);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_domain_referral_special_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_domain_referral_special_name , 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_domain_referral_nb_expanded_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_domain_referral_nb_expanded_names, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_domain_referral_expanded_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_domain_referral_expanded_names_, , "Pointer to Expanded Names (string_array)",hf_dfsblobs_dfs_domain_referral_expanded_names);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_domain_referral_expanded_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_domain_referral_expanded_names_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               dfsblobs_dissect_element_dfs_domain_referral_expanded_names__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_domain_referral_expanded_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_domain_referral_expanded_names,0);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_domain_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_domain_referral);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_domain_referral_special_name(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_domain_referral_nb_expanded_names(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_domain_referral_expanded_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(0)] [case(0)] dfs_normal_referral r1; */
+/* IDL: [case(2)] [case(2)] dfs_domain_referral r2; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_r1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_normal_referral(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_r1,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_r2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_domain_referral(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_r2,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_dfs_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dfs_referral");
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral);
+       }
+
+       switch(level) {
+               case 0:
+                       offset = dfsblobs_dissect_element_dfs_referral_r1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = dfsblobs_dissect_element_dfs_referral_r2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(16)] [case(16)] uint8 value[16]; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_padding_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = dfsblobs_dissect_element_dfs_padding_value_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_padding_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_padding_value, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_dfs_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dfs_padding");
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_padding);
+       }
+
+       switch(level) {
+               case 16:
+                       offset = dfsblobs_dissect_element_dfs_padding_value(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 size; */
+/* IDL:        DFS_SERVER_TYPE server_type; */
+/* IDL:        DFS_FLAGS_REFERRAL entry_flags; */
+/* IDL:        uint32 ttl; */
+/* IDL:        [switch_is(entry_flags&DFS_FLAG_REFERRAL_DOMAIN_RESP)] dfs_referral referrals; */
+/* IDL:        [switch_is(size-18)] dfs_padding service_site_guid; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_v3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *size)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v3_size, size);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v3_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_enum_DFS_SERVER_TYPE(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v3_server_type, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v3_entry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *entry_flags)
+{
+       offset = dfsblobs_dissect_enum_DFS_FLAGS_REFERRAL(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v3_entry_flags, entry_flags);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v3_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v3_ttl, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v3_referrals(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = dfsblobs_dissect_dfs_referral(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v3_referrals, *);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_v3_service_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = dfsblobs_dissect_dfs_padding(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_v3_service_site_guid, *);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_referral_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g size;
+       guint16 entry_flags;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral_v3);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_referral_v3_size(tvb, offset, pinfo, tree, drep, &size);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v3_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v3_entry_flags(tvb, offset, pinfo, tree, drep, &entry_flags);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v3_ttl(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v3_referrals(tvb, offset, pinfo, tree, drep, &);
+
+       offset = dfsblobs_dissect_element_dfs_referral_v3_service_site_guid(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(1)] [case(1)] dfs_referral_v1 v1; */
+/* IDL: [case(2)] [case(2)] dfs_referral_v2 v2; */
+/* IDL: [case(3)] [case(3)] dfs_referral_v3 v3; */
+/* IDL: [case(4)] [case(4)] dfs_referral_v3 v4; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_version_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_referral_v1(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_version_v1,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_version_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_referral_v2(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_version_v2,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_version_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_referral_v3(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_version_v3,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_version_v4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_referral_v3(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_version_v4,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_dfs_referral_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dfs_referral_version");
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral_version);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = dfsblobs_dissect_element_dfs_referral_version_v1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = dfsblobs_dissect_element_dfs_referral_version_v2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = dfsblobs_dissect_element_dfs_referral_version_v3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = dfsblobs_dissect_element_dfs_referral_version_v4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 version; */
+/* IDL:        [switch_is(version)] dfs_referral_version referral; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_type_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_type_version, version);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_type_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = dfsblobs_dissect_dfs_referral_version(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_type_referral, *version);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_referral_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral_type);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_referral_type_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = dfsblobs_dissect_element_dfs_referral_type_referral(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 path_consumed; */
+/* IDL:        uint16 nb_referrals; */
+/* IDL:        DFS_HEADER_FLAG header_flags; */
+/* IDL:        dfs_referral_type referral_entries[nb_referrals]; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_referral_resp_path_consumed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_resp_path_consumed, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_resp_nb_referrals(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_resp_nb_referrals, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_resp_header_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_bitmap_DFS_HEADER_FLAG(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_referral_resp_header_flags, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_resp_referral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_referral_resp_referral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_referral_type(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_referral_resp_referral_entries,0);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_referral_resp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_referral_resp);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_referral_resp_path_consumed(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_resp_nb_referrals(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_resp_header_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_referral_resp_referral_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 max_referral_level; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string servername; */
+/* IDL: } */
+
+static int
+dfsblobs_dissect_element_dfs_GetDFSReferral_in_max_referral_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_GetDFSReferral_in_max_referral_level, 0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_GetDFSReferral_in_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_dfsblobs_dfs_GetDFSReferral_in_servername , 0);
+
+       return offset;
+}
+
+int
+dfsblobs_dissect_struct_dfs_GetDFSReferral_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dfsblobs_dfs_GetDFSReferral_in);
+       }
+       
+       offset = dfsblobs_dissect_element_dfs_GetDFSReferral_in_max_referral_level(tvb, offset, pinfo, tree, drep);
+
+       offset = dfsblobs_dissect_element_dfs_GetDFSReferral_in_servername(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_GetDFSReferral_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_GetDFSReferral_in(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_GetDFSReferral_req,0);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_GetDFSReferral_resp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dfsblobs_dissect_element_dfs_GetDFSReferral_resp_, NDR_POINTER_REF, "Pointer to Resp (dfs_referral_resp)",hf_dfsblobs_dfs_GetDFSReferral_resp);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_element_dfs_GetDFSReferral_resp_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dfsblobs_dissect_struct_dfs_referral_resp(tvb,offset,pinfo,tree,drep,hf_dfsblobs_dfs_GetDFSReferral_resp,0);
+
+       return offset;
+}
+
+/* IDL: void dfs_GetDFSReferral( */
+/* IDL: [in] dfs_GetDFSReferral_in req, */
+/* IDL: [out] [ref] dfs_referral_resp *resp */
+/* IDL: ); */
+
+static int
+dfsblobs_dissect_dfs_GetDFSReferral_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_GetDFSReferral";
+       offset = dfsblobs_dissect_element_dfs_GetDFSReferral_resp(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+dfsblobs_dissect_dfs_GetDFSReferral_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="dfs_GetDFSReferral";
+       offset = dfsblobs_dissect_element_dfs_GetDFSReferral_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector dfsblobs_dissectors[] = {
+       { 0, "dfs_GetDFSReferral",
+          dfsblobs_dissect_dfs_GetDFSReferral_request, dfsblobs_dissect_dfs_GetDFSReferral_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_dfsblobs(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_dfsblobs_dfs_referral_version_v4,
+         { "V4", "dfsblobs.dfs_referral_version.v4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_domain_referral_special_name,
+         { "Special Name", "dfsblobs.dfs_domain_referral.special_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v3_ttl,
+         { "Ttl", "dfsblobs.dfs_referral_v3.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_server_type,
+         { "Server Type", "dfsblobs.dfs_referral_v2.server_type", FT_UINT16, BASE_DEC, VALS(dfsblobs_DFS_SERVER_TYPE_vals), 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v1_server_type,
+         { "Server Type", "dfsblobs.dfs_referral_v1.server_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_normal_referral_netw_address,
+         { "Netw Address", "dfsblobs.dfs_normal_referral.netw_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_proximity,
+         { "Proximity", "dfsblobs.dfs_referral_v2.proximity", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_size,
+         { "Size", "dfsblobs.dfs_referral_v2.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v3_server_type,
+         { "Server Type", "dfsblobs.dfs_referral_v3.server_type", FT_UINT16, BASE_DEC, VALS(dfsblobs_DFS_SERVER_TYPE_vals), 0, NULL, HFILL }},
+       { &hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_REFERAL_SVR,
+         { "Dfs Header Flag Referal Svr", "dfsblobs.DFS_HEADER_FLAG.DFS_HEADER_FLAG_REFERAL_SVR", FT_BOOLEAN, 32, TFS(&DFS_HEADER_FLAG_DFS_HEADER_FLAG_REFERAL_SVR_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_resp_path_consumed,
+         { "Path Consumed", "dfsblobs.dfs_referral_resp.path_consumed", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_version_v3,
+         { "V3", "dfsblobs.dfs_referral_version.v3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v3_referrals,
+         { "Referrals", "dfsblobs.dfs_referral_v3.referrals", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v1_entry_flags,
+         { "Entry Flags", "dfsblobs.dfs_referral_v1.entry_flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_resp_referral_entries,
+         { "Referral Entries", "dfsblobs.dfs_referral_resp.referral_entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_type_referral,
+         { "Referral", "dfsblobs.dfs_referral_type.referral", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_r1,
+         { "R1", "dfsblobs.dfs_referral.r1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_version_v1,
+         { "V1", "dfsblobs.dfs_referral_version.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_GetDFSReferral_req,
+         { "Req", "dfsblobs.dfs_GetDFSReferral.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v1_share_name,
+         { "Share Name", "dfsblobs.dfs_referral_v1.share_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_netw_address,
+         { "Netw Address", "dfsblobs.dfs_referral_v2.netw_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_domain_referral_expanded_names_,
+         { "Subcontext length", "dfsblobs.dfs_domain_referral.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_type_version,
+         { "Version", "dfsblobs.dfs_referral_type.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_domain_referral_nb_expanded_names,
+         { "Nb Expanded Names", "dfsblobs.dfs_domain_referral.nb_expanded_names", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_opnum,
+         { "Operation", "dfsblobs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_GetDFSReferral_in_max_referral_level,
+         { "Max Referral Level", "dfsblobs.dfs_GetDFSReferral_in.max_referral_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_DFS_alt_path,
+         { "Dfs Alt Path", "dfsblobs.dfs_referral_v2.DFS_alt_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_domain_referral_expanded_names,
+         { "Expanded Names", "dfsblobs.dfs_domain_referral.expanded_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_r2,
+         { "R2", "dfsblobs.dfs_referral.r2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v3_service_site_guid,
+         { "Service Site Guid", "dfsblobs.dfs_referral_v3.service_site_guid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_GetDFSReferral_in_servername,
+         { "Servername", "dfsblobs.dfs_GetDFSReferral_in.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_resp_nb_referrals,
+         { "Nb Referrals", "dfsblobs.dfs_referral_resp.nb_referrals", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_normal_referral_DFS_alt_path,
+         { "Dfs Alt Path", "dfsblobs.dfs_normal_referral.DFS_alt_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_STORAGE_SVR,
+         { "Dfs Header Flag Storage Svr", "dfsblobs.DFS_HEADER_FLAG.DFS_HEADER_FLAG_STORAGE_SVR", FT_BOOLEAN, 32, TFS(&DFS_HEADER_FLAG_DFS_HEADER_FLAG_STORAGE_SVR_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v1_size,
+         { "Size", "dfsblobs.dfs_referral_v1.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_padding_value,
+         { "Value", "dfsblobs.dfs_padding.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_resp_header_flags,
+         { "Header Flags", "dfsblobs.dfs_referral_resp.header_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_normal_referral_DFS_path,
+         { "Dfs Path", "dfsblobs.dfs_normal_referral.DFS_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v3_entry_flags,
+         { "Entry Flags", "dfsblobs.dfs_referral_v3.entry_flags", FT_UINT16, BASE_DEC, VALS(dfsblobs_DFS_FLAGS_REFERRAL_vals), 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v3_size,
+         { "Size", "dfsblobs.dfs_referral_v3.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_GetDFSReferral_resp,
+         { "Resp", "dfsblobs.dfs_GetDFSReferral.resp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_entry_flags,
+         { "Entry Flags", "dfsblobs.dfs_referral_v2.entry_flags", FT_UINT16, BASE_DEC, VALS(dfsblobs_DFS_FLAGS_REFERRAL_vals), 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_version_v2,
+         { "V2", "dfsblobs.dfs_referral_version.v2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_ttl,
+         { "Ttl", "dfsblobs.dfs_referral_v2.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_dfs_referral_v2_DFS_path,
+         { "Dfs Path", "dfsblobs.dfs_referral_v2.DFS_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dfsblobs_DFS_HEADER_FLAG_DFS_HEADER_FLAG_TARGET_BCK,
+         { "Dfs Header Flag Target Bck", "dfsblobs.DFS_HEADER_FLAG.DFS_HEADER_FLAG_TARGET_BCK", FT_BOOLEAN, 32, TFS(&DFS_HEADER_FLAG_DFS_HEADER_FLAG_TARGET_BCK_tfs), ( 0x00000004 ), NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_dfsblobs,
+               &ett_dfsblobs_DFS_HEADER_FLAG,
+               &ett_dfsblobs_dfs_referral_v1,
+               &ett_dfsblobs_dfs_referral_v2,
+               &ett_dfsblobs_dfs_normal_referral,
+               &ett_dfsblobs_dfs_domain_referral,
+               &ett_dfsblobs_dfs_referral,
+               &ett_dfsblobs_dfs_padding,
+               &ett_dfsblobs_dfs_referral_v3,
+               &ett_dfsblobs_dfs_referral_version,
+               &ett_dfsblobs_dfs_referral_type,
+               &ett_dfsblobs_dfs_referral_resp,
+               &ett_dfsblobs_dfs_GetDFSReferral_in,
+       };
+
+       proto_dcerpc_dfsblobs = proto_register_protocol("dfs referral blobs", "DFSBLOBS", "dfsblobs");
+       proto_register_field_array(proto_dcerpc_dfsblobs, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_dfsblobs(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_dfsblobs, ett_dcerpc_dfsblobs,
+               &uuid_dcerpc_dfsblobs, ver_dcerpc_dfsblobs,
+               dfsblobs_dissectors, hf_dfsblobs_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dfsblobs.h
new file mode 100644 (file)
index 0000000..0aba0d6
--- /dev/null
@@ -0,0 +1,38 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfsblobs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dfsblobs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_DFSBLOBS_H
+#define __PACKET_DCERPC_DFSBLOBS_H
+
+int dfsblobs_dissect_bitmap_DFS_HEADER_FLAG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DFS_SERVER_NON_ROOT (0x0000)
+#define DFS_SERVER_ROOT (0x0001)
+extern const value_string dfsblobs_DFS_SERVER_TYPE_vals[];
+int dfsblobs_dissect_enum_DFS_SERVER_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DFS_FLAG_REFERRAL_DOMAIN_RESP (0x0002)
+#define DFS_FLAG_REFERRAL_FIRST_TARGET_SET (0x0004)
+extern const value_string dfsblobs_DFS_FLAGS_REFERRAL_vals[];
+int dfsblobs_dissect_enum_DFS_FLAGS_REFERRAL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dfsblobs_dissect_struct_dfs_referral_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_referral_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_normal_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_domain_referral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_referral_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_referral_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_referral_resp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dfsblobs_dissect_struct_dfs_GetDFSReferral_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_DFSBLOBS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dns.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dns.c
new file mode 100644 (file)
index 0000000..a29db10
--- /dev/null
@@ -0,0 +1,2518 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dns.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dns.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dns.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_dns = -1;
+static gint ett_dns_dns_operation = -1;
+static gint ett_dns_dns_name_question = -1;
+static gint ett_dns_dns_rdata_data = -1;
+static gint ett_dns_dns_soa_record = -1;
+static gint ett_dns_dns_hinfo_record = -1;
+static gint ett_dns_dns_mx_record = -1;
+static gint ett_dns_dns_txt_record = -1;
+static gint ett_dns_dns_rp_record = -1;
+static gint ett_dns_dns_srv_record = -1;
+static gint ett_dns_dns_opt_record = -1;
+static gint ett_dns_dns_tkey_record = -1;
+static gint ett_dns_dns_tsig_record = -1;
+static gint ett_dns_dns_fake_tsig_rec = -1;
+static gint ett_dns_dns_rdata = -1;
+static gint ett_dns_dns_res_rec = -1;
+static gint ett_dns_dns_name_packet = -1;
+
+
+/* Header field declarations */
+static gint hf_dns_dns_hinfo_record_cpu = -1;
+static gint hf_dns_decode_dns_name_packet_packet = -1;
+static gint hf_dns_dns_srv_record_target = -1;
+static gint hf_dns_dns_soa_record_minimum = -1;
+static gint hf_dns_dns_srv_record_priority = -1;
+static gint hf_dns_dns_operation_DNS_FLAG_REPLY = -1;
+static gint hf_dns_opnum = -1;
+static gint hf_dns_dns_srv_record_weight = -1;
+static gint hf_dns_dns_operation_DNS_FLAG_BROADCAST = -1;
+static gint hf_dns_dns_tsig_record_algorithm_name = -1;
+static gint hf_dns_dns_tkey_record_inception = -1;
+static gint hf_dns_dns_res_rec_rdata = -1;
+static gint hf_dns_dns_tsig_record_error = -1;
+static gint hf_dns_dns_rdata_tkey_record = -1;
+static gint hf_dns_dns_tsig_record_original_id = -1;
+static gint hf_dns_dns_name_packet_arcount = -1;
+static gint hf_dns_dns_fake_tsig_rec_original_id = -1;
+static gint hf_dns_dns_fake_tsig_rec_time = -1;
+static gint hf_dns_dns_rdata_mx_record = -1;
+static gint hf_dns_dns_tsig_record_mac = -1;
+static gint hf_dns_dns_tsig_record_time_prefix = -1;
+static gint hf_dns_dns_res_rec_length = -1;
+static gint hf_dns_dns_rdata_soa_record = -1;
+static gint hf_dns_dns_fake_tsig_rec_error = -1;
+static gint hf_dns_dns_mx_record_preference = -1;
+static gint hf_dns_dns_soa_record_retry = -1;
+static gint hf_dns_dns_rp_record_mbox = -1;
+static gint hf_dns_dns_fake_tsig_rec_ttl = -1;
+static gint hf_dns_dns_fake_tsig_rec_name = -1;
+static gint hf_dns_dns_tsig_record_fudge = -1;
+static gint hf_dns_dns_res_rec_rr_type = -1;
+static gint hf_dns_dns_operation_DNS_RCODE = -1;
+static gint hf_dns_dns_rdata_ipv4_record = -1;
+static gint hf_dns_dns_fake_tsig_rec_other_data = -1;
+static gint hf_dns_dns_fake_tsig_rec_rr_class = -1;
+static gint hf_dns_dns_hinfo_record_os = -1;
+static gint hf_dns_dns_name_packet_additional = -1;
+static gint hf_dns_dns_srv_record_port = -1;
+static gint hf_dns_dns_name_packet_qdcount = -1;
+static gint hf_dns_dns_rdata_data_data = -1;
+static gint hf_dns_dns_rdata_ptr_record = -1;
+static gint hf_dns_dns_fake_tsig_rec_algorithm_name = -1;
+static gint hf_dns_dns_rdata_rp_record = -1;
+static gint hf_dns_dns_soa_record_mname = -1;
+static gint hf_dns_dns_tsig_record_mac_size = -1;
+static gint hf_dns_dns_fake_tsig_rec_time_prefix = -1;
+static gint hf_dns_dns_res_rec_ttl = -1;
+static gint hf_dns_dns_soa_record_serial = -1;
+static gint hf_dns_dns_tsig_record_time = -1;
+static gint hf_dns_dns_soa_record_rname = -1;
+static gint hf_dns_dns_operation_DNS_FLAG_RECURSION_DESIRED = -1;
+static gint hf_dns_dns_tkey_record_error = -1;
+static gint hf_dns_dns_hinfo_record_os_length = -1;
+static gint hf_dns_dns_tsig_record_other_data = -1;
+static gint hf_dns_dns_txt_record_length = -1;
+static gint hf_dns_dns_operation_DNS_OPCODE = -1;
+static gint hf_dns_dns_soa_record_refresh = -1;
+static gint hf_dns_dns_rdata_ipv6_record = -1;
+static gint hf_dns_dns_operation_DNS_FLAG_AUTHORITATIVE = -1;
+static gint hf_dns_dns_fake_tsig_rec_fudge = -1;
+static gint hf_dns_dns_rdata_opt_record = -1;
+static gint hf_dns_dns_rdata_tsig_record = -1;
+static gint hf_dns_dns_tkey_record_other_size = -1;
+static gint hf_dns_dns_name_packet_nscount = -1;
+static gint hf_dns_dns_res_rec_name = -1;
+static gint hf_dns_dns_name_packet_nsrecs = -1;
+static gint hf_dns_dns_tkey_record_expiration = -1;
+static gint hf_dns_dns_hinfo_record_cpu_length = -1;
+static gint hf_dns_dns_name_question_question_type = -1;
+static gint hf_dns_dns_txt_record_txt = -1;
+static gint hf_dns_dns_tkey_record_other_data = -1;
+static gint hf_dns_dns_tkey_record_algorithm = -1;
+static gint hf_dns_dns_rdata_srv_record = -1;
+static gint hf_dns_dns_tkey_record_key_size = -1;
+static gint hf_dns_dns_tkey_record_key_data = -1;
+static gint hf_dns_dns_rdata_data_length = -1;
+static gint hf_dns_dns_name_packet_questions = -1;
+static gint hf_dns_dns_fake_tsig_rec_other_size = -1;
+static gint hf_dns_dns_rdata_hinfo_record = -1;
+static gint hf_dns_dns_name_packet_answers = -1;
+static gint hf_dns_dns_res_rec_unexpected = -1;
+static gint hf_dns_dns_soa_record_expire = -1;
+static gint hf_dns_dns_mx_record_exchange = -1;
+static gint hf_dns_dns_rdata_ns_record = -1;
+static gint hf_dns_dns_name_question_question_class = -1;
+static gint hf_dns_dns_operation_DNS_FLAG_RECURSION_AVAIL = -1;
+static gint hf_dns_dns_opt_record_option_code = -1;
+static gint hf_dns_dns_tsig_record_other_size = -1;
+static gint hf_dns_dns_rdata_cname_record = -1;
+static gint hf_dns_dns_operation_DNS_FLAG_TRUNCATION = -1;
+static gint hf_dns_dns_name_question_name = -1;
+static gint hf_dns_dns_rdata_txt_record = -1;
+static gint hf_dns_dns_name_packet_operation = -1;
+static gint hf_dns_dns_name_packet_id = -1;
+static gint hf_dns_dns_res_rec_rr_class = -1;
+static gint hf_dns_dns_rp_record_txt = -1;
+static gint hf_dns_dns_opt_record_option_length = -1;
+static gint hf_dns_dns_opt_record_option_data = -1;
+static gint hf_dns_dns_name_packet_ancount = -1;
+static gint hf_dns_dns_tkey_record_mode = -1;
+
+static gint proto_dcerpc_dns = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_dns = {
+       0xa047c001, 0x5f22, 0x40b0,
+       { 0x9d, 0x52, 0x70, 0x42, 0xc4, 0x3f, 0x71, 0x1a }
+};
+static guint16 ver_dcerpc_dns = 0;
+
+static const true_false_string dns_operation_DNS_RCODE_tfs = {
+   "DNS_RCODE is SET",
+   "DNS_RCODE is NOT SET",
+};
+static const true_false_string dns_operation_DNS_FLAG_BROADCAST_tfs = {
+   "DNS_FLAG_BROADCAST is SET",
+   "DNS_FLAG_BROADCAST is NOT SET",
+};
+static const true_false_string dns_operation_DNS_FLAG_RECURSION_AVAIL_tfs = {
+   "DNS_FLAG_RECURSION_AVAIL is SET",
+   "DNS_FLAG_RECURSION_AVAIL is NOT SET",
+};
+static const true_false_string dns_operation_DNS_FLAG_RECURSION_DESIRED_tfs = {
+   "DNS_FLAG_RECURSION_DESIRED is SET",
+   "DNS_FLAG_RECURSION_DESIRED is NOT SET",
+};
+static const true_false_string dns_operation_DNS_FLAG_TRUNCATION_tfs = {
+   "DNS_FLAG_TRUNCATION is SET",
+   "DNS_FLAG_TRUNCATION is NOT SET",
+};
+static const true_false_string dns_operation_DNS_FLAG_AUTHORITATIVE_tfs = {
+   "DNS_FLAG_AUTHORITATIVE is SET",
+   "DNS_FLAG_AUTHORITATIVE is NOT SET",
+};
+static const true_false_string dns_operation_DNS_OPCODE_tfs = {
+   "DNS_OPCODE is SET",
+   "DNS_OPCODE is NOT SET",
+};
+static const true_false_string dns_operation_DNS_FLAG_REPLY_tfs = {
+   "DNS_FLAG_REPLY is SET",
+   "DNS_FLAG_REPLY is NOT SET",
+};
+const value_string dns_dns_opcode_vals[] = {
+       { DNS_OPCODE_QUERY, "DNS_OPCODE_QUERY" },
+       { DNS_OPCODE_IQUERY, "DNS_OPCODE_IQUERY" },
+       { DNS_OPCODE_STATUS, "DNS_OPCODE_STATUS" },
+       { DNS_OPCODE_UPDATE, "DNS_OPCODE_UPDATE" },
+       { DNS_OPCODE_RELEASE, "DNS_OPCODE_RELEASE" },
+       { DNS_OPCODE_WACK, "DNS_OPCODE_WACK" },
+       { DNS_OPCODE_REFRESH, "DNS_OPCODE_REFRESH" },
+       { DNS_OPCODE_REFRESH2, "DNS_OPCODE_REFRESH2" },
+       { DNS_OPCODE_MULTI_HOME_REG, "DNS_OPCODE_MULTI_HOME_REG" },
+{ 0, NULL }
+};
+const value_string dns_dns_rcode_vals[] = {
+       { DNS_RCODE_OK, "DNS_RCODE_OK" },
+       { DNS_RCODE_FORMERR, "DNS_RCODE_FORMERR" },
+       { DNS_RCODE_SERVFAIL, "DNS_RCODE_SERVFAIL" },
+       { DNS_RCODE_NXDOMAIN, "DNS_RCODE_NXDOMAIN" },
+       { DNS_RCODE_NOTIMP, "DNS_RCODE_NOTIMP" },
+       { DNS_RCODE_REFUSED, "DNS_RCODE_REFUSED" },
+       { DNS_RCODE_YXDOMAIN, "DNS_RCODE_YXDOMAIN" },
+       { DNS_RCODE_YXRRSET, "DNS_RCODE_YXRRSET" },
+       { DNS_RCODE_NXRRSET, "DNS_RCODE_NXRRSET" },
+       { DNS_RCODE_NOTAUTH, "DNS_RCODE_NOTAUTH" },
+       { DNS_RCODE_NOTZONE, "DNS_RCODE_NOTZONE" },
+       { DNS_RCODE_BADSIG, "DNS_RCODE_BADSIG" },
+       { DNS_RCODE_BADKEY, "DNS_RCODE_BADKEY" },
+       { DNS_RCODE_BADTIME, "DNS_RCODE_BADTIME" },
+       { DNS_RCODE_BADMODE, "DNS_RCODE_BADMODE" },
+       { DNS_RCODE_BADNAME, "DNS_RCODE_BADNAME" },
+       { DNS_RCODE_BADALG, "DNS_RCODE_BADALG" },
+{ 0, NULL }
+};
+const value_string dns_dns_qclass_vals[] = {
+       { DNS_QCLASS_IN, "DNS_QCLASS_IN" },
+       { DNS_QCLASS_NONE, "DNS_QCLASS_NONE" },
+       { DNS_QCLASS_ANY, "DNS_QCLASS_ANY" },
+{ 0, NULL }
+};
+const value_string dns_dns_qtype_vals[] = {
+       { DNS_QTYPE_ZERO, "DNS_QTYPE_ZERO" },
+       { DNS_QTYPE_A, "DNS_QTYPE_A" },
+       { DNS_QTYPE_NS, "DNS_QTYPE_NS" },
+       { DNS_QTYPE_MD, "DNS_QTYPE_MD" },
+       { DNS_QTYPE_MF, "DNS_QTYPE_MF" },
+       { DNS_QTYPE_CNAME, "DNS_QTYPE_CNAME" },
+       { DNS_QTYPE_SOA, "DNS_QTYPE_SOA" },
+       { DNS_QTYPE_MB, "DNS_QTYPE_MB" },
+       { DNS_QTYPE_MG, "DNS_QTYPE_MG" },
+       { DNS_QTYPE_MR, "DNS_QTYPE_MR" },
+       { DNS_QTYPE_NULL, "DNS_QTYPE_NULL" },
+       { DNS_QTYPE_WKS, "DNS_QTYPE_WKS" },
+       { DNS_QTYPE_PTR, "DNS_QTYPE_PTR" },
+       { DNS_QTYPE_HINFO, "DNS_QTYPE_HINFO" },
+       { DNS_QTYPE_MINFO, "DNS_QTYPE_MINFO" },
+       { DNS_QTYPE_MX, "DNS_QTYPE_MX" },
+       { DNS_QTYPE_TXT, "DNS_QTYPE_TXT" },
+       { DNS_QTYPE_RP, "DNS_QTYPE_RP" },
+       { DNS_QTYPE_AFSDB, "DNS_QTYPE_AFSDB" },
+       { DNS_QTYPE_X25, "DNS_QTYPE_X25" },
+       { DNS_QTYPE_ISDN, "DNS_QTYPE_ISDN" },
+       { DNS_QTYPE_RT, "DNS_QTYPE_RT" },
+       { DNS_QTYPE_SIG, "DNS_QTYPE_SIG" },
+       { DNS_QTYPE_KEY, "DNS_QTYPE_KEY" },
+       { DNS_QTYPE_AAAA, "DNS_QTYPE_AAAA" },
+       { DNS_QTYPE_LOC, "DNS_QTYPE_LOC" },
+       { DNS_QTYPE_NXT, "DNS_QTYPE_NXT" },
+       { DNS_QTYPE_NETBIOS, "DNS_QTYPE_NETBIOS" },
+       { DNS_QTYPE_SRV, "DNS_QTYPE_SRV" },
+       { DNS_QTYPE_ATMA, "DNS_QTYPE_ATMA" },
+       { DNS_QTYPE_NAPTR, "DNS_QTYPE_NAPTR" },
+       { DNS_QTYPE_DNAME, "DNS_QTYPE_DNAME" },
+       { DNS_QTYPE_OPT, "DNS_QTYPE_OPT" },
+       { DNS_QTYPE_DS, "DNS_QTYPE_DS" },
+       { DNS_QTYPE_RRSIG, "DNS_QTYPE_RRSIG" },
+       { DNS_QTYPE_NSEC, "DNS_QTYPE_NSEC" },
+       { DNS_QTYPE_DNSKEY, "DNS_QTYPE_DNSKEY" },
+       { DNS_QTYPE_DHCID, "DNS_QTYPE_DHCID" },
+       { DNS_QTYPE_TKEY, "DNS_QTYPE_TKEY" },
+       { DNS_QTYPE_TSIG, "DNS_QTYPE_TSIG" },
+       { DNS_QTYPE_AXFR, "DNS_QTYPE_AXFR" },
+       { DNS_QTYPE_MAILB, "DNS_QTYPE_MAILB" },
+       { DNS_QTYPE_MAILA, "DNS_QTYPE_MAILA" },
+       { DNS_QTYPE_ALL, "DNS_QTYPE_ALL" },
+{ 0, NULL }
+};
+const value_string dns_dns_tkey_mode_vals[] = {
+       { DNS_TKEY_MODE_NULL, "DNS_TKEY_MODE_NULL" },
+       { DNS_TKEY_MODE_SERVER, "DNS_TKEY_MODE_SERVER" },
+       { DNS_TKEY_MODE_DH, "DNS_TKEY_MODE_DH" },
+       { DNS_TKEY_MODE_GSSAPI, "DNS_TKEY_MODE_GSSAPI" },
+       { DNS_TKEY_MODE_CLIENT, "DNS_TKEY_MODE_CLIENT" },
+       { DNS_TKEY_MODE_DELETE, "DNS_TKEY_MODE_DELETE" },
+       { DNS_TKEY_MODE_LAST, "DNS_TKEY_MODE_LAST" },
+{ 0, NULL }
+};
+static int dns_dissect_element_name_question_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_question_question_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_question_question_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_data_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_mname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_rname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_refresh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_retry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_expire(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_soa_record_minimum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_hinfo_record_cpu_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_hinfo_record_cpu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_hinfo_record_cpu_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_hinfo_record_os_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_hinfo_record_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_hinfo_record_os_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_mx_record_preference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_mx_record_exchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_txt_record_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_txt_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_txt_record_txt_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rp_record_mbox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rp_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_srv_record_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_srv_record_weight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_srv_record_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_srv_record_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_opt_record_option_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_opt_record_option_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_opt_record_option_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_opt_record_option_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_inception(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_expiration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_key_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_key_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_key_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tkey_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_mac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_mac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_mac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_tsig_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_fake_tsig_rec_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_ipv4_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_ns_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_cname_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_ptr_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_ipv6_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_rdata_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_res_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_res_rec_rr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type);
+static int dns_dissect_element_res_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_res_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_res_rec_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_res_rec_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type);
+static int dns_dissect_element_res_rec_unexpected(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_qdcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_ancount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_nscount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_arcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_questions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_questions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_answers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_answers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_nsrecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_nsrecs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_additional(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_name_packet_additional_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dns_dissect_element_decode_dns_name_packet_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL:        DNS_RCODE =  0x000F , */
+/* IDL:        DNS_FLAG_BROADCAST =  0x0010 , */
+/* IDL:        DNS_FLAG_RECURSION_AVAIL =  0x0080 , */
+/* IDL:        DNS_FLAG_RECURSION_DESIRED =  0x0100 , */
+/* IDL:        DNS_FLAG_TRUNCATION =  0x0200 , */
+/* IDL:        DNS_FLAG_AUTHORITATIVE =  0x0400 , */
+/* IDL:        DNS_OPCODE =  0x7800 , */
+/* IDL:        DNS_FLAG_REPLY =  0x8000 , */
+/* IDL: } */
+
+int
+dns_dissect_bitmap_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint16 flags;
+       ALIGN_TO_2_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dns_dns_operation);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_RCODE, tvb, offset-2, 2, flags);
+       if (flags&( 0x000F )){
+               proto_item_append_text(item, "DNS_RCODE");
+               if (flags & (~( 0x000F )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x000F ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_BROADCAST, tvb, offset-2, 2, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "DNS_FLAG_BROADCAST");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_RECURSION_AVAIL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0080 )){
+               proto_item_append_text(item, "DNS_FLAG_RECURSION_AVAIL");
+               if (flags & (~( 0x0080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0080 ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_RECURSION_DESIRED, tvb, offset-2, 2, flags);
+       if (flags&( 0x0100 )){
+               proto_item_append_text(item, "DNS_FLAG_RECURSION_DESIRED");
+               if (flags & (~( 0x0100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0100 ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_TRUNCATION, tvb, offset-2, 2, flags);
+       if (flags&( 0x0200 )){
+               proto_item_append_text(item, "DNS_FLAG_TRUNCATION");
+               if (flags & (~( 0x0200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0200 ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_AUTHORITATIVE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0400 )){
+               proto_item_append_text(item, "DNS_FLAG_AUTHORITATIVE");
+               if (flags & (~( 0x0400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0400 ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_OPCODE, tvb, offset-2, 2, flags);
+       if (flags&( 0x7800 )){
+               proto_item_append_text(item, "DNS_OPCODE");
+               if (flags & (~( 0x7800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x7800 ));
+
+       proto_tree_add_boolean(tree, hf_dns_dns_operation_DNS_FLAG_REPLY, tvb, offset-2, 2, flags);
+       if (flags&( 0x8000 )){
+               proto_item_append_text(item, "DNS_FLAG_REPLY");
+               if (flags & (~( 0x8000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x8000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_OPCODE_QUERY=(0x0<<11), */
+/* IDL:        DNS_OPCODE_IQUERY=(0x1<<11), */
+/* IDL:        DNS_OPCODE_STATUS=(0x2<<11), */
+/* IDL:        DNS_OPCODE_UPDATE=(0x5<<11), */
+/* IDL:        DNS_OPCODE_RELEASE=(0x6<<11), */
+/* IDL:        DNS_OPCODE_WACK=(0x7<<11), */
+/* IDL:        DNS_OPCODE_REFRESH=(0x8<<11), */
+/* IDL:        DNS_OPCODE_REFRESH2=(0x9<<11), */
+/* IDL:        DNS_OPCODE_MULTI_HOME_REG=(0xf<<11), */
+/* IDL: } */
+
+int
+dns_dissect_enum_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_RCODE_OK=0x00, */
+/* IDL:        DNS_RCODE_FORMERR=0x01, */
+/* IDL:        DNS_RCODE_SERVFAIL=0x02, */
+/* IDL:        DNS_RCODE_NXDOMAIN=0x03, */
+/* IDL:        DNS_RCODE_NOTIMP=0x04, */
+/* IDL:        DNS_RCODE_REFUSED=0x05, */
+/* IDL:        DNS_RCODE_YXDOMAIN=0x06, */
+/* IDL:        DNS_RCODE_YXRRSET=0x07, */
+/* IDL:        DNS_RCODE_NXRRSET=0x08, */
+/* IDL:        DNS_RCODE_NOTAUTH=0x09, */
+/* IDL:        DNS_RCODE_NOTZONE=0x0A, */
+/* IDL:        DNS_RCODE_BADSIG=0x10, */
+/* IDL:        DNS_RCODE_BADKEY=0x11, */
+/* IDL:        DNS_RCODE_BADTIME=0x12, */
+/* IDL:        DNS_RCODE_BADMODE=0x13, */
+/* IDL:        DNS_RCODE_BADNAME=0x14, */
+/* IDL:        DNS_RCODE_BADALG=0x15, */
+/* IDL: } */
+
+int
+dns_dissect_enum_rcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_QCLASS_IN=0x0001, */
+/* IDL:        DNS_QCLASS_NONE=0x00FE, */
+/* IDL:        DNS_QCLASS_ANY=0x00FF, */
+/* IDL: } */
+
+int
+dns_dissect_enum_qclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_QTYPE_ZERO=0x0000, */
+/* IDL:        DNS_QTYPE_A=0x0001, */
+/* IDL:        DNS_QTYPE_NS=0x0002, */
+/* IDL:        DNS_QTYPE_MD=0x0003, */
+/* IDL:        DNS_QTYPE_MF=0x0004, */
+/* IDL:        DNS_QTYPE_CNAME=0x0005, */
+/* IDL:        DNS_QTYPE_SOA=0x0006, */
+/* IDL:        DNS_QTYPE_MB=0x0007, */
+/* IDL:        DNS_QTYPE_MG=0x0008, */
+/* IDL:        DNS_QTYPE_MR=0x0009, */
+/* IDL:        DNS_QTYPE_NULL=0x000A, */
+/* IDL:        DNS_QTYPE_WKS=0x000B, */
+/* IDL:        DNS_QTYPE_PTR=0x000C, */
+/* IDL:        DNS_QTYPE_HINFO=0x000D, */
+/* IDL:        DNS_QTYPE_MINFO=0x000E, */
+/* IDL:        DNS_QTYPE_MX=0x000F, */
+/* IDL:        DNS_QTYPE_TXT=0x0010, */
+/* IDL:        DNS_QTYPE_RP=0x0011, */
+/* IDL:        DNS_QTYPE_AFSDB=0x0012, */
+/* IDL:        DNS_QTYPE_X25=0x0013, */
+/* IDL:        DNS_QTYPE_ISDN=0x0014, */
+/* IDL:        DNS_QTYPE_RT=0x0015, */
+/* IDL:        DNS_QTYPE_SIG=0x0018, */
+/* IDL:        DNS_QTYPE_KEY=0x0019, */
+/* IDL:        DNS_QTYPE_AAAA=0x001C, */
+/* IDL:        DNS_QTYPE_LOC=0x001D, */
+/* IDL:        DNS_QTYPE_NXT=0x001E, */
+/* IDL:        DNS_QTYPE_NETBIOS=0x0020, */
+/* IDL:        DNS_QTYPE_SRV=0x0021, */
+/* IDL:        DNS_QTYPE_ATMA=0x0022, */
+/* IDL:        DNS_QTYPE_NAPTR=0x0023, */
+/* IDL:        DNS_QTYPE_DNAME=0x0027, */
+/* IDL:        DNS_QTYPE_OPT=0x0029, */
+/* IDL:        DNS_QTYPE_DS=0x002B, */
+/* IDL:        DNS_QTYPE_RRSIG=0x002E, */
+/* IDL:        DNS_QTYPE_NSEC=0x002F, */
+/* IDL:        DNS_QTYPE_DNSKEY=0x0030, */
+/* IDL:        DNS_QTYPE_DHCID=0x0031, */
+/* IDL:        DNS_QTYPE_TKEY=0x00F9, */
+/* IDL:        DNS_QTYPE_TSIG=0x00FA, */
+/* IDL:        DNS_QTYPE_AXFR=0x00FC, */
+/* IDL:        DNS_QTYPE_MAILB=0x00FD, */
+/* IDL:        DNS_QTYPE_MAILA=0x00FE, */
+/* IDL:        DNS_QTYPE_ALL=0x00FF, */
+/* IDL: } */
+
+int
+dns_dissect_enum_qtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_TKEY_MODE_NULL=0x0000, */
+/* IDL:        DNS_TKEY_MODE_SERVER=0x0001, */
+/* IDL:        DNS_TKEY_MODE_DH=0x0002, */
+/* IDL:        DNS_TKEY_MODE_GSSAPI=0x0003, */
+/* IDL:        DNS_TKEY_MODE_CLIENT=0x0004, */
+/* IDL:        DNS_TKEY_MODE_DELETE=0x0005, */
+/* IDL:        DNS_TKEY_MODE_LAST=0xFFFF, */
+/* IDL: } */
+
+int
+dns_dissect_enum_tkey_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dns_string name; */
+/* IDL:        dns_qtype question_type; */
+/* IDL:        dns_qclass question_class; */
+/* IDL: } */
+
+static int
+dns_dissect_element_name_question_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_question_name,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_question_question_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_enum_qtype(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_question_question_type, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_question_question_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_question_question_class, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_name_question(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_name_question);
+       }
+       
+       offset = dns_dissect_element_name_question_name(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_question_question_type(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_question_question_class(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        uint8 data[length]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_rdata_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_rdata_data_length, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_data_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_rdata_data_data, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_rdata_data);
+       }
+       
+       offset = dns_dissect_element_rdata_data_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_rdata_data_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dns_string mname; */
+/* IDL:        dns_string rname; */
+/* IDL:        uint32 serial; */
+/* IDL:        uint32 refresh; */
+/* IDL:        uint32 retry; */
+/* IDL:        uint32 expire; */
+/* IDL:        uint32 minimum; */
+/* IDL: } */
+
+static int
+dns_dissect_element_soa_record_mname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_soa_record_mname,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_soa_record_rname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_soa_record_rname,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_soa_record_serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_serial, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_soa_record_refresh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_refresh, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_soa_record_retry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_retry, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_soa_record_expire(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_expire, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_soa_record_minimum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_soa_record_minimum, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_soa_record);
+       }
+       
+       offset = dns_dissect_element_soa_record_mname(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_soa_record_rname(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_soa_record_serial(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_soa_record_refresh(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_soa_record_retry(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_soa_record_expire(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_soa_record_minimum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen(cpu))] uint8 cpu_length; */
+/* IDL:        [charset(DOS)] uint8 cpu[cpu_length]; */
+/* IDL:        [value(strlen(os))] uint8 os_length; */
+/* IDL:        [charset(DOS)] uint8 os[os_length]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_hinfo_record_cpu_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_cpu_length, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_hinfo_record_cpu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_hinfo_record_cpu_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_cpu, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_hinfo_record_os_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_os_length, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_hinfo_record_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_hinfo_record_os_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_hinfo_record_os, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_hinfo_record);
+       }
+       
+       offset = dns_dissect_element_hinfo_record_cpu_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_hinfo_record_cpu(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_hinfo_record_os_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_hinfo_record_os(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 preference; */
+/* IDL:        dns_string exchange; */
+/* IDL: } */
+
+static int
+dns_dissect_element_mx_record_preference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_mx_record_preference, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_mx_record_exchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_mx_record_exchange,0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_mx_record);
+       }
+       
+       offset = dns_dissect_element_mx_record_preference(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_mx_record_exchange(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen(txt))] uint8 length; */
+/* IDL:        [charset(DOS)] uint8 txt[length]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_txt_record_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_txt_record_length, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_txt_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_txt_record_txt_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_txt_record_txt, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_txt_record);
+       }
+       
+       offset = dns_dissect_element_txt_record_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_txt_record_txt(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dns_string mbox; */
+/* IDL:        dns_string txt; */
+/* IDL: } */
+
+static int
+dns_dissect_element_rp_record_mbox(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rp_record_mbox,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rp_record_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rp_record_txt,0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_rp_record);
+       }
+       
+       offset = dns_dissect_element_rp_record_mbox(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_rp_record_txt(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 priority; */
+/* IDL:        uint16 weight; */
+/* IDL:        uint16 port; */
+/* IDL:        dns_string target; */
+/* IDL: } */
+
+static int
+dns_dissect_element_srv_record_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_srv_record_priority, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_srv_record_weight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_srv_record_weight, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_srv_record_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_srv_record_port, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_srv_record_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_srv_record_target,0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_srv_record);
+       }
+       
+       offset = dns_dissect_element_srv_record_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_srv_record_weight(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_srv_record_port(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_srv_record_target(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 option_code; */
+/* IDL:        uint16 option_length; */
+/* IDL:        uint8 option_data[option_length]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_opt_record_option_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_opt_record_option_code, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_opt_record_option_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_opt_record_option_length, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_opt_record_option_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_opt_record_option_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_opt_record_option_data, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_opt_record);
+       }
+       
+       offset = dns_dissect_element_opt_record_option_code(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_opt_record_option_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_opt_record_option_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dns_string algorithm; */
+/* IDL:        uint32 inception; */
+/* IDL:        uint32 expiration; */
+/* IDL:        dns_tkey_mode mode; */
+/* IDL:        uint16 error; */
+/* IDL:        uint16 key_size; */
+/* IDL:        uint8 key_data[key_size]; */
+/* IDL:        uint16 other_size; */
+/* IDL:        uint8 other_data[other_size]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_tkey_record_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_tkey_record_algorithm,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_inception(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_inception, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_expiration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_expiration, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_enum_tkey_mode(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_mode, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_error, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_key_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_key_size, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_key_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_key_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_key_data, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_other_size, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tkey_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tkey_record_other_data, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_tkey_record);
+       }
+       
+       offset = dns_dissect_element_tkey_record_algorithm(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_inception(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_expiration(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_mode(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_error(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_key_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_key_data(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_other_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tkey_record_other_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dns_string algorithm_name; */
+/* IDL:        uint16 time_prefix; */
+/* IDL:        uint32 time; */
+/* IDL:        uint16 fudge; */
+/* IDL:        uint16 mac_size; */
+/* IDL:        uint8 mac[mac_size]; */
+/* IDL:        uint16 original_id; */
+/* IDL:        uint16 error; */
+/* IDL:        uint16 other_size; */
+/* IDL:        uint8 other_data[other_size]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_tsig_record_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_tsig_record_algorithm_name,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_time_prefix, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_time, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_fudge, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_mac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_mac_size, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_mac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_mac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_mac, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_original_id, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_error, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_other_size, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_tsig_record_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_tsig_record_other_data, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_tsig_record);
+       }
+       
+       offset = dns_dissect_element_tsig_record_algorithm_name(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_time_prefix(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_time(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_fudge(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_mac_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_mac(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_original_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_error(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_other_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_tsig_record_other_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dns_string name; */
+/* IDL:        dns_qclass rr_class; */
+/* IDL:        uint32 ttl; */
+/* IDL:        dns_string algorithm_name; */
+/* IDL:        uint16 time_prefix; */
+/* IDL:        uint32 time; */
+/* IDL:        uint16 fudge; */
+/* IDL:        uint16 original_id; */
+/* IDL:        uint16 error; */
+/* IDL:        uint16 other_size; */
+/* IDL:        uint8 other_data[other_size]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_fake_tsig_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_fake_tsig_rec_name,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_rr_class, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_ttl, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_algorithm_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_fake_tsig_rec_algorithm_name,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_time_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_time_prefix, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_time, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_fudge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_fudge, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_original_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_original_id, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_error, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_other_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_other_size, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_other_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_fake_tsig_rec_other_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dns_dns_fake_tsig_rec_other_data, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_fake_tsig_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_fake_tsig_rec);
+       }
+       
+       offset = dns_dissect_element_fake_tsig_rec_name(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_rr_class(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_ttl(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_algorithm_name(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_time_prefix(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_time(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_fudge(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_original_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_error(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_other_size(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_fake_tsig_rec_other_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
+/* IDL: [case(DNS_QTYPE_A)] [case(DNS_QTYPE_A)] ipv4address ipv4_record; */
+/* IDL: [case(DNS_QTYPE_NS)] [case(DNS_QTYPE_NS)] dns_string ns_record; */
+/* IDL: [case(DNS_QTYPE_CNAME)] [case(DNS_QTYPE_CNAME)] dns_string cname_record; */
+/* IDL: [case(DNS_QTYPE_SOA)] [case(DNS_QTYPE_SOA)] dns_soa_record soa_record; */
+/* IDL: [case(DNS_QTYPE_PTR)] [case(DNS_QTYPE_PTR)] dns_string ptr_record; */
+/* IDL: [case(DNS_QTYPE_HINFO)] [case(DNS_QTYPE_HINFO)] dns_hinfo_record hinfo_record; */
+/* IDL: [case(DNS_QTYPE_MX)] [case(DNS_QTYPE_MX)] dns_mx_record mx_record; */
+/* IDL: [case(DNS_QTYPE_TXT)] [case(DNS_QTYPE_TXT)] dns_txt_record txt_record; */
+/* IDL: [case(DNS_QTYPE_RP)] [case(DNS_QTYPE_RP)] dns_rp_record rp_record; */
+/* IDL: [case(DNS_QTYPE_AAAA)] [case(DNS_QTYPE_AAAA)] ipv6address ipv6_record; */
+/* IDL: [case(DNS_QTYPE_SRV)] [case(DNS_QTYPE_SRV)] dns_srv_record srv_record; */
+/* IDL: [case(DNS_QTYPE_OPT)] [case(DNS_QTYPE_OPT)] dns_opt_record opt_record; */
+/* IDL: [case(DNS_QTYPE_TSIG)] [case(DNS_QTYPE_TSIG)] dns_tsig_record tsig_record; */
+/* IDL: [case(DNS_QTYPE_TKEY)] [case(DNS_QTYPE_TKEY)] dns_tkey_record tkey_record; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+dns_dissect_element_rdata_ipv4_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ipv4_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_ns_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ns_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_cname_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_cname_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_soa_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_soa_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_ptr_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ptr_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_hinfo_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_hinfo_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_mx_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_mx_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_txt_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_txt_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_rp_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_rp_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_ipv6_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_ipv6address(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_ipv6_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_srv_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_srv_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_opt_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_opt_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_tsig_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_tsig_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_rdata_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_tkey_record(tvb,offset,pinfo,tree,drep,hf_dns_dns_rdata_tkey_record,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dns_rdata");
+               tree = proto_item_add_subtree(item, ett_dns_dns_rdata);
+       }
+
+       switch(level) {
+               case DNS_QTYPE_A:
+                       offset = dns_dissect_element_rdata_ipv4_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_NS:
+                       offset = dns_dissect_element_rdata_ns_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_CNAME:
+                       offset = dns_dissect_element_rdata_cname_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_SOA:
+                       offset = dns_dissect_element_rdata_soa_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_PTR:
+                       offset = dns_dissect_element_rdata_ptr_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_HINFO:
+                       offset = dns_dissect_element_rdata_hinfo_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_MX:
+                       offset = dns_dissect_element_rdata_mx_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_TXT:
+                       offset = dns_dissect_element_rdata_txt_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_RP:
+                       offset = dns_dissect_element_rdata_rp_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_AAAA:
+                       offset = dns_dissect_element_rdata_ipv6_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_SRV:
+                       offset = dns_dissect_element_rdata_srv_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_OPT:
+                       offset = dns_dissect_element_rdata_opt_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_TSIG:
+                       offset = dns_dissect_element_rdata_tsig_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_QTYPE_TKEY:
+                       offset = dns_dissect_element_rdata_tkey_record(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        dns_string name; */
+/* IDL:        dns_qtype rr_type; */
+/* IDL:        dns_qclass rr_class; */
+/* IDL:        uint32 ttl; */
+/* IDL:        uint16 length; */
+/* IDL:        [switch_is(rr_type)] dns_rdata rdata; */
+/* IDL:        DATA_BLOB unexpected; */
+/* IDL: } */
+
+static int
+dns_dissect_element_res_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_dns_string(tvb,offset,pinfo,tree,drep,hf_dns_dns_res_rec_name,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_res_rec_rr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type)
+{
+       offset = dns_dissect_enum_qtype(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_rr_type, rr_type);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_res_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_rr_class, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_res_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_ttl, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_res_rec_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_length, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_res_rec_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type)
+{
+       offset = dns_dissect_rdata(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_rdata, *rr_type);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_res_rec_unexpected(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_dns_dns_res_rec_unexpected, 0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_res_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint16 rr_type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_res_rec);
+       }
+       
+       offset = dns_dissect_element_res_rec_name(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_res_rec_rr_type(tvb, offset, pinfo, tree, drep, &rr_type);
+
+       offset = dns_dissect_element_res_rec_rr_class(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_res_rec_ttl(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_res_rec_length(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_res_rec_rdata(tvb, offset, pinfo, tree, drep, &rr_type);
+
+       offset = dns_dissect_element_res_rec_unexpected(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 id; */
+/* IDL:        dns_operation operation; */
+/* IDL:        uint16 qdcount; */
+/* IDL:        uint16 ancount; */
+/* IDL:        uint16 nscount; */
+/* IDL:        uint16 arcount; */
+/* IDL:        dns_name_question questions[qdcount]; */
+/* IDL:        dns_res_rec answers[ancount]; */
+/* IDL:        dns_res_rec nsrecs[nscount]; */
+/* IDL:        dns_res_rec additional[arcount]; */
+/* IDL: } */
+
+static int
+dns_dissect_element_name_packet_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_id, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_bitmap_operation(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_operation, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_qdcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_qdcount, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_ancount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_ancount, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_nscount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_nscount, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_arcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dns_dns_name_packet_arcount, 0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_questions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_questions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_name_question(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_questions,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_answers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_answers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_answers,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_nsrecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_nsrecs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_nsrecs,0);
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_additional(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dns_dissect_element_name_packet_additional_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_dns_dns_name_packet_additional,0);
+
+       return offset;
+}
+
+int
+dns_dissect_struct_name_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dns_dns_name_packet);
+       }
+       
+       offset = dns_dissect_element_name_packet_id(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_operation(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_qdcount(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_ancount(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_nscount(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_arcount(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_questions(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_answers(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_nsrecs(tvb, offset, pinfo, tree, drep);
+
+       offset = dns_dissect_element_name_packet_additional(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+dns_dissect_element_decode_dns_name_packet_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dns_dissect_struct_name_packet(tvb,offset,pinfo,tree,drep,hf_dns_decode_dns_name_packet_packet,0);
+
+       return offset;
+}
+
+/* IDL: void decode_dns_name_packet( */
+/* IDL: [in] dns_name_packet packet */
+/* IDL: ); */
+
+static int
+dns_dissect_decode_dns_name_packet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_dns_name_packet";
+       return offset;
+}
+
+static int
+dns_dissect_decode_dns_name_packet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_dns_name_packet";
+       offset = dns_dissect_element_decode_dns_name_packet_packet(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector dns_dissectors[] = {
+       { 0, "decode_dns_name_packet",
+          dns_dissect_decode_dns_name_packet_request, dns_dissect_decode_dns_name_packet_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_dns(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_dns_dns_hinfo_record_cpu,
+         { "Cpu", "dns.dns_hinfo_record.cpu", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_decode_dns_name_packet_packet,
+         { "Packet", "dns.decode_dns_name_packet.packet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_srv_record_target,
+         { "Target", "dns.dns_srv_record.target", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_soa_record_minimum,
+         { "Minimum", "dns.dns_soa_record.minimum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_srv_record_priority,
+         { "Priority", "dns.dns_srv_record.priority", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_FLAG_REPLY,
+         { "Dns Flag Reply", "dns.dns_operation.DNS_FLAG_REPLY", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_REPLY_tfs), ( 0x8000 ), NULL, HFILL }},
+       { &hf_dns_opnum,
+         { "Operation", "dns.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_srv_record_weight,
+         { "Weight", "dns.dns_srv_record.weight", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_FLAG_BROADCAST,
+         { "Dns Flag Broadcast", "dns.dns_operation.DNS_FLAG_BROADCAST", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_BROADCAST_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_algorithm_name,
+         { "Algorithm Name", "dns.dns_tsig_record.algorithm_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_inception,
+         { "Inception", "dns.dns_tkey_record.inception", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_rdata,
+         { "Rdata", "dns.dns_res_rec.rdata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_error,
+         { "Error", "dns.dns_tsig_record.error", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_tkey_record,
+         { "Tkey Record", "dns.dns_rdata.tkey_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_original_id,
+         { "Original Id", "dns.dns_tsig_record.original_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_arcount,
+         { "Arcount", "dns.dns_name_packet.arcount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_original_id,
+         { "Original Id", "dns.dns_fake_tsig_rec.original_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_time,
+         { "Time", "dns.dns_fake_tsig_rec.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_mx_record,
+         { "Mx Record", "dns.dns_rdata.mx_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_mac,
+         { "Mac", "dns.dns_tsig_record.mac", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_time_prefix,
+         { "Time Prefix", "dns.dns_tsig_record.time_prefix", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_length,
+         { "Length", "dns.dns_res_rec.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_soa_record,
+         { "Soa Record", "dns.dns_rdata.soa_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_error,
+         { "Error", "dns.dns_fake_tsig_rec.error", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_mx_record_preference,
+         { "Preference", "dns.dns_mx_record.preference", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_soa_record_retry,
+         { "Retry", "dns.dns_soa_record.retry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rp_record_mbox,
+         { "Mbox", "dns.dns_rp_record.mbox", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_ttl,
+         { "Ttl", "dns.dns_fake_tsig_rec.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_name,
+         { "Name", "dns.dns_fake_tsig_rec.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_fudge,
+         { "Fudge", "dns.dns_tsig_record.fudge", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_rr_type,
+         { "Rr Type", "dns.dns_res_rec.rr_type", FT_UINT16, BASE_DEC, VALS(dns_dns_qtype_vals), 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_RCODE,
+         { "Dns Rcode", "dns.dns_operation.DNS_RCODE", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_RCODE_tfs), ( 0x000F ), NULL, HFILL }},
+       { &hf_dns_dns_rdata_ipv4_record,
+         { "Ipv4 Record", "dns.dns_rdata.ipv4_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_other_data,
+         { "Other Data", "dns.dns_fake_tsig_rec.other_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_rr_class,
+         { "Rr Class", "dns.dns_fake_tsig_rec.rr_class", FT_UINT16, BASE_DEC, VALS(dns_dns_qclass_vals), 0, NULL, HFILL }},
+       { &hf_dns_dns_hinfo_record_os,
+         { "Os", "dns.dns_hinfo_record.os", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_additional,
+         { "Additional", "dns.dns_name_packet.additional", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_srv_record_port,
+         { "Port", "dns.dns_srv_record.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_qdcount,
+         { "Qdcount", "dns.dns_name_packet.qdcount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_data_data,
+         { "Data", "dns.dns_rdata_data.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_ptr_record,
+         { "Ptr Record", "dns.dns_rdata.ptr_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_algorithm_name,
+         { "Algorithm Name", "dns.dns_fake_tsig_rec.algorithm_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_rp_record,
+         { "Rp Record", "dns.dns_rdata.rp_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_soa_record_mname,
+         { "Mname", "dns.dns_soa_record.mname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_mac_size,
+         { "Mac Size", "dns.dns_tsig_record.mac_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_time_prefix,
+         { "Time Prefix", "dns.dns_fake_tsig_rec.time_prefix", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_ttl,
+         { "Ttl", "dns.dns_res_rec.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_soa_record_serial,
+         { "Serial", "dns.dns_soa_record.serial", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_time,
+         { "Time", "dns.dns_tsig_record.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_soa_record_rname,
+         { "Rname", "dns.dns_soa_record.rname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_FLAG_RECURSION_DESIRED,
+         { "Dns Flag Recursion Desired", "dns.dns_operation.DNS_FLAG_RECURSION_DESIRED", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_RECURSION_DESIRED_tfs), ( 0x0100 ), NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_error,
+         { "Error", "dns.dns_tkey_record.error", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_hinfo_record_os_length,
+         { "Os Length", "dns.dns_hinfo_record.os_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_other_data,
+         { "Other Data", "dns.dns_tsig_record.other_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_txt_record_length,
+         { "Length", "dns.dns_txt_record.length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_OPCODE,
+         { "Dns Opcode", "dns.dns_operation.DNS_OPCODE", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_OPCODE_tfs), ( 0x7800 ), NULL, HFILL }},
+       { &hf_dns_dns_soa_record_refresh,
+         { "Refresh", "dns.dns_soa_record.refresh", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_ipv6_record,
+         { "Ipv6 Record", "dns.dns_rdata.ipv6_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_FLAG_AUTHORITATIVE,
+         { "Dns Flag Authoritative", "dns.dns_operation.DNS_FLAG_AUTHORITATIVE", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_AUTHORITATIVE_tfs), ( 0x0400 ), NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_fudge,
+         { "Fudge", "dns.dns_fake_tsig_rec.fudge", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_opt_record,
+         { "Opt Record", "dns.dns_rdata.opt_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_tsig_record,
+         { "Tsig Record", "dns.dns_rdata.tsig_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_other_size,
+         { "Other Size", "dns.dns_tkey_record.other_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_nscount,
+         { "Nscount", "dns.dns_name_packet.nscount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_name,
+         { "Name", "dns.dns_res_rec.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_nsrecs,
+         { "Nsrecs", "dns.dns_name_packet.nsrecs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_expiration,
+         { "Expiration", "dns.dns_tkey_record.expiration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_hinfo_record_cpu_length,
+         { "Cpu Length", "dns.dns_hinfo_record.cpu_length", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_question_question_type,
+         { "Question Type", "dns.dns_name_question.question_type", FT_UINT16, BASE_DEC, VALS(dns_dns_qtype_vals), 0, NULL, HFILL }},
+       { &hf_dns_dns_txt_record_txt,
+         { "Txt", "dns.dns_txt_record.txt", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_other_data,
+         { "Other Data", "dns.dns_tkey_record.other_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_algorithm,
+         { "Algorithm", "dns.dns_tkey_record.algorithm", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_srv_record,
+         { "Srv Record", "dns.dns_rdata.srv_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_key_size,
+         { "Key Size", "dns.dns_tkey_record.key_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_key_data,
+         { "Key Data", "dns.dns_tkey_record.key_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_data_length,
+         { "Length", "dns.dns_rdata_data.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_questions,
+         { "Questions", "dns.dns_name_packet.questions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_fake_tsig_rec_other_size,
+         { "Other Size", "dns.dns_fake_tsig_rec.other_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_hinfo_record,
+         { "Hinfo Record", "dns.dns_rdata.hinfo_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_answers,
+         { "Answers", "dns.dns_name_packet.answers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_unexpected,
+         { "Unexpected", "dns.dns_res_rec.unexpected", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_soa_record_expire,
+         { "Expire", "dns.dns_soa_record.expire", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_mx_record_exchange,
+         { "Exchange", "dns.dns_mx_record.exchange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_ns_record,
+         { "Ns Record", "dns.dns_rdata.ns_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_question_question_class,
+         { "Question Class", "dns.dns_name_question.question_class", FT_UINT16, BASE_DEC, VALS(dns_dns_qclass_vals), 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_FLAG_RECURSION_AVAIL,
+         { "Dns Flag Recursion Avail", "dns.dns_operation.DNS_FLAG_RECURSION_AVAIL", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_RECURSION_AVAIL_tfs), ( 0x0080 ), NULL, HFILL }},
+       { &hf_dns_dns_opt_record_option_code,
+         { "Option Code", "dns.dns_opt_record.option_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tsig_record_other_size,
+         { "Other Size", "dns.dns_tsig_record.other_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_cname_record,
+         { "Cname Record", "dns.dns_rdata.cname_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_operation_DNS_FLAG_TRUNCATION,
+         { "Dns Flag Truncation", "dns.dns_operation.DNS_FLAG_TRUNCATION", FT_BOOLEAN, 16, TFS(&dns_operation_DNS_FLAG_TRUNCATION_tfs), ( 0x0200 ), NULL, HFILL }},
+       { &hf_dns_dns_name_question_name,
+         { "Name", "dns.dns_name_question.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_rdata_txt_record,
+         { "Txt Record", "dns.dns_rdata.txt_record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_operation,
+         { "Operation", "dns.dns_name_packet.operation", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_id,
+         { "Id", "dns.dns_name_packet.id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_res_rec_rr_class,
+         { "Rr Class", "dns.dns_res_rec.rr_class", FT_UINT16, BASE_DEC, VALS(dns_dns_qclass_vals), 0, NULL, HFILL }},
+       { &hf_dns_dns_rp_record_txt,
+         { "Txt", "dns.dns_rp_record.txt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_opt_record_option_length,
+         { "Option Length", "dns.dns_opt_record.option_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_opt_record_option_data,
+         { "Option Data", "dns.dns_opt_record.option_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_name_packet_ancount,
+         { "Ancount", "dns.dns_name_packet.ancount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dns_dns_tkey_record_mode,
+         { "Mode", "dns.dns_tkey_record.mode", FT_UINT16, BASE_DEC, VALS(dns_dns_tkey_mode_vals), 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_dns,
+               &ett_dns_dns_operation,
+               &ett_dns_dns_name_question,
+               &ett_dns_dns_rdata_data,
+               &ett_dns_dns_soa_record,
+               &ett_dns_dns_hinfo_record,
+               &ett_dns_dns_mx_record,
+               &ett_dns_dns_txt_record,
+               &ett_dns_dns_rp_record,
+               &ett_dns_dns_srv_record,
+               &ett_dns_dns_opt_record,
+               &ett_dns_dns_tkey_record,
+               &ett_dns_dns_tsig_record,
+               &ett_dns_dns_fake_tsig_rec,
+               &ett_dns_dns_rdata,
+               &ett_dns_dns_res_rec,
+               &ett_dns_dns_name_packet,
+       };
+
+       proto_dcerpc_dns = proto_register_protocol("DNS records", "DNS", "dns");
+       proto_register_field_array(proto_dcerpc_dns, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_dns(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_dns, ett_dcerpc_dns,
+               &uuid_dcerpc_dns, ver_dcerpc_dns,
+               dns_dissectors, hf_dns_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dns.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dns.h
new file mode 100644 (file)
index 0000000..1eff537
--- /dev/null
@@ -0,0 +1,128 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dns.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dns.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_DNS_H
+#define __PACKET_DCERPC_DNS_H
+
+#define DNS_SERVICE_PORT       ( 53 )
+
+int dns_dissect_bitmap_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNS_OPCODE_QUERY ((0x0<<11))
+#define DNS_OPCODE_IQUERY ((0x1<<11))
+#define DNS_OPCODE_STATUS ((0x2<<11))
+#define DNS_OPCODE_UPDATE ((0x5<<11))
+#define DNS_OPCODE_RELEASE ((0x6<<11))
+#define DNS_OPCODE_WACK ((0x7<<11))
+#define DNS_OPCODE_REFRESH ((0x8<<11))
+#define DNS_OPCODE_REFRESH2 ((0x9<<11))
+#define DNS_OPCODE_MULTI_HOME_REG ((0xf<<11))
+extern const value_string dns_dns_opcode_vals[];
+int dns_dissect_enum_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_RCODE_OK (0x00)
+#define DNS_RCODE_FORMERR (0x01)
+#define DNS_RCODE_SERVFAIL (0x02)
+#define DNS_RCODE_NXDOMAIN (0x03)
+#define DNS_RCODE_NOTIMP (0x04)
+#define DNS_RCODE_REFUSED (0x05)
+#define DNS_RCODE_YXDOMAIN (0x06)
+#define DNS_RCODE_YXRRSET (0x07)
+#define DNS_RCODE_NXRRSET (0x08)
+#define DNS_RCODE_NOTAUTH (0x09)
+#define DNS_RCODE_NOTZONE (0x0A)
+#define DNS_RCODE_BADSIG (0x10)
+#define DNS_RCODE_BADKEY (0x11)
+#define DNS_RCODE_BADTIME (0x12)
+#define DNS_RCODE_BADMODE (0x13)
+#define DNS_RCODE_BADNAME (0x14)
+#define DNS_RCODE_BADALG (0x15)
+extern const value_string dns_dns_rcode_vals[];
+int dns_dissect_enum_rcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_QCLASS_IN (0x0001)
+#define DNS_QCLASS_NONE (0x00FE)
+#define DNS_QCLASS_ANY (0x00FF)
+extern const value_string dns_dns_qclass_vals[];
+int dns_dissect_enum_qclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_QTYPE_ZERO (0x0000)
+#define DNS_QTYPE_A (0x0001)
+#define DNS_QTYPE_NS (0x0002)
+#define DNS_QTYPE_MD (0x0003)
+#define DNS_QTYPE_MF (0x0004)
+#define DNS_QTYPE_CNAME (0x0005)
+#define DNS_QTYPE_SOA (0x0006)
+#define DNS_QTYPE_MB (0x0007)
+#define DNS_QTYPE_MG (0x0008)
+#define DNS_QTYPE_MR (0x0009)
+#define DNS_QTYPE_NULL (0x000A)
+#define DNS_QTYPE_WKS (0x000B)
+#define DNS_QTYPE_PTR (0x000C)
+#define DNS_QTYPE_HINFO (0x000D)
+#define DNS_QTYPE_MINFO (0x000E)
+#define DNS_QTYPE_MX (0x000F)
+#define DNS_QTYPE_TXT (0x0010)
+#define DNS_QTYPE_RP (0x0011)
+#define DNS_QTYPE_AFSDB (0x0012)
+#define DNS_QTYPE_X25 (0x0013)
+#define DNS_QTYPE_ISDN (0x0014)
+#define DNS_QTYPE_RT (0x0015)
+#define DNS_QTYPE_SIG (0x0018)
+#define DNS_QTYPE_KEY (0x0019)
+#define DNS_QTYPE_AAAA (0x001C)
+#define DNS_QTYPE_LOC (0x001D)
+#define DNS_QTYPE_NXT (0x001E)
+#define DNS_QTYPE_NETBIOS (0x0020)
+#define DNS_QTYPE_SRV (0x0021)
+#define DNS_QTYPE_ATMA (0x0022)
+#define DNS_QTYPE_NAPTR (0x0023)
+#define DNS_QTYPE_DNAME (0x0027)
+#define DNS_QTYPE_OPT (0x0029)
+#define DNS_QTYPE_DS (0x002B)
+#define DNS_QTYPE_RRSIG (0x002E)
+#define DNS_QTYPE_NSEC (0x002F)
+#define DNS_QTYPE_DNSKEY (0x0030)
+#define DNS_QTYPE_DHCID (0x0031)
+#define DNS_QTYPE_TKEY (0x00F9)
+#define DNS_QTYPE_TSIG (0x00FA)
+#define DNS_QTYPE_AXFR (0x00FC)
+#define DNS_QTYPE_MAILB (0x00FD)
+#define DNS_QTYPE_MAILA (0x00FE)
+#define DNS_QTYPE_ALL (0x00FF)
+extern const value_string dns_dns_qtype_vals[];
+int dns_dissect_enum_qtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_TKEY_MODE_NULL (0x0000)
+#define DNS_TKEY_MODE_SERVER (0x0001)
+#define DNS_TKEY_MODE_DH (0x0002)
+#define DNS_TKEY_MODE_GSSAPI (0x0003)
+#define DNS_TKEY_MODE_CLIENT (0x0004)
+#define DNS_TKEY_MODE_DELETE (0x0005)
+#define DNS_TKEY_MODE_LAST (0xFFFF)
+extern const value_string dns_dns_tkey_mode_vals[];
+int dns_dissect_enum_tkey_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dns_dissect_struct_name_question(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_soa_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_hinfo_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_mx_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_txt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_rp_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_srv_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_opt_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_tkey_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_tsig_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_fake_tsig_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_res_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dns_dissect_struct_name_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_DNS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.c
new file mode 100644 (file)
index 0000000..e2963c4
--- /dev/null
@@ -0,0 +1,15142 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dnsserver.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dnsserver.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dnsserver.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_dnsserver = -1;
+static gint ett_dnsserver_DNS_RPC_BUFFER = -1;
+static gint ett_dnsserver_DNS_RPC_UTF8_STRING_LIST = -1;
+static gint ett_dnsserver_DNS_RPC_NAME_AND_PARAM = -1;
+static gint ett_dnsserver_DNS_RPC_NAME = -1;
+static gint ett_dnsserver_DNS_RPC_NODE = -1;
+static gint ett_dnsserver_DNS_RPC_RECORD_SOA = -1;
+static gint ett_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE = -1;
+static gint ett_dnsserver_DNS_RPC_RECORD_STRING = -1;
+static gint ett_dnsserver_DNS_RPC_RECORD_SRV = -1;
+static gint ett_dnsserver_DNS_RPC_DATA = -1;
+static gint ett_dnsserver_DNS_RPC_RECORD = -1;
+static gint ett_dnsserver_DNS_RPC_RECORD_BUF = -1;
+static gint ett_dnsserver_IP4_ARRAY = -1;
+static gint ett_dnsserver_DNS_ADDR = -1;
+static gint ett_dnsserver_DNS_ADDR_ARRAY = -1;
+static gint ett_dnsserver_DNS_RPC_IP_VALIDATE = -1;
+static gint ett_dnsserver_DNS_RPC_SERVER_INFO_W2K = -1;
+static gint ett_dnsserver_DNS_EXTENSION = -1;
+static gint ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN = -1;
+static gint ett_dnsserver_DNS_RPC_DP_FLAGS = -1;
+static gint ett_dnsserver_DNS_RPC_DP_REPLICA = -1;
+static gint ett_dnsserver_DNS_RPC_DP_INFO = -1;
+static gint ett_dnsserver_DNS_RPC_DP_ENUM = -1;
+static gint ett_dnsserver_DNS_RPC_DP_LIST = -1;
+static gint ett_dnsserver_DNS_RPC_ENLIST_DP = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_CHANGE_DP = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_FLAGS = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_LIST_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_LIST_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_INFO_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_INFO_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_DATABASE_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN = -1;
+static gint ett_dnsserver_DNS_RPC_ZONE_EXPORT_INFO = -1;
+static gint ett_dnsserver_DNS_RPC_ENUM_ZONES_FILTER = -1;
+static gint ett_dnsserver_DNS_RPC_FORWARDERS_W2K = -1;
+static gint ett_dnsserver_DNS_RPC_FORWARDERS_DOTNET = -1;
+static gint ett_dnsserver_DNS_RPC_FORWARDERS_LONGHORN = -1;
+static gint ett_dnsserver_DNS_RPC_AUTOCONFIGURE = -1;
+static gint ett_dnsserver_DNS_EVENT_LOG_TYPES = -1;
+static gint ett_dnsserver_DNS_SELECT_FLAGS = -1;
+static gint ett_dnsserver_DNSSRV_STAT_HEADER = -1;
+static gint ett_dnsserver_DNSSRV_STAT = -1;
+static gint ett_dnsserver_DNSSRV_RPC_UNION = -1;
+static gint ett_dnsserver_DNS_RPC_RECORDS = -1;
+static gint ett_dnsserver_DNS_RPC_RECORDS_ARRAY = -1;
+
+
+/* Header field declarations */
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwForwardTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fDsAvailable = -1;
+static gint hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_DOMAIN_DEFAULT = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAutoCacheUpdate = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_BUFFER_Buffer = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_timestamp = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fForwarderSlave = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Buffer = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_Flags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved2 = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwMaxCacheTtl = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fDsIntegrated = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneListW2K = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved2 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_BUF_wContextLength = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLogLevel = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwReplicaCount = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartition = -1;
+static gint hf_dnsserver_DnssrvOperation_dwContext = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DnssrvQuery2_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fWriteAuthorityNs = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_dwChildCount = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray = -1;
+static gint hf_dnsserver_DnssrvQuery_ppData = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE_wPreference = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLogLevel = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoW2K = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAutoReverseZones = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_IpValidate = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fReserveArray = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionEnum = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_AddrArray = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_dwRefresh = -1;
+static gint hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString = -1;
+static gint hf_dnsserver_DNSSRV_STAT_HEADER_fClear = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsPollingInterval = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_wType = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_ppDataOut = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5 = -1;
+static gint hf_dnsserver_DnssrvQuery_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fReadOnlyZone = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension1 = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_dwClientVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_cAddressAnswerLimit = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsForestVersion = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Zone = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved6 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fForwardDelegations = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fSecureResponses = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_PAUSED = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_dwTtlSeconds = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDebugLevel = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwMaxCacheTtl = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwForwardTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding = -1;
+static gint hf_dnsserver_DnssrvOperation_pData = -1;
+static gint hf_dnsserver_DnssrvOperation_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fDsIntegrated = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAdminConfigured = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_pdwTypeOut = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcProtocol = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwZoneType = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ForwardersW2K = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Secondaries = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fShutdown = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_pszOperation = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_String = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved3 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFileParsing = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseDatabase = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fPaused = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoW2K = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_dwSerial = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_data = -1;
+static gint hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwAutoConfigFlags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsPollingInterval = -1;
+static gint hf_dnsserver_DnssrvOperation_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_NODE_wLength = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fSecureResponses = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AGING = -1;
+static gint hf_dnsserver_DnssrvQuery_pszZone = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_DatabaseW2K = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved3 = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_dwSettingFlags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fBindSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry = -1;
+static gint hf_dnsserver_DNSSRV_STAT_Buffer = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6 = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_pDeleteRecord = -1;
+static gint hf_dnsserver_DNS_ADDR_MaxSa = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval = -1;
+static gint hf_dnsserver_DnssrvQuery2_pszOperation = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_Family = -1;
+static gint hf_dnsserver_DnssrvOperation2_pszOperation = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_ZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension2 = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_SHUTDOWN = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fWriteAuthorityNs = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_mx = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_W2K_Version = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseNbstat = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulSoaCheck = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfo = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_pwszReserved = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwEventLogLevel = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsDomainVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestName = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SRV_nameTarget = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwForwardTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_ENLIST_DP_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipNotify = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fBackgroundLoadInProgress = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionTimeout = -1;
+static gint hf_dnsserver_IP4_ARRAY_AddrArray = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SRV_wWeight = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseNbstat = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_aipForwarders = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateW2K = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_MaxCount = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved1 = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord_pwszServerName = -1;
+static gint hf_dnsserver_DnssrvOperation2_dwSettingFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwFilter = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pszNodeName = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Database = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_DP_ENUM_dwFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulSoaCheck = -1;
+static gint hf_dnsserver_DNS_RPC_NAME_AND_PARAM_dwParam = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_AUTOCREATED = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseWins = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pszStartChild = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_txt = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwScavengingInterval = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Utf8StringList = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_UNSECURE = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_pszDpDn = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_SUCCESS = -1;
+static gint hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_ENLISTED = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fAging = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAutoCacheUpdate = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_Tag = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fWriteAuthorityNs = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_dwReserved0 = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ServerInfo = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszDpFqdn = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwDpFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszDataFile = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved4 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwDpFlags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAutoCacheUpdate = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pszNodeName = -1;
+static gint hf_dnsserver_DNS_RPC_ENLIST_DP_pszDpFqdn = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_pszNodeName = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionList = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_SecondariesW2K = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pwszServerName = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_wRecordType = -1;
+static gint hf_dnsserver_DnssrvQuery2_dwSettingFlags = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Forwarders = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DnssrvQuery_pszOperation = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_pDataIn = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_Reserved1 = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SRV_wPriority = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fBindSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_DP_REPLICA_pszReplicaDn = -1;
+static gint hf_dnsserver_DnssrvQuery_pdwTypeId = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_IpArray = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_REVERSE = -1;
+static gint hf_dnsserver_DNS_RPC_IP_VALIDATE_pszContextName = -1;
+static gint hf_dnsserver_DNS_RPC_DP_ENUM_dwReserved0 = -1;
+static gint hf_dnsserver_DnssrvQuery2_ppData = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fShutdown = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_fNotifyLevel = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_wRecordType = -1;
+static gint hf_dnsserver_DnssrvOperation2_pData = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAging = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pszZone = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_dwTypeIn = -1;
+static gint hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fShutdown = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_dwClientVersion = -1;
+static gint hf_dnsserver_DNS_RPC_NODE_dwFlags = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE_nameExchange = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_STRING_count = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwDpFlags = -1;
+static gint hf_dnsserver_DNS_RPC_DP_ENUM_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwForwardTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwAvailForScavengeTime = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwAvailForScavengeTime = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwDpFlags = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwDpFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_MatchFlag = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultNoRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwEventLogLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulXfr = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pszStartChild = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_WordReserved = -1;
+static gint hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_FOREST_DEFAULT = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipNotify = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord_pDeleteRecord = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fBindSecondaries = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotNet = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_DSINTEGRATED = -1;
+static gint hf_dnsserver_DNS_RPC_ENLIST_DP_dwOperation = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLocalNetPriorityNetMask = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_dwFlags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ForwardersDotNet = -1;
+static gint hf_dnsserver_DNS_RPC_DP_ENUM_pszDpFqdn = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_ZoneAdministratorEmail = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AUTOCREATED = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SRV_wPort = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4 = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_dwClientVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved2 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension4 = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_Reserved2 = -1;
+static gint hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved7 = -1;
+static gint hf_dnsserver_DNS_RPC_BUFFER_dwLength = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_srv = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Dword = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_fSelectFlag = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter = -1;
+static gint hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_ERROR_TYPE = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved1 = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_dwSettingFlags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_Flags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsForestVersion = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fPaused = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition = -1;
+static gint hf_dnsserver_DNS_RPC_DP_LIST_dwDpCount = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDebugLevel = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_dwFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwReserved0 = -1;
+static gint hf_dnsserver_DNSSRV_STAT_HEADER_fReserved = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pdwBufferLength = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_wLength = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneList = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_fDsIntegrated = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension5 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLastScavengeTime = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwZoneCount = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_pAddRecord = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_BUF_rec = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrResult = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fBootMethod = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_Version = -1;
+static gint hf_dnsserver_DnssrvOperation2_dwClientVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDomainVersion = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_NamePrimaryServer = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_W2K_dwForwardTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwNameCheckFlag = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAllowUpdate = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord_pAddRecord = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fDsAvailable = -1;
+static gint hf_dnsserver_DNS_RPC_IP_VALIDATE_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_DP_LIST_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulXfr = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_dwMinimumTtl = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fSecureSecondaries = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord_pszNodeName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fBootMethod = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRpcProtocol = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_dwReserved0 = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_pdwTypeOut = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwNameCheckFlag = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDefaultRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_EnumZonesFilter = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneW2K = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwFlags = -1;
+static gint hf_dnsserver_DNS_RPC_NODE_dwChildCount = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_ipv4 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved1 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fQueuedForBackgroundLoad = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved5 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipMasters = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_AUTOCONFIGURE_pszNewDomainName = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fDsIntegrated = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pBuffer = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_fSecureSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pExtensions = -1;
+static gint hf_dnsserver_DNS_RPC_NODE_wRecordCount = -1;
+static gint hf_dnsserver_DnssrvQuery2_pszZone = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fRoundRobin = -1;
+static gint hf_dnsserver_DNS_RPC_NAME_len = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Null = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved4 = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pdwBufferLength = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLogFileMaxSize = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_cAddressAnswerLimit = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAutoReverseZones = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_dwTypeIn = -1;
+static gint hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_pszStrings = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_pszDpFqdn = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_dnsNodeName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLastScavengeTime = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwNoRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fForwardDelegations = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_dwReserved = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension3 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fBootMethod = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwAvailForScavengeTime = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_dwExpire = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRecursionRetry = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszDsContainer = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_dwZoneCount = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fPaused = -1;
+static gint hf_dnsserver_DNS_EXTENSION_extension = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwScavengingInterval = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_NameAndParam = -1;
+static gint hf_dnsserver_DnssrvComplexOperation_pDataIn = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneExport = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAging = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8 = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_ReplicaArray = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fDsAvailable = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAging = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_W2K_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwState = -1;
+static gint hf_dnsserver_DNS_RPC_IP_VALIDATE_dwReserved1 = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_dwRetry = -1;
+static gint hf_dnsserver_DNS_ADDR_DnsAddrUserDword = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwScavengingInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipForwarders = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsing = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_W2K_ZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionRetry = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_hinfo = -1;
+static gint hf_dnsserver_DNS_RPC_DP_LIST_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DnssrvOperation_pszOperation = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_IP_VALIDATE_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultNoRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fNoRecursion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAdminConfigured = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fLoadExisting = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_WideString = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fLoadExisting = -1;
+static gint hf_dnsserver_DNSSRV_STAT_HEADER_StatId = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fRoundRobin = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszZoneName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile = -1;
+static gint hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_LEGACY = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fReverse = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pszFilterStop = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_ppDataOut = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwLogLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwFlags = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_Stats = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwReserved = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fLocalNetPriority = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fReverse = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreate = -1;
+static gint hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_WARNING_TYPE = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_SOA_dwSerialNo = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved2 = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_dwSettingFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_W2K_pszZoneName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved4 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn = -1;
+static gint hf_dnsserver_DnssrvQuery2_dwClientVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwNoRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_STRING_str = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries = -1;
+static gint hf_dnsserver_DNS_RPC_DP_LIST_DpArray = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwFlags = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pszFilterStart = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszZoneName = -1;
+static gint hf_dnsserver_DnssrvUpdateRecord2_pwszServerName = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_AddrCount = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_name = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_fRecurseAfterForwarding = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_READONLY = -1;
+static gint hf_dnsserver_DnssrvOperation2_dwContext = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_AutoConfigure = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fNoRecursion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_ipv6 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_fDsIntegrated = -1;
+static gint hf_dnsserver_DNS_RPC_DP_ENUM_dwZoneCount = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateDotNet = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_dwZoneCount = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_ARRAY_rec = -1;
+static gint hf_dnsserver_DNS_RPC_NAME_str = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAdminConfigured = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fSecureResponses = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAllowUpdate = -1;
+static gint hf_dnsserver_DnssrvOperation2_dwTypeId = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_ZoneArray = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLocalNetPriorityNetMask = -1;
+static gint hf_dnsserver_DNS_ADDR_ARRAY_AddrArray = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_fSelectFlag = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fNoRecursion = -1;
+static gint hf_dnsserver_DnssrvOperation2_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAutoCreated = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pBuffer_ = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_ARRAY_count = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAutoReverseZones = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwReserveArray = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwMaxCacheTtl = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseWins = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fLoadExisting = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved3 = -1;
+static gint hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszReserved = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAging = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_pszFileName = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwForwarderTimeout = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_soa = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fRoundRobin = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseDatabase = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_SECURE = -1;
+static gint hf_dnsserver_DNSSRV_STAT_Header = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pwszServerName = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_cAddressAnswerLimit = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer = -1;
+static gint hf_dnsserver_DnssrvOperation2_pszZone = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pszFilterStop = -1;
+static gint hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DnssrvEnumRecords_pBuffer = -1;
+static gint hf_dnsserver_DNS_RPC_IP_VALIDATE_aipValidateAddrs = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC = -1;
+static gint hf_dnsserver_IP4_ARRAY_AddrCount = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRpcProtocol = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwFlags = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseNbstat = -1;
+static gint hf_dnsserver_DNS_RPC_IP_VALIDATE_dwContext = -1;
+static gint hf_dnsserver_werror = -1;
+static gint hf_dnsserver_DnssrvQuery2_pdwTypeId = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_EnlistDirectoryPartition = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fReverse = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fNotifyLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved1 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwZoneType = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved = -1;
+static gint hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_INFORMATION_TYPE = -1;
+static gint hf_dnsserver_DNS_RPC_DATA_ptr = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseDatabase = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAutoCreated = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_W2K_Flags = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLogFileMaxSize = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAging = -1;
+static gint hf_dnsserver_DNS_RPC_NAME_AND_PARAM_pszNodeName = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRecursionTimeout = -1;
+static gint hf_dnsserver_DnssrvOperation_dwTypeId = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAllowUpdate = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseWins = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7 = -1;
+static gint hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA = -1;
+static gint hf_dnsserver_DNS_RPC_ENLIST_DP_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0 = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipMasters = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwNoRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDsaVersion = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fForwarderSlave = -1;
+static gint hf_dnsserver_DnssrvComplexOperation2_pszOperation = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pBuffer_ = -1;
+static gint hf_dnsserver_DNS_RPC_FORWARDERS_W2K_aipForwarders = -1;
+static gint hf_dnsserver_DNS_RPC_NODE_dnsNodeName = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fLocalNetPriority = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_data_ = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_SecondariesDotNet = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultRefreshInterval = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved8 = -1;
+static gint hf_dnsserver_DNSSRV_STAT_HEADER_wLength = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_dwTimeStamp = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved3 = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDebugLevel = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_dwRpcStructureVersion = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fLocalNetPriority = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_records = -1;
+static gint hf_dnsserver_DNS_RPC_DP_INFO_pszCrDn = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fForwardDelegations = -1;
+static gint hf_dnsserver_DNS_RPC_RECORDS_wRecordCount = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwNameCheckFlag = -1;
+static gint hf_dnsserver_DNS_RPC_RECORD_wDataLength = -1;
+static gint hf_dnsserver_DnssrvEnumRecords2_pszFilterStart = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved4 = -1;
+static gint hf_dnsserver_opnum = -1;
+static gint hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition = -1;
+static gint hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_DELETED = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAutoCreated = -1;
+static gint hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrAttempt = -1;
+static gint hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwReserved1 = -1;
+static gint hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_dwCount = -1;
+static gint hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoDotNet = -1;
+
+static gint proto_dcerpc_dnsserver = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_dnsserver = {
+       0x50abc2a4, 0x574d, 0x40b3,
+       { 0x9d, 0x66, 0xee, 0x4f, 0xd5, 0xfb, 0xa0, 0x76 }
+};
+static guint16 ver_dcerpc_dnsserver = 5;
+
+const value_string dnsserver_DNS_RPC_PROTOCOLS_vals[] = {
+       { DNS_RPC_USE_TCPIP, "DNS_RPC_USE_TCPIP" },
+       { DNS_RPC_USE_NAMED_PIPE, "DNS_RPC_USE_NAMED_PIPE" },
+       { DNS_RPC_USE_LPC, "DNS_RPC_USE_LPC" },
+       { DNS_RPC_USE_ALL_PROTOCOLS, "DNS_RPC_USE_ALL_PROTOCOLS" },
+{ 0, NULL }
+};
+const value_string dnsserver_DNS_RPC_CLIENT_VERSION_vals[] = {
+       { DNS_CLIENT_VERSION_W2K, "DNS_CLIENT_VERSION_W2K" },
+       { DNS_CLIENT_VERSION_DOTNET, "DNS_CLIENT_VERSION_DOTNET" },
+       { DNS_CLIENT_VERSION_LONGHORN, "DNS_CLIENT_VERSION_LONGHORN" },
+{ 0, NULL }
+};
+static int dnsserver_dissect_element_DNS_RPC_BUFFER_dwLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_BUFFER_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_BUFFER_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_dwCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_dwParam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NAME_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NAME_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NAME_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NODE_wLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NODE_wRecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NODE_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NODE_dwChildCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_NODE_dnsNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwSerialNo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwRefresh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwExpire(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwMinimumTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_NamePrimaryServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SOA_ZoneAdministratorEmail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_NAME_PREFERENCE_wPreference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_NAME_PREFERENCE_nameExchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_STRING_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_STRING_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_STRING_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wWeight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wPort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_SRV_nameTarget(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_ipv4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_soa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_hinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_mx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_ipv6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_srv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_wDataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_wType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *wType);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_dwSerial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_dwTtlSeconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_dwTimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *wType);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *wType);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_BUF_wContextLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORD_BUF_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dnsserver_DNS_IPVAL_CONTEXT_vals[] = {
+       { DNS_IPVAL_DNS_SERVERS, "DNS_IPVAL_DNS_SERVERS" },
+       { DNS_IPVAL_DNS_ROOTHINTS, "DNS_IPVAL_DNS_ROOTHINTS" },
+       { DNS_IPVAL_DNS_FORWARDERS, "DNS_IPVAL_DNS_FORWARDERS" },
+       { DNS_IPVAL_DNS_ZONE_MASTERS, "DNS_IPVAL_DNS_ZONE_MASTERS" },
+       { DNS_IPVAL_DNS_DELEGATIONS, "DNS_IPVAL_DNS_DELEGATIONS" },
+{ 0, NULL }
+};
+const value_string dnsserver_DNS_IP_VALIDATE_RETURN_FLAGS_vals[] = {
+       { ERROR_SUCCESS, "ERROR_SUCCESS" },
+       { DNS_IPVAL_INVALID_ADDR, "DNS_IPVAL_INVALID_ADDR" },
+       { DNS_IPVAL_UNREACHABLE, "DNS_IPVAL_UNREACHABLE" },
+       { DNS_IPVAL_NO_RESPONSE, "DNS_IPVAL_NO_RESPONSE" },
+       { DNS_IPVAL_NOT_AUTH_FOR_ZONE, "DNS_IPVAL_NOT_AUTH_FOR_ZONE" },
+       { DNS_IPVAL_UNKNOWN_ERROR, "DNS_IPVAL_UNKNOWN_ERROR" },
+       { DNS_IPVAL_NO_TCP, "DNS_IPVAL_NO_TCP" },
+{ 0, NULL }
+};
+static int dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_IP4_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_MaxSa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_MaxCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_Tag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_Family(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_WordReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_MatchFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_pszContextName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_pszContextName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_aipValidateAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_aipValidateAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dnsserver_DNS_BOOT_METHOD_vals[] = {
+       { DNS_BOOT_METHOD_UNINITIALIZED, "DNS_BOOT_METHOD_UNINITIALIZED" },
+       { DNS_BOOT_METHOD_FILE, "DNS_BOOT_METHOD_FILE" },
+       { DNS_BOOT_METHOD_REGISTRY, "DNS_BOOT_METHOD_REGISTRY" },
+       { DNS_BOOT_METHOD_DIRECTORY, "DNS_BOOT_METHOD_DIRECTORY" },
+{ 0, NULL }
+};
+const value_string dnsserver_DNS_NAME_CHECK_FLAG_vals[] = {
+       { DNS_ALLOW_RFC_NAMES_ONLY, "DNS_ALLOW_RFC_NAMES_ONLY" },
+       { DNS_ALLOW_NONRFC_NAMES, "DNS_ALLOW_NONRFC_NAMES" },
+       { DNS_ALLOW_MULTIBYTE_NAMES, "DNS_ALLOW_MULTIBYTE_NAMES" },
+       { DNS_ALLOW_ALL_NAMES, "DNS_ALLOW_ALL_NAMES" },
+{ 0, NULL }
+};
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fBootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszDsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszDsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwNameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_cAddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwMaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fNoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fSecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fRoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fBindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fWriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_EXTENSION_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_EXTENSION_extension_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fBootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwNameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_cAddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwMaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLocalNetPriorityNetMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLastScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwEventLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLogFileMaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsForestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDomainVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fNoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fSecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fRoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fBindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fWriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fBootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwNameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_cAddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwMaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLocalNetPriorityNetMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLastScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwEventLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLogFileMaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsForestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDomainVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDsaVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fNoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fSecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fRoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fBindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fWriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_AUTOCREATED_tfs = {
+   "DNS_DP_AUTOCREATED is SET",
+   "DNS_DP_AUTOCREATED is NOT SET",
+};
+static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_LEGACY_tfs = {
+   "DNS_DP_LEGACY is SET",
+   "DNS_DP_LEGACY is NOT SET",
+};
+static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_DOMAIN_DEFAULT_tfs = {
+   "DNS_DP_DOMAIN_DEFAULT is SET",
+   "DNS_DP_DOMAIN_DEFAULT is NOT SET",
+};
+static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_FOREST_DEFAULT_tfs = {
+   "DNS_DP_FOREST_DEFAULT is SET",
+   "DNS_DP_FOREST_DEFAULT is NOT SET",
+};
+static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_ENLISTED_tfs = {
+   "DNS_DP_ENLISTED is SET",
+   "DNS_DP_ENLISTED is NOT SET",
+};
+static const true_false_string DNS_RPC_DP_FLAGS_DNS_DP_DELETED_tfs = {
+   "DNS_DP_DELETED is SET",
+   "DNS_DP_DELETED is NOT SET",
+};
+static int dnsserver_dissect_element_DNS_RPC_DP_REPLICA_pszReplicaDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_REPLICA_pszReplicaDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dnsserver_DNS_DP_STATE_vals[] = {
+       { DNS_DP_OKAY, "DNS_DP_OKAY" },
+       { DNS_DP_STATE_REPL_INCOMING, "DNS_DP_STATE_REPL_INCOMING" },
+       { DNS_DP_STATE_REPL_OUTGOING, "DNS_DP_STATE_REPL_OUTGOING" },
+       { DNS_DP_STATE_UNKNOWN, "DNS_DP_STATE_UNKNOWN" },
+{ 0, NULL }
+};
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pszCrDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pszCrDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReplicaCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_ENUM_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_ENUM_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_LIST_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_LIST_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_LIST_dwDpCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENLIST_DP_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENLIST_DP_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals[] = {
+       { DNS_ZONE_SECSECURE_NO_SECURITY, "DNS_ZONE_SECSECURE_NO_SECURITY" },
+       { DNS_ZONE_SECSECURE_NS_ONLY, "DNS_ZONE_SECSECURE_NS_ONLY" },
+       { DNS_ZONE_SECSECURE_LIST_ONLY, "DNS_ZONE_SECSECURE_LIST_ONLY" },
+       { DNS_ZONE_SECSECURE_NO_XFER, "DNS_ZONE_SECSECURE_NO_XFER" },
+{ 0, NULL }
+};
+const value_string dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals[] = {
+       { DNS_ZONE_NOTIFY_OFF, "DNS_ZONE_NOTIFY_OFF" },
+       { DNS_ZONE_NOTIFY_ALL_SECONDARIES, "DNS_ZONE_NOTIFY_ALL_SECONDARIES" },
+       { DNS_ZONE_NOTIFY_LIST_ONLY, "DNS_ZONE_NOTIFY_LIST_ONLY" },
+{ 0, NULL }
+};
+const value_string dnsserver_DNS_ZONE_REQUEST_FILTERS_vals[] = {
+       { DNS_ZONE_REQUEST_PRIMARY, "DNS_ZONE_REQUEST_PRIMARY" },
+       { DNS_ZONE_REQUEST_SECONDARY, "DNS_ZONE_REQUEST_SECONDARY" },
+       { DNS_ZONE_REQUEST_CACHE, "DNS_ZONE_REQUEST_CACHE" },
+       { DNS_ZONE_REQUEST_AUTO, "DNS_ZONE_REQUEST_AUTO" },
+       { DNS_ZONE_REQUEST_FORWARD, "DNS_ZONE_REQUEST_FORWARD" },
+       { DNS_ZONE_REQUEST_REVERSE, "DNS_ZONE_REQUEST_REVERSE" },
+       { DNS_ZONE_REQUEST_FORWARDER, "DNS_ZONE_REQUEST_FORWARDER" },
+       { DNS_ZONE_REQUEST_STUB, "DNS_ZONE_REQUEST_STUB" },
+       { DNS_ZONE_REQUEST_DS, "DNS_ZONE_REQUEST_DS" },
+       { DNS_ZONE_REQUEST_NON_DS, "DNS_ZONE_REQUEST_NON_DS" },
+       { DNS_ZONE_REQUEST_DOMAIN_DP, "DNS_ZONE_REQUEST_DOMAIN_DP" },
+       { DNS_ZONE_REQUEST_FOREST_DP, "DNS_ZONE_REQUEST_FOREST_DP" },
+       { DNS_ZONE_REQUEST_CUSTOM_DP, "DNS_ZONE_REQUEST_CUSTOM_DP" },
+       { DNS_ZONE_REQUEST_LEGACY_DP, "DNS_ZONE_REQUEST_LEGACY_DP" },
+{ 0, NULL }
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_PAUSED_tfs = {
+   "DNS_RPC_ZONE_PAUSED is SET",
+   "DNS_RPC_ZONE_PAUSED is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_SHUTDOWN_tfs = {
+   "DNS_RPC_ZONE_SHUTDOWN is SET",
+   "DNS_RPC_ZONE_SHUTDOWN is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_REVERSE_tfs = {
+   "DNS_RPC_ZONE_REVERSE is SET",
+   "DNS_RPC_ZONE_REVERSE is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AUTOCREATED_tfs = {
+   "DNS_RPC_ZONE_AUTOCREATED is SET",
+   "DNS_RPC_ZONE_AUTOCREATED is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_DSINTEGRATED_tfs = {
+   "DNS_RPC_ZONE_DSINTEGRATED is SET",
+   "DNS_RPC_ZONE_DSINTEGRATED is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AGING_tfs = {
+   "DNS_RPC_ZONE_AGING is SET",
+   "DNS_RPC_ZONE_AGING is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_UNSECURE_tfs = {
+   "DNS_RPC_ZONE_UPDATE_UNSECURE is SET",
+   "DNS_RPC_ZONE_UPDATE_UNSECURE is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_SECURE_tfs = {
+   "DNS_RPC_ZONE_UPDATE_SECURE is SET",
+   "DNS_RPC_ZONE_UPDATE_SECURE is NOT SET",
+};
+static const true_false_string DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_READONLY_tfs = {
+   "DNS_RPC_ZONE_READONLY is SET",
+   "DNS_RPC_ZONE_READONLY is NOT SET",
+};
+static int dnsserver_dissect_element_DNS_RPC_ZONE_W2K_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_W2K_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_W2K_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_W2K_ZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_W2K_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_ZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fReverse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fPaused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fShutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAutoCreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseDatabase(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseWins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseNbstat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwAvailForScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fReverse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fPaused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fShutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAutoCreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseDatabase(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseWins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseNbstat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwAvailForScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fForwarderSlave(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulSoaCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulXfr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fReverse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fPaused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fShutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAutoCreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseDatabase(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseWins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseNbstat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwAvailForScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwForwarderTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fForwarderSlave(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulSoaCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulXfr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fQueuedForBackgroundLoad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fBackgroundLoadInProgress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fReadOnlyZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrAttempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_pszFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_pszFileName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fLoadExisting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fLoadExisting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fLoadExisting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dnsserver_DNS_RPC_AUTOCONFIG_vals[] = {
+       { DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS, "DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS" },
+       { DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS, "DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS" },
+       { DNS_RPC_AUTOCONFIG_INTERNAL_ZONES, "DNS_RPC_AUTOCONFIG_INTERNAL_ZONES" },
+       { DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT, "DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT" },
+       { DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND, "DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND" },
+       { DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND, "DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND" },
+       { DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR, "DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR" },
+       { DNS_RPC_AUTOCONFIG_ALL, "DNS_RPC_AUTOCONFIG_ALL" },
+{ 0, NULL }
+};
+static int dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwAutoConfigFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_pszNewDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_pszNewDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_SUCCESS_tfs = {
+   "DNS_EVENT_LOG_SUCCESS is SET",
+   "DNS_EVENT_LOG_SUCCESS is NOT SET",
+};
+static const true_false_string DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_ERROR_TYPE_tfs = {
+   "DNS_EVENT_LOG_ERROR_TYPE is SET",
+   "DNS_EVENT_LOG_ERROR_TYPE is NOT SET",
+};
+static const true_false_string DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_WARNING_TYPE_tfs = {
+   "DNS_EVENT_LOG_WARNING_TYPE is SET",
+   "DNS_EVENT_LOG_WARNING_TYPE is NOT SET",
+};
+static const true_false_string DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_INFORMATION_TYPE_tfs = {
+   "DNS_EVENT_LOG_INFORMATION_TYPE is SET",
+   "DNS_EVENT_LOG_INFORMATION_TYPE is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA_tfs = {
+   "DNS_RPC_VIEW_AUTHORITY_DATA is SET",
+   "DNS_RPC_VIEW_AUTHORITY_DATA is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA_tfs = {
+   "DNS_RPC_VIEW_CACHE_DATA is SET",
+   "DNS_RPC_VIEW_CACHE_DATA is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA_tfs = {
+   "DNS_RPC_VIEW_GLUE_DATA is SET",
+   "DNS_RPC_VIEW_GLUE_DATA is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA_tfs = {
+   "DNS_RPC_VIEW_ROOT_HINT_DATA is SET",
+   "DNS_RPC_VIEW_ROOT_HINT_DATA is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA_tfs = {
+   "DNS_RPC_VIEW_ADDITIONAL_DATA is SET",
+   "DNS_RPC_VIEW_ADDITIONAL_DATA is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN_tfs = {
+   "DNS_RPC_VIEW_NO_CHILDREN is SET",
+   "DNS_RPC_VIEW_NO_CHILDREN is NOT SET",
+};
+static const true_false_string DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN_tfs = {
+   "DNS_RPC_VIEW_ONLY_CHILDREN is SET",
+   "DNS_RPC_VIEW_ONLY_CHILDREN is NOT SET",
+};
+static int dnsserver_dissect_element_DNSSRV_STAT_HEADER_StatId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_HEADER_wLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_HEADER_fClear(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_HEADER_fReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_Header(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dnsserver_DNS_RPC_TYPEID_vals[] = {
+       { DNSSRV_TYPEID_NULL, "DNSSRV_TYPEID_NULL" },
+       { DNSSRV_TYPEID_DWORD, "DNSSRV_TYPEID_DWORD" },
+       { DNSSRV_TYPEID_LPSTR, "DNSSRV_TYPEID_LPSTR" },
+       { DNSSRV_TYPEID_LPWSTR, "DNSSRV_TYPEID_LPWSTR" },
+       { DNSSRV_TYPEID_IPARRAY, "DNSSRV_TYPEID_IPARRAY" },
+       { DNSSRV_TYPEID_BUFFER, "DNSSRV_TYPEID_BUFFER" },
+       { DNSSRV_TYPEID_SERVER_INFO_W2K, "DNSSRV_TYPEID_SERVER_INFO_W2K" },
+       { DNSSRV_TYPEID_STATS, "DNSSRV_TYPEID_STATS" },
+       { DNSSRV_TYPEID_FORWARDERS_W2K, "DNSSRV_TYPEID_FORWARDERS_W2K" },
+       { DNSSRV_TYPEID_ZONE_W2K, "DNSSRV_TYPEID_ZONE_W2K" },
+       { DNSSRV_TYPEID_ZONE_INFO_W2K, "DNSSRV_TYPEID_ZONE_INFO_W2K" },
+       { DNSSRV_TYPEID_ZONE_SECONDARIES_W2K, "DNSSRV_TYPEID_ZONE_SECONDARIES_W2K" },
+       { DNSSRV_TYPEID_ZONE_DATABASE_W2K, "DNSSRV_TYPEID_ZONE_DATABASE_W2K" },
+       { DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K, "DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K" },
+       { DNSSRV_TYPEID_ZONE_CREATE_W2K, "DNSSRV_TYPEID_ZONE_CREATE_W2K" },
+       { DNSSRV_TYPEID_NAME_AND_PARAM, "DNSSRV_TYPEID_NAME_AND_PARAM" },
+       { DNSSRV_TYPEID_ZONE_LIST_W2K, "DNSSRV_TYPEID_ZONE_LIST_W2K" },
+       { DNSSRV_TYPEID_ZONE_RENAME, "DNSSRV_TYPEID_ZONE_RENAME" },
+       { DNSSRV_TYPEID_ZONE_EXPORT, "DNSSRV_TYPEID_ZONE_EXPORT" },
+       { DNSSRV_TYPEID_SERVER_INFO_DOTNET, "DNSSRV_TYPEID_SERVER_INFO_DOTNET" },
+       { DNSSRV_TYPEID_FORWARDERS_DOTNET, "DNSSRV_TYPEID_FORWARDERS_DOTNET" },
+       { DNSSRV_TYPEID_ZONE, "DNSSRV_TYPEID_ZONE" },
+       { DNSSRV_TYPEID_ZONE_INFO_DOTNET, "DNSSRV_TYPEID_ZONE_INFO_DOTNET" },
+       { DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET, "DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET" },
+       { DNSSRV_TYPEID_ZONE_DATABASE, "DNSSRV_TYPEID_ZONE_DATABASE" },
+       { DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET, "DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET" },
+       { DNSSRV_TYPEID_ZONE_CREATE_DOTNET, "DNSSRV_TYPEID_ZONE_CREATE_DOTNET" },
+       { DNSSRV_TYPEID_ZONE_LIST, "DNSSRV_TYPEID_ZONE_LIST" },
+       { DNSSRV_TYPEID_DP_ENUM, "DNSSRV_TYPEID_DP_ENUM" },
+       { DNSSRV_TYPEID_DP_INFO, "DNSSRV_TYPEID_DP_INFO" },
+       { DNSSRV_TYPEID_DP_LIST, "DNSSRV_TYPEID_DP_LIST" },
+       { DNSSRV_TYPEID_ENLIST_DP, "DNSSRV_TYPEID_ENLIST_DP" },
+       { DNSSRV_TYPEID_ZONE_CHANGE_DP, "DNSSRV_TYPEID_ZONE_CHANGE_DP" },
+       { DNSSRV_TYPEID_ENUM_ZONES_FILTER, "DNSSRV_TYPEID_ENUM_ZONES_FILTER" },
+       { DNSSRV_TYPEID_ADDRARRAY, "DNSSRV_TYPEID_ADDRARRAY" },
+       { DNSSRV_TYPEID_SERVER_INFO, "DNSSRV_TYPEID_SERVER_INFO" },
+       { DNSSRV_TYPEID_ZONE_INFO, "DNSSRV_TYPEID_ZONE_INFO" },
+       { DNSSRV_TYPEID_FORWARDERS, "DNSSRV_TYPEID_FORWARDERS" },
+       { DNSSRV_TYPEID_ZONE_SECONDARIES, "DNSSRV_TYPEID_ZONE_SECONDARIES" },
+       { DNSSRV_TYPEID_ZONE_TYPE_RESET, "DNSSRV_TYPEID_ZONE_TYPE_RESET" },
+       { DNSSRV_TYPEID_ZONE_CREATE, "DNSSRV_TYPEID_ZONE_CREATE" },
+       { DNSSRV_TYPEID_IP_VALIDATE, "DNSSRV_TYPEID_IP_VALIDATE" },
+       { DNSSRV_TYPEID_AUTOCONFIGURE, "DNSSRV_TYPEID_AUTOCONFIGURE" },
+       { DNSSRV_TYPEID_UTF8_STRING_LIST, "DNSSRV_TYPEID_UTF8_STRING_LIST" },
+       { DNSSRV_TYPEID_UNICODE_STRING_LIST, "DNSSRV_TYPEID_UNICODE_STRING_LIST" },
+{ 0, NULL }
+};
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Null_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Dword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_String_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_WideString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_WideString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_IpArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_IpArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Stats(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Stats_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DatabaseW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DatabaseW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_NameAndParam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_NameAndParam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneListW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneListW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Zone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Zone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Database(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Database_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneExport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneExport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_EnlistDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_EnlistDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_EnumZonesFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_EnumZonesFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreate_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Forwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Forwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Secondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Secondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_IpValidate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_IpValidate_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_AutoConfigure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_AutoConfigure_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Utf8StringList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNSSRV_RPC_UNION_Utf8StringList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_wLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_wRecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_dwChildCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_dnsNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_records_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_rec_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_dwContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_dwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pdwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_pdwTypeId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_ppData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery_ppData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_dwTypeIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pDataIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pdwTypeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_pdwTypeOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_ppDataOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation_ppDataOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszStartChild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszStartChild_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_wRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_fSelectFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStart_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pdwBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pdwBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords_pBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pAddRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pAddRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pDeleteRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord_pDeleteRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_dwContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_dwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvOperation2_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pdwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_pdwTypeId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_ppData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvQuery2_ppData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_dwTypeIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pDataIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pdwTypeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_pdwTypeOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_ppDataOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvComplexOperation2_ppDataOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszStartChild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszStartChild_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_wRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_fSelectFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStart_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pdwBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pdwBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pAddRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pAddRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pDeleteRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dnsserver_dissect_element_DnssrvUpdateRecord2_pDeleteRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        DNS_RPC_USE_TCPIP=0x00000001, */
+/* IDL:        DNS_RPC_USE_NAMED_PIPE=0x00000002, */
+/* IDL:        DNS_RPC_USE_LPC=0x00000004, */
+/* IDL:        DNS_RPC_USE_ALL_PROTOCOLS=0xFFFFFFFF, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_RPC_PROTOCOLS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_CLIENT_VERSION_W2K=0x00000000, */
+/* IDL:        DNS_CLIENT_VERSION_DOTNET=0x00060000, */
+/* IDL:        DNS_CLIENT_VERSION_LONGHORN=0x00070000, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwLength; */
+/* IDL:        [size_is(dwLength)] uint8 Buffer[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_BUFFER_dwLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_BUFFER_dwLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_BUFFER_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_BUFFER_Buffer_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_BUFFER_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_BUFFER_Buffer, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_BUFFER);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_BUFFER_dwLength(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_BUFFER_Buffer(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 dwCount; */
+/* IDL:        [unique(1)] [charset(UTF8)] [size_is(dwCount)] uint8 *pszStrings[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_dwCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_dwCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings__, NDR_POINTER_UNIQUE, "Pointer to Pszstrings (uint8)",hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_pszStrings);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_pszStrings, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_UTF8_STRING_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_UTF8_STRING_LIST);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_dwCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_UTF8_STRING_LIST_pszStrings(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwParam; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszNodeName; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_dwParam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NAME_AND_PARAM_dwParam, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_pszNodeName_, NDR_POINTER_UNIQUE, "Pointer to Psznodename (uint8)",hf_dnsserver_DNS_RPC_NAME_AND_PARAM_pszNodeName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_NAME_AND_PARAM_pszNodeName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_NAME_AND_PARAM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NAME_AND_PARAM);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_dwParam(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_NAME_AND_PARAM_pszNodeName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen(str))] uint8 len; */
+/* IDL:        [charset(UTF8)] uint8 str[len]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_NAME_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NAME_len, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NAME_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NAME_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NAME_str, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NAME);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_NAME_len(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_NAME_str(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 wLength; */
+/* IDL:        uint16 wRecordCount; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        uint32 dwChildCount; */
+/* IDL:        DNS_RPC_NAME dnsNodeName; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_NODE_wLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NODE_wLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NODE_wRecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NODE_wRecordCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NODE_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NODE_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NODE_dwChildCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_NODE_dwChildCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_NODE_dnsNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_NODE_dnsNodeName,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_NODE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_NODE);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_NODE_wLength(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_NODE_wRecordCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_NODE_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_NODE_dwChildCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_NODE_dnsNodeName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwSerialNo; */
+/* IDL:        uint32 dwRefresh; */
+/* IDL:        uint32 dwRetry; */
+/* IDL:        uint32 dwExpire; */
+/* IDL:        uint32 dwMinimumTtl; */
+/* IDL:        DNS_RPC_NAME NamePrimaryServer; */
+/* IDL:        DNS_RPC_NAME ZoneAdministratorEmail; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwSerialNo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SOA_dwSerialNo, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwRefresh(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SOA_dwRefresh, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SOA_dwRetry, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwExpire(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SOA_dwExpire, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwMinimumTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SOA_dwMinimumTtl, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_NamePrimaryServer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_SOA_NamePrimaryServer,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SOA_ZoneAdministratorEmail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_SOA_ZoneAdministratorEmail,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORD_SOA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD_SOA);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwSerialNo(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwRefresh(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwRetry(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwExpire(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_dwMinimumTtl(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_NamePrimaryServer(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SOA_ZoneAdministratorEmail(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 wPreference; */
+/* IDL:        DNS_RPC_NAME nameExchange; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_NAME_PREFERENCE_wPreference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE_wPreference, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_NAME_PREFERENCE_nameExchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE_nameExchange,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORD_NAME_PREFERENCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_NAME_PREFERENCE_wPreference(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_NAME_PREFERENCE_nameExchange(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 count; */
+/* IDL:        DNS_RPC_NAME str[count]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_STRING_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_STRING_count, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_STRING_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_STRING_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_STRING_str,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORD_STRING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD_STRING);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_STRING_count(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_STRING_str(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 wPriority; */
+/* IDL:        uint16 wWeight; */
+/* IDL:        uint16 wPort; */
+/* IDL:        DNS_RPC_NAME nameTarget; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SRV_wPriority, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wWeight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SRV_wWeight, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wPort(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_SRV_wPort, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_SRV_nameTarget(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_SRV_nameTarget,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORD_SRV(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD_SRV);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wPriority(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wWeight(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SRV_wPort(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_SRV_nameTarget(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
+/* IDL: [case(DNS_TYPE_TOMBSTONE)] [case(DNS_TYPE_TOMBSTONE)] NTTIME timestamp; */
+/* IDL: [case(DNS_TYPE_A)] [flag(LIBNDR_FLAG_BIGENDIAN)] [case(DNS_TYPE_A)] ipv4address ipv4; */
+/* IDL: [case(DNS_TYPE_NS)] [case(DNS_TYPE_NS)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_MD)] [case(DNS_TYPE_MD)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_MF)] [case(DNS_TYPE_MF)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_CNAME)] [case(DNS_TYPE_CNAME)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_SOA)] [case(DNS_TYPE_SOA)] DNS_RPC_RECORD_SOA soa; */
+/* IDL: [case(DNS_TYPE_MB)] [case(DNS_TYPE_MB)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_MG)] [case(DNS_TYPE_MG)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_MR)] [case(DNS_TYPE_MR)] DNS_RPC_NAME name; */
+/* IDL: [case(DNS_TYPE_PTR)] [case(DNS_TYPE_PTR)] DNS_RPC_NAME ptr; */
+/* IDL: [case(DNS_TYPE_HINFO)] [case(DNS_TYPE_HINFO)] DNS_RPC_NAME hinfo; */
+/* IDL: [case(DNS_TYPE_MX)] [case(DNS_TYPE_MX)] DNS_RPC_RECORD_NAME_PREFERENCE mx; */
+/* IDL: [case(DNS_TYPE_TXT)] [case(DNS_TYPE_TXT)] DNS_RPC_RECORD_STRING txt; */
+/* IDL: [case(DNS_TYPE_AAAA)] [case(DNS_TYPE_AAAA)] ipv6address ipv6; */
+/* IDL: [case(DNS_TYPE_SRV)] [case(DNS_TYPE_SRV)] DNS_RPC_RECORD_SRV srv; */
+/* IDL: [case(DNS_TYPE_DNAME)] [case(DNS_TYPE_DNAME)] DNS_RPC_NAME name; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DATA_timestamp);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_ipv4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_ipv4,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_soa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_SOA(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_soa,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_ptr,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_hinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_hinfo,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_mx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_NAME_PREFERENCE(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_mx,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_txt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_STRING(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_txt,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_ipv6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_ipv6address(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_ipv6,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_srv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_SRV(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_srv,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DATA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DATA_name,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DNS_RPC_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "DNS_RPC_DATA");
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_DATA);
+       }
+
+       switch(level) {
+               case DNS_TYPE_TOMBSTONE:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_timestamp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_A:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_ipv4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_NS:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_MD:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_MF:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_CNAME:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_SOA:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_soa(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_MB:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_MG:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_MR:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_PTR:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_ptr(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_HINFO:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_hinfo(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_MX:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_mx(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_TXT:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_txt(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_AAAA:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_ipv6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_SRV:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_srv(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNS_TYPE_DNAME:
+                       offset = dnsserver_dissect_element_DNS_RPC_DATA_name(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_DNS_RPC_DATA(&data,wType,0))] uint16 wDataLength; */
+/* IDL:        dns_record_type wType; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        uint32 dwSerial; */
+/* IDL:        uint32 dwTtlSeconds; */
+/* IDL:        uint32 dwTimeStamp; */
+/* IDL:        uint32 dwReserved; */
+/* IDL:        [subcontext_size(wDataLength)] [subcontext(0)] [switch_is(wType)] DNS_RPC_DATA data; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_wDataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_wDataLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_wType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *wType)
+{
+       offset = dnsserver_dissect_struct_dns_record_type(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_wType,wType);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_dwSerial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_dwSerial, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_dwTtlSeconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_dwTtlSeconds, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_dwTimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_dwTimeStamp, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_dwReserved, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *wType)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_data_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               dnsserver_dissect_element_DNS_RPC_RECORD_data_(subtvb, 0, pinfo, tree, drep, wType);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *wType)
+{
+       offset = dnsserver_dissect_DNS_RPC_DATA(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_data, *wType);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint16 wType;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_wDataLength(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_wType(tvb, offset, pinfo, tree, drep, &wType);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_dwSerial(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_dwTtlSeconds(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_dwTimeStamp(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_dwReserved(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_data(tvb, offset, pinfo, tree, drep, &wType);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_DNS_RPC_DATA(&rec.data,rec.wType,0))] uint3264 wContextLength; */
+/* IDL:        DNS_RPC_RECORD rec; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_BUF_wContextLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORD_BUF_wContextLength, NULL);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORD_BUF_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORD_BUF_rec,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORD_BUF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORD_BUF);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_BUF_wContextLength(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORD_BUF_rec(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_IPVAL_DNS_SERVERS=0x00, */
+/* IDL:        DNS_IPVAL_DNS_ROOTHINTS=0x01, */
+/* IDL:        DNS_IPVAL_DNS_FORWARDERS=0x02, */
+/* IDL:        DNS_IPVAL_DNS_ZONE_MASTERS=0x03, */
+/* IDL:        DNS_IPVAL_DNS_DELEGATIONS=0x04, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_IPVAL_CONTEXT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        ERROR_SUCCESS=0x00, */
+/* IDL:        DNS_IPVAL_INVALID_ADDR=0x01, */
+/* IDL:        DNS_IPVAL_UNREACHABLE=0x02, */
+/* IDL:        DNS_IPVAL_NO_RESPONSE=0x03, */
+/* IDL:        DNS_IPVAL_NOT_AUTH_FOR_ZONE=0x04, */
+/* IDL:        DNS_IPVAL_UNKNOWN_ERROR=0xFF, */
+/* IDL:        DNS_IPVAL_NO_TCP=0x80000000, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_IP_VALIDATE_RETURN_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 AddrCount; */
+/* IDL:        [size_is(AddrCount)] uint32 AddrArray[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_IP4_ARRAY_AddrCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_IP4_ARRAY_AddrArray_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_IP4_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_IP4_ARRAY_AddrArray, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_IP4_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_IP4_ARRAY);
+       }
+       
+       offset = dnsserver_dissect_element_IP4_ARRAY_AddrCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_IP4_ARRAY_AddrArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 MaxSa[32]; */
+/* IDL:        uint32 DnsAddrUserDword[8]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_ADDR_MaxSa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 32; i++)
+               offset = dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_MaxSa_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_MaxSa, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_DnsAddrUserDword, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_ADDR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_ADDR);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_ADDR_MaxSa(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_DnsAddrUserDword(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 MaxCount; */
+/* IDL:        uint32 AddrCount; */
+/* IDL:        uint32 Tag; */
+/* IDL:        uint16 Family; */
+/* IDL:        uint16 WordReserved; */
+/* IDL:        uint32 Flags; */
+/* IDL:        uint32 MatchFlag; */
+/* IDL:        uint32 Reserved1; */
+/* IDL:        uint32 Reserved2; */
+/* IDL:        [size_is(AddrCount)] DNS_ADDR AddrArray[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_MaxCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_MaxCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_AddrCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_Tag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_Tag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_Family(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_Family, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_WordReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_WordReserved, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_Flags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_MatchFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_MatchFlag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_Reserved1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_ADDR_ARRAY_Reserved2, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrArray_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_ADDR_ARRAY_AddrArray,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_ADDR_ARRAY);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_MaxCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_Tag(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_Family(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_WordReserved(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_MatchFlag(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_Reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_Reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_ADDR_ARRAY_AddrArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 dwContext; */
+/* IDL:        uint32 dwReserved1; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszContextName; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipValidateAddrs; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_IP_VALIDATE_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_IP_VALIDATE_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_IP_VALIDATE_dwContext, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_IP_VALIDATE_dwReserved1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_pszContextName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_pszContextName_, NDR_POINTER_UNIQUE, "Pointer to Pszcontextname (uint8)",hf_dnsserver_DNS_RPC_IP_VALIDATE_pszContextName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_pszContextName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_IP_VALIDATE_pszContextName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_aipValidateAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_aipValidateAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aipvalidateaddrs (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_IP_VALIDATE_aipValidateAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_aipValidateAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_IP_VALIDATE_aipValidateAddrs,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_IP_VALIDATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_IP_VALIDATE);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwContext(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_dwReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_pszContextName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_IP_VALIDATE_aipValidateAddrs(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_BOOT_METHOD_UNINITIALIZED=0x00, */
+/* IDL:        DNS_BOOT_METHOD_FILE=0x01, */
+/* IDL:        DNS_BOOT_METHOD_REGISTRY=0x02, */
+/* IDL:        DNS_BOOT_METHOD_DIRECTORY=0x03, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_BOOT_METHOD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_ALLOW_RFC_NAMES_ONLY=0x00, */
+/* IDL:        DNS_ALLOW_NONRFC_NAMES=0x01, */
+/* IDL:        DNS_ALLOW_MULTIBYTE_NAMES=0x02, */
+/* IDL:        DNS_ALLOW_ALL_NAMES=0x03, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_NAME_CHECK_FLAG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwVersion; */
+/* IDL:        DNS_BOOT_METHOD fBootMethod; */
+/* IDL:        uint8 fAdminConfigured; */
+/* IDL:        uint8 fAllowUpdate; */
+/* IDL:        uint8 fDsAvailable; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszServerName; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszDsContainer; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipServerAddrs; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipListenAddrs; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipForwarders; */
+/* IDL:        [unique(1)] uint32 *pExtension1; */
+/* IDL:        [unique(1)] uint32 *pExtension2; */
+/* IDL:        [unique(1)] uint32 *pExtension3; */
+/* IDL:        [unique(1)] uint32 *pExtension4; */
+/* IDL:        [unique(1)] uint32 *pExtension5; */
+/* IDL:        uint32 dwLogLevel; */
+/* IDL:        uint32 dwDebugLevel; */
+/* IDL:        uint32 dwForwardTimeout; */
+/* IDL:        uint32 dwRpcProtocol; */
+/* IDL:        DNS_NAME_CHECK_FLAG dwNameCheckFlag; */
+/* IDL:        uint32 cAddressAnswerLimit; */
+/* IDL:        uint32 dwRecursionRetry; */
+/* IDL:        uint32 dwRecursionTimeout; */
+/* IDL:        uint32 dwMaxCacheTtl; */
+/* IDL:        uint32 dwDsPollingInterval; */
+/* IDL:        uint32 dwScavengingInterval; */
+/* IDL:        uint32 dwDefaultRefreshInterval; */
+/* IDL:        uint32 dwDefaultNoRefreshInterval; */
+/* IDL:        uint32 dwReserveArray[10]; */
+/* IDL:        uint8 fAutoReverseZones; */
+/* IDL:        uint8 fAutoCacheUpdate; */
+/* IDL:        uint8 fRecurseAfterForwarding; */
+/* IDL:        uint8 fForwardDelegations; */
+/* IDL:        uint8 fNoRecursion; */
+/* IDL:        uint8 fSecureResponses; */
+/* IDL:        uint8 fRoundRobin; */
+/* IDL:        uint8 fLocalNetPriority; */
+/* IDL:        uint8 fBindSecondaries; */
+/* IDL:        uint8 fWriteAuthorityNs; */
+/* IDL:        uint8 fStrictFileParsing; */
+/* IDL:        uint8 fLooseWildcarding; */
+/* IDL:        uint8 fDefaultAgingState; */
+/* IDL:        uint8 fReserveArray[15]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fBootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_BOOT_METHOD(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fBootMethod, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAdminConfigured, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAllowUpdate, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fDsAvailable, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pszservername (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszDsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszDsContainer_, NDR_POINTER_UNIQUE, "Pointer to Pszdscontainer (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszDsContainer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszDsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszDsContainer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aipserveraddrs (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aiplistenaddrs (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipForwarders_, NDR_POINTER_UNIQUE, "Pointer to Aipforwarders (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipForwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipForwarders,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension1_, NDR_POINTER_UNIQUE, "Pointer to Pextension1 (uint32)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension1);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension2_, NDR_POINTER_UNIQUE, "Pointer to Pextension2 (uint32)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension2);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension2, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension3_, NDR_POINTER_UNIQUE, "Pointer to Pextension3 (uint32)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension3);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension3, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension4_, NDR_POINTER_UNIQUE, "Pointer to Pextension4 (uint32)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension4);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension4, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension5_, NDR_POINTER_UNIQUE, "Pointer to Pextension5 (uint32)",hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension5);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension5, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwLogLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDebugLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwForwardTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRpcProtocol, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwNameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_NAME_CHECK_FLAG(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwNameCheckFlag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_cAddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_cAddressAnswerLimit, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRecursionRetry, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRecursionTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwMaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwMaxCacheTtl, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwScavengingInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDefaultRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 10; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwReserveArray, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAutoReverseZones, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAutoCacheUpdate, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fForwardDelegations, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fNoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fNoRecursion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fSecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fSecureResponses, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fRoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fRoundRobin, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fLocalNetPriority, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fBindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fBindSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fWriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fWriteAuthorityNs, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 15; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fReserveArray, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_SERVER_INFO_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fBootMethod(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAdminConfigured(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDsAvailable(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszServerName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pszDsContainer(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_aipForwarders(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension3(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension4(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_pExtension5(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwLogLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDebugLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwForwardTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRpcProtocol(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwNameCheckFlag(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_cAddressAnswerLimit(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRecursionRetry(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwRecursionTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwMaxCacheTtl(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwScavengingInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_dwReserveArray(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAutoReverseZones(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fAutoCacheUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fForwardDelegations(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fNoRecursion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fSecureResponses(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fRoundRobin(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLocalNetPriority(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fBindSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fWriteAuthorityNs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_W2K_fReserveArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *extension; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_EXTENSION_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_EXTENSION_extension_, NDR_POINTER_UNIQUE, "Pointer to Extension (uint8)",hf_dnsserver_DNS_EXTENSION_extension);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_EXTENSION_extension_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_EXTENSION_extension, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_EXTENSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_EXTENSION);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_EXTENSION_extension(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 dwVersion; */
+/* IDL:        DNS_BOOT_METHOD fBootMethod; */
+/* IDL:        uint8 fAdminConfigured; */
+/* IDL:        uint8 fAllowUpdate; */
+/* IDL:        uint8 fDsAvailable; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszServerName; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszDsContainer; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipServerAddrs; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipListenAddrs; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipForwarders; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipLogFilter; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pwszLogFilePath; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDomainName; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszForestName; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDomainDirectoryPartition; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszForestDirectoryPartition; */
+/* IDL:        DNS_EXTENSION pExtensions[6]; */
+/* IDL:        uint32 dwLogLevel; */
+/* IDL:        uint32 dwDebugLevel; */
+/* IDL:        uint32 dwForwardTimeout; */
+/* IDL:        uint32 dwRpcProtocol; */
+/* IDL:        DNS_NAME_CHECK_FLAG dwNameCheckFlag; */
+/* IDL:        uint32 cAddressAnswerLimit; */
+/* IDL:        uint32 dwRecursionRetry; */
+/* IDL:        uint32 dwRecursionTimeout; */
+/* IDL:        uint32 dwMaxCacheTtl; */
+/* IDL:        uint32 dwDsPollingInterval; */
+/* IDL:        uint32 dwLocalNetPriorityNetMask; */
+/* IDL:        uint32 dwScavengingInterval; */
+/* IDL:        uint32 dwDefaultRefreshInterval; */
+/* IDL:        uint32 dwDefaultNoRefreshInterval; */
+/* IDL:        uint32 dwLastScavengeTime; */
+/* IDL:        uint32 dwEventLogLevel; */
+/* IDL:        uint32 dwLogFileMaxSize; */
+/* IDL:        uint32 dwDsForestVersion; */
+/* IDL:        uint32 dwDsDomainVersion; */
+/* IDL:        uint32 dwDsDsaVersion; */
+/* IDL:        uint32 dwReserveArray[4]; */
+/* IDL:        uint8 fAutoReverseZones; */
+/* IDL:        uint8 fAutoCacheUpdate; */
+/* IDL:        uint8 fRecurseAfterForwarding; */
+/* IDL:        uint8 fForwardDelegations; */
+/* IDL:        uint8 fNoRecursion; */
+/* IDL:        uint8 fSecureResponses; */
+/* IDL:        uint8 fRoundRobin; */
+/* IDL:        uint8 fLocalNetPriority; */
+/* IDL:        uint8 fBindSecondaries; */
+/* IDL:        uint8 fWriteAuthorityNs; */
+/* IDL:        uint8 fStrictFileParsing; */
+/* IDL:        uint8 fLooseWildcarding; */
+/* IDL:        uint8 fDefaultAgingState; */
+/* IDL:        uint8 fReserveArray[15]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fBootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_BOOT_METHOD(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fBootMethod, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAdminConfigured, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAllowUpdate, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fDsAvailable, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pszservername (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer_, NDR_POINTER_UNIQUE, "Pointer to Pszdscontainer (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aipserveraddrs (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aiplistenaddrs (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders_, NDR_POINTER_UNIQUE, "Pointer to Aipforwarders (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter_, NDR_POINTER_UNIQUE, "Pointer to Aiplogfilter (IP4_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath_, NDR_POINTER_UNIQUE, "Pointer to Pwszlogfilepath (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName_, NDR_POINTER_UNIQUE, "Pointer to Pszdomainname (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestName_, NDR_POINTER_UNIQUE, "Pointer to Pszforestname (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Pszdomaindirectorypartition (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Pszforestdirectorypartition (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_EXTENSION(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pExtensions,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLogLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDebugLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwForwardTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRpcProtocol, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwNameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_NAME_CHECK_FLAG(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwNameCheckFlag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_cAddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_cAddressAnswerLimit, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionRetry, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwMaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwMaxCacheTtl, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsPollingInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLocalNetPriorityNetMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLocalNetPriorityNetMask, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwScavengingInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultNoRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLastScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLastScavengeTime, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwEventLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwEventLogLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLogFileMaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLogFileMaxSize, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsForestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsForestVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDomainVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsDomainVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAutoReverseZones, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAutoCacheUpdate, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fForwardDelegations, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fNoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fNoRecursion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fSecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fSecureResponses, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fRoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fRoundRobin, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fLocalNetPriority, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fBindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fBindSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fWriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fWriteAuthorityNs, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsing, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 15; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fBootMethod(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAdminConfigured(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDsAvailable(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszServerName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_pExtensions(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLogLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDebugLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwForwardTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRpcProtocol(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwNameCheckFlag(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_cAddressAnswerLimit(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionRetry(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwMaxCacheTtl(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsPollingInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLocalNetPriorityNetMask(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwScavengingInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultNoRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLastScavengeTime(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwEventLogLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwLogFileMaxSize(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsForestVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDomainVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAutoReverseZones(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fAutoCacheUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fForwardDelegations(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fNoRecursion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fSecureResponses(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fRoundRobin(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLocalNetPriority(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fBindSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fWriteAuthorityNs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsing(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 dwVersion; */
+/* IDL:        DNS_BOOT_METHOD fBootMethod; */
+/* IDL:        uint8 fAdminConfigured; */
+/* IDL:        uint8 fAllowUpdate; */
+/* IDL:        uint8 fDsAvailable; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszServerName; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszDsContainer; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipServerAddrs; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipListenAddrs; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipForwarders; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipLogFilter; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pwszLogFilePath; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDomainName; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszForestName; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDomainDirectoryPartition; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszForestDirectoryPartition; */
+/* IDL:        DNS_EXTENSION pExtensions[6]; */
+/* IDL:        uint32 dwLogLevel; */
+/* IDL:        uint32 dwDebugLevel; */
+/* IDL:        uint32 dwForwardTimeout; */
+/* IDL:        uint32 dwRpcProtocol; */
+/* IDL:        DNS_NAME_CHECK_FLAG dwNameCheckFlag; */
+/* IDL:        uint32 cAddressAnswerLimit; */
+/* IDL:        uint32 dwRecursionRetry; */
+/* IDL:        uint32 dwRecursionTimeout; */
+/* IDL:        uint32 dwMaxCacheTtl; */
+/* IDL:        uint32 dwDsPollingInterval; */
+/* IDL:        uint32 dwLocalNetPriorityNetMask; */
+/* IDL:        uint32 dwScavengingInterval; */
+/* IDL:        uint32 dwDefaultRefreshInterval; */
+/* IDL:        uint32 dwDefaultNoRefreshInterval; */
+/* IDL:        uint32 dwLastScavengeTime; */
+/* IDL:        uint32 dwEventLogLevel; */
+/* IDL:        uint32 dwLogFileMaxSize; */
+/* IDL:        uint32 dwDsForestVersion; */
+/* IDL:        uint32 dwDsDomainVersion; */
+/* IDL:        uint32 dwDsDsaVersion; */
+/* IDL:        uint8 fReadOnlyDC; */
+/* IDL:        uint32 dwReserveArray[3]; */
+/* IDL:        uint8 fAutoReverseZones; */
+/* IDL:        uint8 fAutoCacheUpdate; */
+/* IDL:        uint8 fRecurseAfterForwarding; */
+/* IDL:        uint8 fForwardDelegations; */
+/* IDL:        uint8 fNoRecursion; */
+/* IDL:        uint8 fSecureResponses; */
+/* IDL:        uint8 fRoundRobin; */
+/* IDL:        uint8 fLocalNetPriority; */
+/* IDL:        uint8 fBindSecondaries; */
+/* IDL:        uint8 fWriteAuthorityNs; */
+/* IDL:        uint8 fStrictFileParsing; */
+/* IDL:        uint8 fLooseWildcarding; */
+/* IDL:        uint8 fDefaultAgingState; */
+/* IDL:        uint8 fReserveArray[15]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fBootMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_BOOT_METHOD(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fBootMethod, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAdminConfigured(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAdminConfigured, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAllowUpdate, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDsAvailable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fDsAvailable, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pszservername (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer_, NDR_POINTER_UNIQUE, "Pointer to Pszdscontainer (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aipserveraddrs (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs_, NDR_POINTER_UNIQUE, "Pointer to Aiplistenaddrs (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders_, NDR_POINTER_UNIQUE, "Pointer to Aipforwarders (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter_, NDR_POINTER_UNIQUE, "Pointer to Aiplogfilter (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath_, NDR_POINTER_UNIQUE, "Pointer to Pwszlogfilepath (uint16)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName_, NDR_POINTER_UNIQUE, "Pointer to Pszdomainname (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName_, NDR_POINTER_UNIQUE, "Pointer to Pszforestname (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Pszdomaindirectorypartition (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Pszforestdirectorypartition (uint8)",hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_EXTENSION(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLogLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDebugLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDebugLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcProtocol, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwNameCheckFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_NAME_CHECK_FLAG(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwNameCheckFlag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_cAddressAnswerLimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_cAddressAnswerLimit, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwMaxCacheTtl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwMaxCacheTtl, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsPollingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsPollingInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLocalNetPriorityNetMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLocalNetPriorityNetMask, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwScavengingInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwScavengingInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultNoRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLastScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLastScavengeTime, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwEventLogLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwEventLogLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLogFileMaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLogFileMaxSize, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsForestVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsForestVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDomainVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDomainVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDsaVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDsaVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 3; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAutoReverseZones(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAutoReverseZones, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAutoCacheUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAutoCacheUpdate, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fForwardDelegations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fForwardDelegations, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fNoRecursion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fNoRecursion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fSecureResponses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fSecureResponses, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fRoundRobin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fRoundRobin, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLocalNetPriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fLocalNetPriority, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fBindSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fBindSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fWriteAuthorityNs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fWriteAuthorityNs, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFileParsing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFileParsing, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 15; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fBootMethod(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAdminConfigured(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDsAvailable(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLogLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDebugLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcProtocol(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwNameCheckFlag(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_cAddressAnswerLimit(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwMaxCacheTtl(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsPollingInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLocalNetPriorityNetMask(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwScavengingInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultNoRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLastScavengeTime(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwEventLogLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwLogFileMaxSize(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsForestVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDomainVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDsaVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAutoReverseZones(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fAutoCacheUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fForwardDelegations(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fNoRecursion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fSecureResponses(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fRoundRobin(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLocalNetPriority(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fBindSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fWriteAuthorityNs(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFileParsing(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DNS_DP_AUTOCREATED =  0x00000001 , */
+/* IDL:        DNS_DP_LEGACY =  0x00000002 , */
+/* IDL:        DNS_DP_DOMAIN_DEFAULT =  0x00000004 , */
+/* IDL:        DNS_DP_FOREST_DEFAULT =  0x00000008 , */
+/* IDL:        DNS_DP_ENLISTED =  0x00000010 , */
+/* IDL:        DNS_DP_DELETED =  0x00000020 , */
+/* IDL: } */
+
+int
+dnsserver_dissect_bitmap_DNS_RPC_DP_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dnsserver_DNS_RPC_DP_FLAGS);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_AUTOCREATED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DNS_DP_AUTOCREATED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_LEGACY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DNS_DP_LEGACY");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_DOMAIN_DEFAULT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DNS_DP_DOMAIN_DEFAULT");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_FOREST_DEFAULT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DNS_DP_FOREST_DEFAULT");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_ENLISTED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DNS_DP_ENLISTED");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_DELETED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DNS_DP_DELETED");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszReplicaDn; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_REPLICA_pszReplicaDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_REPLICA_pszReplicaDn_, NDR_POINTER_UNIQUE, "Pointer to Pszreplicadn (uint16)",hf_dnsserver_DNS_RPC_DP_REPLICA_pszReplicaDn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_REPLICA_pszReplicaDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_DP_REPLICA_pszReplicaDn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_DP_REPLICA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_DP_REPLICA);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_DP_REPLICA_pszReplicaDn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_DP_OKAY=0x00, */
+/* IDL:        DNS_DP_STATE_REPL_INCOMING=0x01, */
+/* IDL:        DNS_DP_STATE_REPL_OUTGOING=0x02, */
+/* IDL:        DNS_DP_STATE_UNKNOWN=0x03, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_DP_STATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszDpDn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszCrDn; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        uint32 dwZoneCount; */
+/* IDL:        DNS_DP_STATE dwState; */
+/* IDL:        uint32 dwReserved[3]; */
+/* IDL:        DNS_EXTENSION pwszReserved[3]; */
+/* IDL:        [range(0,10000)] uint32 dwReplicaCount; */
+/* IDL:        [unique(1)] [size_is(dwReplicaCount)] DNS_RPC_DP_REPLICA *ReplicaArray[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_DP_INFO_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_DP_INFO_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpDn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpdn (uint16)",hf_dnsserver_DNS_RPC_DP_INFO_pszDpDn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_DP_INFO_pszDpDn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pszCrDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_INFO_pszCrDn_, NDR_POINTER_UNIQUE, "Pointer to Pszcrdn (uint16)",hf_dnsserver_DNS_RPC_DP_INFO_pszCrDn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pszCrDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_DP_INFO_pszCrDn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwZoneCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_DP_STATE(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwState, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 3; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwReserved, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 3; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_EXTENSION(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DP_INFO_pwszReserved,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReplicaCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_INFO_dwReplicaCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray__, NDR_POINTER_UNIQUE, "Pointer to Replicaarray (DNS_RPC_DP_REPLICA)",hf_dnsserver_DNS_RPC_DP_INFO_ReplicaArray);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_DP_REPLICA(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DP_INFO_ReplicaArray,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_DP_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_DP_INFO);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_pszDpDn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_pszCrDn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwZoneCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwState(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReserved(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_pwszReserved(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_dwReplicaCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_INFO_ReplicaArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        uint32 dwZoneCount; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_ENUM_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_ENUM_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_ENUM_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_ENUM_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_DP_ENUM_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_ENUM_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_DP_ENUM_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_ENUM_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_ENUM_dwZoneCount, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_DP_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_DP_ENUM);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_ENUM_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_ENUM_dwZoneCount(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [range(0,5000)] uint32 dwDpCount; */
+/* IDL:        [unique(1)] [size_is(dwDpCount)] DNS_RPC_DP_ENUM *DpArray[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_LIST_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_LIST_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_LIST_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_LIST_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_LIST_dwDpCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_DP_LIST_dwDpCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray__, NDR_POINTER_UNIQUE, "Pointer to Dparray (DNS_RPC_DP_ENUM)",hf_dnsserver_DNS_RPC_DP_LIST_DpArray);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_DP_ENUM(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_DP_LIST_DpArray,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_DP_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_DP_LIST);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_DP_LIST_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_LIST_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_LIST_dwDpCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_DP_LIST_DpArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        uint32 dwOperation; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ENLIST_DP_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ENLIST_DP_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENLIST_DP_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ENLIST_DP_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_ENLIST_DP_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENLIST_DP_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ENLIST_DP_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ENLIST_DP_dwOperation, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ENLIST_DP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ENLIST_DP);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENLIST_DP_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENLIST_DP_dwOperation(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDestPartition; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition_, NDR_POINTER_UNIQUE, "Pointer to Pszdestpartition (uint8)",hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_CHANGE_DP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_CHANGE_DP);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_ZONE_SECSECURE_NO_SECURITY=0x00, */
+/* IDL:        DNS_ZONE_SECSECURE_NS_ONLY=0x01, */
+/* IDL:        DNS_ZONE_SECSECURE_LIST_ONLY=0x02, */
+/* IDL:        DNS_ZONE_SECSECURE_NO_XFER=0x03, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_ZONE_NOTIFY_OFF=0x00, */
+/* IDL:        DNS_ZONE_NOTIFY_ALL_SECONDARIES=0x01, */
+/* IDL:        DNS_ZONE_NOTIFY_LIST_ONLY=0x02, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_ZONE_REQUEST_PRIMARY=0x00000001, */
+/* IDL:        DNS_ZONE_REQUEST_SECONDARY=0x00000002, */
+/* IDL:        DNS_ZONE_REQUEST_CACHE=0x00000004, */
+/* IDL:        DNS_ZONE_REQUEST_AUTO=0x00000008, */
+/* IDL:        DNS_ZONE_REQUEST_FORWARD=0x00000010, */
+/* IDL:        DNS_ZONE_REQUEST_REVERSE=0x00000020, */
+/* IDL:        DNS_ZONE_REQUEST_FORWARDER=0x00000040, */
+/* IDL:        DNS_ZONE_REQUEST_STUB=0x00000080, */
+/* IDL:        DNS_ZONE_REQUEST_DS=0x00000100, */
+/* IDL:        DNS_ZONE_REQUEST_NON_DS=0x00000200, */
+/* IDL:        DNS_ZONE_REQUEST_DOMAIN_DP=0x00000400, */
+/* IDL:        DNS_ZONE_REQUEST_FOREST_DP=0x00000800, */
+/* IDL:        DNS_ZONE_REQUEST_CUSTOM_DP=0x00001000, */
+/* IDL:        DNS_ZONE_REQUEST_LEGACY_DP=0x00002000, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_ZONE_REQUEST_FILTERS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DNS_RPC_ZONE_PAUSED =  0x0001 , */
+/* IDL:        DNS_RPC_ZONE_SHUTDOWN =  0x0002 , */
+/* IDL:        DNS_RPC_ZONE_REVERSE =  0x0004 , */
+/* IDL:        DNS_RPC_ZONE_AUTOCREATED =  0x0008 , */
+/* IDL:        DNS_RPC_ZONE_DSINTEGRATED =  0x0010 , */
+/* IDL:        DNS_RPC_ZONE_AGING =  0x0020 , */
+/* IDL:        DNS_RPC_ZONE_UPDATE_UNSECURE =  0x0040 , */
+/* IDL:        DNS_RPC_ZONE_UPDATE_SECURE =  0x0080 , */
+/* IDL:        DNS_RPC_ZONE_READONLY =  0x0100 , */
+/* IDL: } */
+
+int
+dnsserver_dissect_bitmap_DNS_RPC_ZONE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dnsserver_DNS_RPC_ZONE_FLAGS);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_PAUSED, tvb, offset-4, 4, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_PAUSED");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_SHUTDOWN, tvb, offset-4, 4, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_SHUTDOWN");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_REVERSE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_REVERSE");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AUTOCREATED, tvb, offset-4, 4, flags);
+       if (flags&( 0x0008 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_AUTOCREATED");
+               if (flags & (~( 0x0008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0008 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_DSINTEGRATED, tvb, offset-4, 4, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_DSINTEGRATED");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AGING, tvb, offset-4, 4, flags);
+       if (flags&( 0x0020 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_AGING");
+               if (flags & (~( 0x0020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0020 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_UNSECURE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0040 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_UPDATE_UNSECURE");
+               if (flags & (~( 0x0040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0040 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_SECURE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0080 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_UPDATE_SECURE");
+               if (flags & (~( 0x0080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0080 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_READONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x0100 )){
+               proto_item_append_text(item, "DNS_RPC_ZONE_READONLY");
+               if (flags & (~( 0x0100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0100 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszZoneName; */
+/* IDL:        DNS_RPC_ZONE_FLAGS Flags; */
+/* IDL:        uint8 ZoneType; */
+/* IDL:        uint8 Version; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_W2K_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_W2K_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint16)",hf_dnsserver_DNS_RPC_ZONE_W2K_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_W2K_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_ZONE_W2K_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_W2K_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_bitmap_DNS_RPC_ZONE_FLAGS(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_W2K_Flags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_W2K_ZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_W2K_ZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_W2K_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_W2K_Version, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_W2K_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_W2K_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_W2K_ZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_W2K_Version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pszZoneName; */
+/* IDL:        DNS_RPC_ZONE_FLAGS Flags; */
+/* IDL:        uint8 ZoneType; */
+/* IDL:        uint8 Version; */
+/* IDL:        DNS_RPC_DP_FLAGS dwDpFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint16)",hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_bitmap_DNS_RPC_ZONE_FLAGS(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DOTNET_Flags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_ZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DOTNET_ZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DOTNET_Version, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_bitmap_DNS_RPC_DP_FLAGS(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwDpFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_ZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_Version(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_dwDpFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DOTNET_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,500000)] uint32 dwZoneCount; */
+/* IDL:        [unique(1)] [size_is(dwZoneCount)] DNS_RPC_ZONE_W2K *ZoneArray[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_dwZoneCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray__, NDR_POINTER_UNIQUE, "Pointer to Zonearray (DNS_RPC_ZONE_W2K)",hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_ZoneArray);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_ZoneArray,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_LIST_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_LIST_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_dwZoneCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_LIST_W2K_ZoneArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [range(0,500000)] uint32 dwZoneCount; */
+/* IDL:        [unique(1)] [size_is(dwZoneCount)] DNS_RPC_ZONE_DOTNET *ZoneArray[*]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwZoneCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwZoneCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray_);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray__, NDR_POINTER_UNIQUE, "Pointer to Zonearray (DNS_RPC_ZONE_DOTNET)",hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_LIST_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_LIST_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_dwZoneCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneName; */
+/* IDL:        uint32 dwZoneType; */
+/* IDL:        uint32 fReverse; */
+/* IDL:        dns_zone_update fAllowUpdate; */
+/* IDL:        uint32 fPaused; */
+/* IDL:        uint32 fShutdown; */
+/* IDL:        uint32 fAutoCreated; */
+/* IDL:        uint32 fUseDatabase; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDataFile; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipMasters; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipSecondaries; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipNotify; */
+/* IDL:        uint32 fUseWins; */
+/* IDL:        uint32 fUseNbstat; */
+/* IDL:        uint32 fAging; */
+/* IDL:        uint32 dwNoRefreshInterval; */
+/* IDL:        uint32 dwRefreshInterval; */
+/* IDL:        uint32 dwAvailForScavengeTime; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipScavengeServers; */
+/* IDL:        uint32 pvReserved1; */
+/* IDL:        uint32 pvReserved2; */
+/* IDL:        uint32 pvReserved3; */
+/* IDL:        uint32 pvReserved4; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fReverse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fReverse, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_zone_update(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAllowUpdate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fPaused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fPaused, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fShutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fShutdown, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAutoCreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAutoCreated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseDatabase(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseDatabase, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszDataFile_, NDR_POINTER_UNIQUE, "Pointer to Pszdatafile (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszDataFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszDataFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipMasters_, NDR_POINTER_UNIQUE, "Pointer to Aipmasters (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipNotify_, NDR_POINTER_UNIQUE, "Pointer to Aipnotify (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipNotify);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipNotify,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseWins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseWins, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseNbstat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseNbstat, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAging, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwNoRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwAvailForScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwAvailForScavengeTime, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers_, NDR_POINTER_UNIQUE, "Pointer to Aipscavengeservers (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved2, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved3, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved4, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_INFO_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fReverse(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fPaused(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fShutdown(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAutoCreated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseDatabase(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pszDataFile(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipNotify(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseWins(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fUseNbstat(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_fAging(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwNoRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_dwAvailForScavengeTime(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_W2K_pvReserved4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneName; */
+/* IDL:        uint32 dwZoneType; */
+/* IDL:        uint32 fReverse; */
+/* IDL:        dns_zone_update fAllowUpdate; */
+/* IDL:        uint32 fPaused; */
+/* IDL:        uint32 fShutdown; */
+/* IDL:        uint32 fAutoCreated; */
+/* IDL:        uint32 fUseDatabase; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDataFile; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipMasters; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipSecondaries; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipNotify; */
+/* IDL:        uint32 fUseWins; */
+/* IDL:        uint32 fUseNbstat; */
+/* IDL:        uint32 fAging; */
+/* IDL:        uint32 dwNoRefreshInterval; */
+/* IDL:        uint32 dwRefreshInterval; */
+/* IDL:        uint32 dwAvailForScavengeTime; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipScavengeServers; */
+/* IDL:        uint32 dwForwarderTimeout; */
+/* IDL:        uint32 fForwarderSlave; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipLocalMasters; */
+/* IDL:        uint32 dwDpFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pwszZoneDn; */
+/* IDL:        uint32 dwLastSuccessfulSoaCheck; */
+/* IDL:        uint32 dwLastSuccessfulXfr; */
+/* IDL:        uint32 dwReserved1; */
+/* IDL:        uint32 dwReserved2; */
+/* IDL:        uint32 dwReserved3; */
+/* IDL:        uint32 dwReserved4; */
+/* IDL:        uint32 dwReserved5; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pReserved1; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pReserved2; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pReserved3; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pReserved4; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fReverse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fReverse, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_zone_update(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAllowUpdate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fPaused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fPaused, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fShutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fShutdown, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAutoCreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAutoCreated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseDatabase(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseDatabase, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile_, NDR_POINTER_UNIQUE, "Pointer to Pszdatafile (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipMasters_, NDR_POINTER_UNIQUE, "Pointer to Aipmasters (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipNotify_, NDR_POINTER_UNIQUE, "Pointer to Aipnotify (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipNotify);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipNotify,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseWins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseWins, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseNbstat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseNbstat, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAging, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwNoRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwAvailForScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwAvailForScavengeTime, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers_, NDR_POINTER_UNIQUE, "Pointer to Aipscavengeservers (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fForwarderSlave(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fForwarderSlave, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters_, NDR_POINTER_UNIQUE, "Pointer to Aiplocalmasters (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwDpFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn_, NDR_POINTER_UNIQUE, "Pointer to Pwszzonedn (uint16)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulSoaCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulSoaCheck, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulXfr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulXfr, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved2, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved3, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved4, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved1_, NDR_POINTER_UNIQUE, "Pointer to Preserved1 (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved1);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved2_, NDR_POINTER_UNIQUE, "Pointer to Preserved2 (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved2);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved3_, NDR_POINTER_UNIQUE, "Pointer to Preserved3 (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved3);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved3, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved4_, NDR_POINTER_UNIQUE, "Pointer to Preserved4 (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved4);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved4, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_INFO_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fReverse(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fPaused(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fShutdown(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAutoCreated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseDatabase(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipNotify(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseWins(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fUseNbstat(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fAging(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwNoRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwAvailForScavengeTime(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_fForwarderSlave(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwDpFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulSoaCheck(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulXfr(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved4(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_DOTNET_pReserved4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneName; */
+/* IDL:        uint32 dwZoneType; */
+/* IDL:        uint32 fReverse; */
+/* IDL:        dns_zone_update fAllowUpdate; */
+/* IDL:        uint32 fPaused; */
+/* IDL:        uint32 fShutdown; */
+/* IDL:        uint32 fAutoCreated; */
+/* IDL:        uint32 fUseDatabase; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDataFile; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipMasters; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipSecondaries; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipNotify; */
+/* IDL:        uint32 fUseWins; */
+/* IDL:        uint32 fUseNbstat; */
+/* IDL:        uint32 fAging; */
+/* IDL:        uint32 dwNoRefreshInterval; */
+/* IDL:        uint32 dwRefreshInterval; */
+/* IDL:        uint32 dwAvailForScavengeTime; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipScavengeServers; */
+/* IDL:        uint32 dwForwarderTimeout; */
+/* IDL:        uint32 fForwarderSlave; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipLocalMasters; */
+/* IDL:        uint32 dwDpFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pwszZoneDn; */
+/* IDL:        uint32 dwLastSuccessfulSoaCheck; */
+/* IDL:        uint32 dwLastSuccessfulXfr; */
+/* IDL:        uint32 fQueuedForBackgroundLoad; */
+/* IDL:        uint32 fBackgroundLoadInProgress; */
+/* IDL:        uint32 fReadOnlyZone; */
+/* IDL:        uint32 dwLastXfrAttempt; */
+/* IDL:        uint32 dwLastXfrResult; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fReverse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fReverse, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_zone_update(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAllowUpdate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fPaused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fPaused, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fShutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fShutdown, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAutoCreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAutoCreated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseDatabase(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseDatabase, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile_, NDR_POINTER_UNIQUE, "Pointer to Pszdatafile (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters_, NDR_POINTER_UNIQUE, "Pointer to Aipmasters (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify_, NDR_POINTER_UNIQUE, "Pointer to Aipnotify (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseWins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseWins, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseNbstat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseNbstat, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAging, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwNoRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwNoRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwRefreshInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwRefreshInterval, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwAvailForScavengeTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwAvailForScavengeTime, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers_, NDR_POINTER_UNIQUE, "Pointer to Aipscavengeservers (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwForwarderTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwForwarderTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fForwarderSlave(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fForwarderSlave, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters_, NDR_POINTER_UNIQUE, "Pointer to Aiplocalmasters (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwDpFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn_, NDR_POINTER_UNIQUE, "Pointer to Pwszzonedn (uint16)",hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulSoaCheck(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulSoaCheck, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulXfr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulXfr, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fQueuedForBackgroundLoad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fQueuedForBackgroundLoad, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fBackgroundLoadInProgress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fBackgroundLoadInProgress, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fReadOnlyZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fReadOnlyZone, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrAttempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrAttempt, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrResult, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fReverse(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fPaused(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fShutdown(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAutoCreated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseDatabase(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseWins(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fUseNbstat(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fAging(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwNoRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwRefreshInterval(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwAvailForScavengeTime(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwForwarderTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fForwarderSlave(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwDpFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulSoaCheck(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulXfr(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fQueuedForBackgroundLoad(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fBackgroundLoadInProgress(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_fReadOnlyZone(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrAttempt(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrResult(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipSecondaries; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipNotify; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify_, NDR_POINTER_UNIQUE, "Pointer to Aipnotify (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipSecondaries; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipNotify; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify_, NDR_POINTER_UNIQUE, "Pointer to Aipnotify (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipSecondaries; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipNotify; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify_, NDR_POINTER_UNIQUE, "Pointer to Aipnotify (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 fDsIntegrated; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszFileName; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_fDsIntegrated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_pszFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_pszFileName_, NDR_POINTER_UNIQUE, "Pointer to Pszfilename (uint8)",hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_pszFileName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_pszFileName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_pszFileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_DATABASE_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_DATABASE_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_fDsIntegrated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_W2K_pszFileName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 fDsIntegrated; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszFileName; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_fDsIntegrated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName_, NDR_POINTER_UNIQUE, "Pointer to Pszfilename (uint8)",hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_DATABASE_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_fDsIntegrated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneName; */
+/* IDL:        uint32 dwZoneType; */
+/* IDL:        dns_zone_update fAllowUpdate; */
+/* IDL:        uint32 fAging; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDataFile; */
+/* IDL:        uint32 fDsIntegrated; */
+/* IDL:        uint32 fLoadExisting; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszAdmin; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipMasters; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipSecondaries; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved1; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved2; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved3; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved4; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved5; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved6; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved7; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pvReserved8; */
+/* IDL:        uint32 dwReserved1; */
+/* IDL:        uint32 dwReserved2; */
+/* IDL:        uint32 dwReserved3; */
+/* IDL:        uint32 dwReserved4; */
+/* IDL:        uint32 dwReserved5; */
+/* IDL:        uint32 dwReserved6; */
+/* IDL:        uint32 dwReserved7; */
+/* IDL:        uint32 dwReserved8; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_zone_update(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fAllowUpdate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fAging, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile_, NDR_POINTER_UNIQUE, "Pointer to Pszdatafile (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fDsIntegrated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fLoadExisting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fLoadExisting, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin_, NDR_POINTER_UNIQUE, "Pointer to Pszadmin (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters_, NDR_POINTER_UNIQUE, "Pointer to Aipmasters (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved1 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved2 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved3 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved4 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved5 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved6 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved7 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8_, NDR_POINTER_UNIQUE, "Pointer to Pvreserved8 (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved2, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved3, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved4, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved5, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved6, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved7, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved8, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fAging(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fDsIntegrated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fLoadExisting(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved4(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved5(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved6(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved7(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneName; */
+/* IDL:        uint32 dwZoneType; */
+/* IDL:        dns_zone_update fAllowUpdate; */
+/* IDL:        uint32 fAging; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDataFile; */
+/* IDL:        uint32 fDsIntegrated; */
+/* IDL:        uint32 fLoadExisting; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszAdmin; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipMasters; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipSecondaries; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        uint32 dwTimeout; */
+/* IDL:        uint32 fRecurseAfterForwarding; */
+/* IDL:        uint32 dwDpFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        uint32 dwReserved[32]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_zone_update(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAllowUpdate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAging, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile_, NDR_POINTER_UNIQUE, "Pointer to Pszdatafile (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fDsIntegrated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fLoadExisting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fLoadExisting, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin_, NDR_POINTER_UNIQUE, "Pointer to Pszadmin (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters_, NDR_POINTER_UNIQUE, "Pointer to Aipmasters (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (IP4_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwDpFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 32; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAging(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fDsIntegrated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fLoadExisting(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwDpFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneName; */
+/* IDL:        uint32 dwZoneType; */
+/* IDL:        dns_zone_update fAllowUpdate; */
+/* IDL:        uint32 fAging; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDataFile; */
+/* IDL:        uint32 fDsIntegrated; */
+/* IDL:        uint32 fLoadExisting; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszAdmin; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipMasters; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipSecondaries; */
+/* IDL:        DNS_ZONE_SECONDARY_SECURITY fSecureSecondaries; */
+/* IDL:        DNS_ZONE_NOTIFY_LEVEL fNotifyLevel; */
+/* IDL:        uint32 dwTimeout; */
+/* IDL:        uint32 fRecurseAfterForwarding; */
+/* IDL:        uint32 dwDpFlags; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszDpFqdn; */
+/* IDL:        uint32 dwReserved[32]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName_, NDR_POINTER_UNIQUE, "Pointer to Pszzonename (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwZoneType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwZoneType, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAllowUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_zone_update(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAllowUpdate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAging(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAging, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile_, NDR_POINTER_UNIQUE, "Pointer to Pszdatafile (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fDsIntegrated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fDsIntegrated, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fLoadExisting(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fLoadExisting, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin_, NDR_POINTER_UNIQUE, "Pointer to Pszadmin (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters_, NDR_POINTER_UNIQUE, "Pointer to Aipmasters (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries_, NDR_POINTER_UNIQUE, "Pointer to Aipsecondaries (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fSecureSecondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fSecureSecondaries, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fNotifyLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fNotifyLevel, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwDpFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwDpFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszdpfqdn (uint8)",hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 32; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwZoneType(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAllowUpdate(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAging(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fDsIntegrated(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fLoadExisting(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fSecureSecondaries(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fNotifyLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwDpFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszZoneExportFile; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile_, NDR_POINTER_UNIQUE, "Pointer to Pszzoneexportfile (uint8)",hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ZONE_EXPORT_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ZONE_EXPORT_INFO);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 dwFilter; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszPartitionFqdn; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszQueryString; */
+/* IDL:        DNS_EXTENSION pszReserved[6]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwFilter, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn_, NDR_POINTER_UNIQUE, "Pointer to Pszpartitionfqdn (uint8)",hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString_, NDR_POINTER_UNIQUE, "Pointer to Pszquerystring (uint8)",hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_EXTENSION(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszReserved,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_ENUM_ZONES_FILTER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_ENUM_ZONES_FILTER);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_dwFilter(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_ENUM_ZONES_FILTER_pszReserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 fRecurseAfterForwarding; */
+/* IDL:        uint32 dwForwardTimeout; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipForwarders; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_W2K_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_W2K_dwForwardTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_aipForwarders_, NDR_POINTER_UNIQUE, "Pointer to Aipforwarders (IP4_ARRAY)",hf_dnsserver_DNS_RPC_FORWARDERS_W2K_aipForwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_FORWARDERS_W2K_aipForwarders,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_FORWARDERS_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_FORWARDERS_W2K);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_dwForwardTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_W2K_aipForwarders(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 fRecurseAfterForwarding; */
+/* IDL:        uint32 dwForwardTimeout; */
+/* IDL:        [unique(1)] IP4_ARRAY *aipForwarders; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwForwardTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_aipForwarders_, NDR_POINTER_UNIQUE, "Pointer to Aipforwarders (IP4_ARRAY)",hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_aipForwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_aipForwarders,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_FORWARDERS_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_FORWARDERS_DOTNET);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_dwForwardTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_DOTNET_aipForwarders(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        uint32 fRecurseAfterForwarding; */
+/* IDL:        uint32 dwForwardTimeout; */
+/* IDL:        [unique(1)] DNS_ADDR_ARRAY *aipForwarders; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_fRecurseAfterForwarding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_fRecurseAfterForwarding, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwForwardTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwForwardTimeout, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders_, NDR_POINTER_UNIQUE, "Pointer to Aipforwarders (DNS_ADDR_ARRAY)",hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_FORWARDERS_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_FORWARDERS_LONGHORN);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_fRecurseAfterForwarding(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_dwForwardTimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS=0x00000001, */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS=0x00000002, */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_ZONES=0x00000004, */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT=0x00000010, */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND=0x00000020, */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND=0x00000040, */
+/* IDL:        DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR=0x00008000, */
+/* IDL:        DNS_RPC_AUTOCONFIG_ALL=0xFFFFFFFF, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_RPC_AUTOCONFIG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwRpcStructureVersion; */
+/* IDL:        uint32 dwReserved0; */
+/* IDL:        DNS_RPC_AUTOCONFIG dwAutoConfigFlags; */
+/* IDL:        uint32 dwReserved1; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *pszNewDomainName; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwRpcStructureVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwRpcStructureVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwReserved0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwReserved0, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwAutoConfigFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_AUTOCONFIG(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwAutoConfigFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwReserved1, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_pszNewDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_pszNewDomainName_, NDR_POINTER_UNIQUE, "Pointer to Psznewdomainname (uint8)",hf_dnsserver_DNS_RPC_AUTOCONFIGURE_pszNewDomainName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_pszNewDomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNS_RPC_AUTOCONFIGURE_pszNewDomainName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_AUTOCONFIGURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_AUTOCONFIGURE);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwRpcStructureVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwReserved0(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwAutoConfigFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_dwReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_AUTOCONFIGURE_pszNewDomainName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DNS_EVENT_LOG_SUCCESS =  0x00000000 , */
+/* IDL:        DNS_EVENT_LOG_ERROR_TYPE =  0x00000001 , */
+/* IDL:        DNS_EVENT_LOG_WARNING_TYPE =  0x00000002 , */
+/* IDL:        DNS_EVENT_LOG_INFORMATION_TYPE =  0x00000004 , */
+/* IDL: } */
+
+int
+dnsserver_dissect_bitmap_DNS_EVENT_LOG_TYPES(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dnsserver_DNS_EVENT_LOG_TYPES);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_SUCCESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000000 )){
+               proto_item_append_text(item, "DNS_EVENT_LOG_SUCCESS");
+               if (flags & (~( 0x00000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000000 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_ERROR_TYPE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DNS_EVENT_LOG_ERROR_TYPE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_WARNING_TYPE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DNS_EVENT_LOG_WARNING_TYPE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_INFORMATION_TYPE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DNS_EVENT_LOG_INFORMATION_TYPE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DNS_RPC_VIEW_AUTHORITY_DATA =  0x00000001 , */
+/* IDL:        DNS_RPC_VIEW_CACHE_DATA =  0x00000002 , */
+/* IDL:        DNS_RPC_VIEW_GLUE_DATA =  0x00000004 , */
+/* IDL:        DNS_RPC_VIEW_ROOT_HINT_DATA =  0x00000008 , */
+/* IDL:        DNS_RPC_VIEW_ADDITIONAL_DATA =  0x00000010 , */
+/* IDL:        DNS_RPC_VIEW_NO_CHILDREN =  0x00010000 , */
+/* IDL:        DNS_RPC_VIEW_ONLY_CHILDREN =  0x00020000 , */
+/* IDL: } */
+
+int
+dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dnsserver_DNS_SELECT_FLAGS);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_AUTHORITY_DATA");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_CACHE_DATA");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_GLUE_DATA");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_ROOT_HINT_DATA");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_ADDITIONAL_DATA");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_NO_CHILDREN");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "DNS_RPC_VIEW_ONLY_CHILDREN");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 StatId; */
+/* IDL:        uint16 wLength; */
+/* IDL:        uint8 fClear; */
+/* IDL:        uint8 fReserved; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_HEADER_StatId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_STAT_HEADER_StatId, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_HEADER_wLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_STAT_HEADER_wLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_HEADER_fClear(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_STAT_HEADER_fClear, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_HEADER_fReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_STAT_HEADER_fReserved, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNSSRV_STAT_HEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNSSRV_STAT_HEADER);
+       }
+       
+       offset = dnsserver_dissect_element_DNSSRV_STAT_HEADER_StatId(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNSSRV_STAT_HEADER_wLength(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNSSRV_STAT_HEADER_fClear(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNSSRV_STAT_HEADER_fReserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        DNSSRV_STAT_HEADER Header; */
+/* IDL:        uint8 Buffer[1]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_Header(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNSSRV_STAT_HEADER(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_STAT_Header,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 1; i++)
+               offset = dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_STAT_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_STAT_Buffer, 0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNSSRV_STAT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNSSRV_STAT);
+       }
+       
+       offset = dnsserver_dissect_element_DNSSRV_STAT_Header(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNSSRV_STAT_Buffer(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DNSSRV_TYPEID_NULL=0, */
+/* IDL:        DNSSRV_TYPEID_DWORD=1, */
+/* IDL:        DNSSRV_TYPEID_LPSTR=2, */
+/* IDL:        DNSSRV_TYPEID_LPWSTR=3, */
+/* IDL:        DNSSRV_TYPEID_IPARRAY=4, */
+/* IDL:        DNSSRV_TYPEID_BUFFER=5, */
+/* IDL:        DNSSRV_TYPEID_SERVER_INFO_W2K=6, */
+/* IDL:        DNSSRV_TYPEID_STATS=7, */
+/* IDL:        DNSSRV_TYPEID_FORWARDERS_W2K=8, */
+/* IDL:        DNSSRV_TYPEID_ZONE_W2K=9, */
+/* IDL:        DNSSRV_TYPEID_ZONE_INFO_W2K=10, */
+/* IDL:        DNSSRV_TYPEID_ZONE_SECONDARIES_W2K=11, */
+/* IDL:        DNSSRV_TYPEID_ZONE_DATABASE_W2K=12, */
+/* IDL:        DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K=13, */
+/* IDL:        DNSSRV_TYPEID_ZONE_CREATE_W2K=14, */
+/* IDL:        DNSSRV_TYPEID_NAME_AND_PARAM=15, */
+/* IDL:        DNSSRV_TYPEID_ZONE_LIST_W2K=16, */
+/* IDL:        DNSSRV_TYPEID_ZONE_RENAME=17, */
+/* IDL:        DNSSRV_TYPEID_ZONE_EXPORT=18, */
+/* IDL:        DNSSRV_TYPEID_SERVER_INFO_DOTNET=19, */
+/* IDL:        DNSSRV_TYPEID_FORWARDERS_DOTNET=20, */
+/* IDL:        DNSSRV_TYPEID_ZONE=21, */
+/* IDL:        DNSSRV_TYPEID_ZONE_INFO_DOTNET=22, */
+/* IDL:        DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET=23, */
+/* IDL:        DNSSRV_TYPEID_ZONE_DATABASE=24, */
+/* IDL:        DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET=25, */
+/* IDL:        DNSSRV_TYPEID_ZONE_CREATE_DOTNET=26, */
+/* IDL:        DNSSRV_TYPEID_ZONE_LIST=27, */
+/* IDL:        DNSSRV_TYPEID_DP_ENUM=28, */
+/* IDL:        DNSSRV_TYPEID_DP_INFO=29, */
+/* IDL:        DNSSRV_TYPEID_DP_LIST=30, */
+/* IDL:        DNSSRV_TYPEID_ENLIST_DP=31, */
+/* IDL:        DNSSRV_TYPEID_ZONE_CHANGE_DP=32, */
+/* IDL:        DNSSRV_TYPEID_ENUM_ZONES_FILTER=33, */
+/* IDL:        DNSSRV_TYPEID_ADDRARRAY=34, */
+/* IDL:        DNSSRV_TYPEID_SERVER_INFO=35, */
+/* IDL:        DNSSRV_TYPEID_ZONE_INFO=36, */
+/* IDL:        DNSSRV_TYPEID_FORWARDERS=37, */
+/* IDL:        DNSSRV_TYPEID_ZONE_SECONDARIES=38, */
+/* IDL:        DNSSRV_TYPEID_ZONE_TYPE_RESET=39, */
+/* IDL:        DNSSRV_TYPEID_ZONE_CREATE=40, */
+/* IDL:        DNSSRV_TYPEID_IP_VALIDATE=41, */
+/* IDL:        DNSSRV_TYPEID_AUTOCONFIGURE=42, */
+/* IDL:        DNSSRV_TYPEID_UTF8_STRING_LIST=43, */
+/* IDL:        DNSSRV_TYPEID_UNICODE_STRING_LIST=44, */
+/* IDL: } */
+
+int
+dnsserver_dissect_enum_DNS_RPC_TYPEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint3264)] union { */
+/* IDL: [case(DNSSRV_TYPEID_NULL)] [unique(1)] [case(DNSSRV_TYPEID_NULL)] uint8 *Null; */
+/* IDL: [case(DNSSRV_TYPEID_DWORD)] [case(DNSSRV_TYPEID_DWORD)] uint32 Dword; */
+/* IDL: [case(DNSSRV_TYPEID_LPSTR)] [unique(1)] [charset(UTF8)] [case(DNSSRV_TYPEID_LPSTR)] uint8 *String; */
+/* IDL: [case(DNSSRV_TYPEID_LPWSTR)] [unique(1)] [charset(UTF16)] [case(DNSSRV_TYPEID_LPWSTR)] uint16 *WideString; */
+/* IDL: [case(DNSSRV_TYPEID_IPARRAY)] [unique(1)] [case(DNSSRV_TYPEID_IPARRAY)] IP4_ARRAY *IpArray; */
+/* IDL: [case(DNSSRV_TYPEID_BUFFER)] [unique(1)] [case(DNSSRV_TYPEID_BUFFER)] DNS_RPC_BUFFER *Buffer; */
+/* IDL: [case(DNSSRV_TYPEID_SERVER_INFO_W2K)] [unique(1)] [case(DNSSRV_TYPEID_SERVER_INFO_W2K)] DNS_RPC_SERVER_INFO_W2K *ServerInfoW2K; */
+/* IDL: [case(DNSSRV_TYPEID_STATS)] [unique(1)] [case(DNSSRV_TYPEID_STATS)] DNSSRV_STAT *Stats; */
+/* IDL: [case(DNSSRV_TYPEID_FORWARDERS_W2K)] [unique(1)] [case(DNSSRV_TYPEID_FORWARDERS_W2K)] DNS_RPC_FORWARDERS_W2K *ForwardersW2K; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_W2K)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_W2K)] DNS_RPC_ZONE_W2K *ZoneW2K; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_INFO_W2K)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_INFO_W2K)] DNS_RPC_ZONE_INFO_W2K *ZoneInfoW2K; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_SECONDARIES_W2K)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_SECONDARIES_W2K)] DNS_RPC_ZONE_SECONDARIES_W2K *SecondariesW2K; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_DATABASE_W2K)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_DATABASE_W2K)] DNS_RPC_ZONE_DATABASE_W2K *DatabaseW2K; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_CREATE_W2K)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_CREATE_W2K)] DNS_RPC_ZONE_CREATE_INFO_W2K *ZoneCreateW2K; */
+/* IDL: [case(DNSSRV_TYPEID_NAME_AND_PARAM)] [unique(1)] [case(DNSSRV_TYPEID_NAME_AND_PARAM)] DNS_RPC_NAME_AND_PARAM *NameAndParam; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_LIST_W2K)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_LIST_W2K)] DNS_RPC_ZONE_LIST_W2K *ZoneListW2K; */
+/* IDL: [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET)] [unique(1)] [case(DNSSRV_TYPEID_SERVER_INFO_DOTNET)] DNS_RPC_SERVER_INFO_DOTNET *ServerInfoDotNet; */
+/* IDL: [case(DNSSRV_TYPEID_FORWARDERS_DOTNET)] [unique(1)] [case(DNSSRV_TYPEID_FORWARDERS_DOTNET)] DNS_RPC_FORWARDERS_DOTNET *ForwardersDotNet; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE)] [unique(1)] [case(DNSSRV_TYPEID_ZONE)] DNS_RPC_ZONE_DOTNET *Zone; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_INFO_DOTNET)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_INFO_DOTNET)] DNS_RPC_ZONE_INFO_DOTNET *ZoneInfoDotNet; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET)] DNS_RPC_ZONE_SECONDARIES_DOTNET *SecondariesDotNet; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_DATABASE)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_DATABASE)] DNS_RPC_ZONE_DATABASE_DOTNET *Database; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_CREATE_DOTNET)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_CREATE_DOTNET)] DNS_RPC_ZONE_CREATE_INFO_DOTNET *ZoneCreateDotNet; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_LIST)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_LIST)] DNS_RPC_ZONE_LIST_DOTNET *ZoneList; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_EXPORT)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_EXPORT)] DNS_RPC_ZONE_EXPORT_INFO *ZoneExport; */
+/* IDL: [case(DNSSRV_TYPEID_DP_INFO)] [unique(1)] [case(DNSSRV_TYPEID_DP_INFO)] DNS_RPC_DP_INFO *DirectoryPartition; */
+/* IDL: [case(DNSSRV_TYPEID_DP_ENUM)] [unique(1)] [case(DNSSRV_TYPEID_DP_ENUM)] DNS_RPC_DP_ENUM *DirectoryPartitionEnum; */
+/* IDL: [case(DNSSRV_TYPEID_DP_LIST)] [unique(1)] [case(DNSSRV_TYPEID_DP_LIST)] DNS_RPC_DP_LIST *DirectoryPartitionList; */
+/* IDL: [case(DNSSRV_TYPEID_ENLIST_DP)] [unique(1)] [case(DNSSRV_TYPEID_ENLIST_DP)] DNS_RPC_ENLIST_DP *EnlistDirectoryPartition; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_CHANGE_DP)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_CHANGE_DP)] DNS_RPC_ZONE_CHANGE_DP *ZoneChangeDirectoryPartition; */
+/* IDL: [case(DNSSRV_TYPEID_ENUM_ZONES_FILTER)] [unique(1)] [case(DNSSRV_TYPEID_ENUM_ZONES_FILTER)] DNS_RPC_ENUM_ZONES_FILTER *EnumZonesFilter; */
+/* IDL: [case(DNSSRV_TYPEID_ADDRARRAY)] [unique(1)] [case(DNSSRV_TYPEID_ADDRARRAY)] DNS_ADDR_ARRAY *AddrArray; */
+/* IDL: [case(DNSSRV_TYPEID_SERVER_INFO)] [unique(1)] [case(DNSSRV_TYPEID_SERVER_INFO)] DNS_RPC_SERVER_INFO_LONGHORN *ServerInfo; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_CREATE)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_CREATE)] DNS_RPC_ZONE_CREATE_INFO_LONGHORN *ZoneCreate; */
+/* IDL: [case(DNSSRV_TYPEID_FORWARDERS)] [unique(1)] [case(DNSSRV_TYPEID_FORWARDERS)] DNS_RPC_FORWARDERS_LONGHORN *Forwarders; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_SECONDARIES)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_SECONDARIES)] DNS_RPC_ZONE_SECONDARIES_LONGHORN *Secondaries; */
+/* IDL: [case(DNSSRV_TYPEID_IP_VALIDATE)] [unique(1)] [case(DNSSRV_TYPEID_IP_VALIDATE)] DNS_RPC_IP_VALIDATE *IpValidate; */
+/* IDL: [case(DNSSRV_TYPEID_ZONE_INFO)] [unique(1)] [case(DNSSRV_TYPEID_ZONE_INFO)] DNS_RPC_ZONE_INFO_LONGHORN *ZoneInfo; */
+/* IDL: [case(DNSSRV_TYPEID_AUTOCONFIGURE)] [unique(1)] [case(DNSSRV_TYPEID_AUTOCONFIGURE)] DNS_RPC_AUTOCONFIGURE *AutoConfigure; */
+/* IDL: [case(DNSSRV_TYPEID_UTF8_STRING_LIST)] [unique(1)] [case(DNSSRV_TYPEID_UTF8_STRING_LIST)] DNS_RPC_UTF8_STRING_LIST *Utf8StringList; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Null_, NDR_POINTER_UNIQUE, "Pointer to Null (uint8)",hf_dnsserver_DNSSRV_RPC_UNION_Null);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Null_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_RPC_UNION_Null, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Dword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNSSRV_RPC_UNION_Dword, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_String_, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_dnsserver_DNSSRV_RPC_UNION_String);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_String_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DNSSRV_RPC_UNION_String, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_WideString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_WideString_, NDR_POINTER_UNIQUE, "Pointer to Widestring (uint16)",hf_dnsserver_DNSSRV_RPC_UNION_WideString);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_WideString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DNSSRV_RPC_UNION_WideString, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_IpArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_IpArray_, NDR_POINTER_UNIQUE, "Pointer to Iparray (IP4_ARRAY)",hf_dnsserver_DNSSRV_RPC_UNION_IpArray);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_IpArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_IP4_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_IpArray,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DNS_RPC_BUFFER)",hf_dnsserver_DNSSRV_RPC_UNION_Buffer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_BUFFER(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Buffer,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoW2K_, NDR_POINTER_UNIQUE, "Pointer to Serverinfow2k (DNS_RPC_SERVER_INFO_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Stats(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Stats_, NDR_POINTER_UNIQUE, "Pointer to Stats (DNSSRV_STAT)",hf_dnsserver_DNSSRV_RPC_UNION_Stats);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Stats_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNSSRV_STAT(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Stats,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersW2K_, NDR_POINTER_UNIQUE, "Pointer to Forwardersw2k (DNS_RPC_FORWARDERS_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_ForwardersW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_FORWARDERS_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ForwardersW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneW2K_, NDR_POINTER_UNIQUE, "Pointer to Zonew2k (DNS_RPC_ZONE_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoW2K_, NDR_POINTER_UNIQUE, "Pointer to Zoneinfow2k (DNS_RPC_ZONE_INFO_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesW2K_, NDR_POINTER_UNIQUE, "Pointer to Secondariesw2k (DNS_RPC_ZONE_SECONDARIES_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_SecondariesW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_SecondariesW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DatabaseW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_DatabaseW2K_, NDR_POINTER_UNIQUE, "Pointer to Databasew2k (DNS_RPC_ZONE_DATABASE_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_DatabaseW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DatabaseW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_DATABASE_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_DatabaseW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateW2K_, NDR_POINTER_UNIQUE, "Pointer to Zonecreatew2k (DNS_RPC_ZONE_CREATE_INFO_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_NameAndParam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_NameAndParam_, NDR_POINTER_UNIQUE, "Pointer to Nameandparam (DNS_RPC_NAME_AND_PARAM)",hf_dnsserver_DNSSRV_RPC_UNION_NameAndParam);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_NameAndParam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME_AND_PARAM(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_NameAndParam,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneListW2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneListW2K_, NDR_POINTER_UNIQUE, "Pointer to Zonelistw2k (DNS_RPC_ZONE_LIST_W2K)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneListW2K);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneListW2K_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_LIST_W2K(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneListW2K,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotNet_, NDR_POINTER_UNIQUE, "Pointer to Serverinfodotnet (DNS_RPC_SERVER_INFO_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotNet);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotNet,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersDotNet_, NDR_POINTER_UNIQUE, "Pointer to Forwardersdotnet (DNS_RPC_FORWARDERS_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_ForwardersDotNet);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_FORWARDERS_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ForwardersDotNet,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Zone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Zone_, NDR_POINTER_UNIQUE, "Pointer to Zone (DNS_RPC_ZONE_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_Zone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Zone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Zone,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoDotNet_, NDR_POINTER_UNIQUE, "Pointer to Zoneinfodotnet (DNS_RPC_ZONE_INFO_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoDotNet);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoDotNet,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesDotNet_, NDR_POINTER_UNIQUE, "Pointer to Secondariesdotnet (DNS_RPC_ZONE_SECONDARIES_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_SecondariesDotNet);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_SecondariesDotNet,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Database(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Database_, NDR_POINTER_UNIQUE, "Pointer to Database (DNS_RPC_ZONE_DATABASE_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_Database);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Database_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_DATABASE_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Database,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateDotNet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateDotNet_, NDR_POINTER_UNIQUE, "Pointer to Zonecreatedotnet (DNS_RPC_ZONE_CREATE_INFO_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateDotNet);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateDotNet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateDotNet,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneList_, NDR_POINTER_UNIQUE, "Pointer to Zonelist (DNS_RPC_ZONE_LIST_DOTNET)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneList);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_LIST_DOTNET(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneList,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneExport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneExport_, NDR_POINTER_UNIQUE, "Pointer to Zoneexport (DNS_RPC_ZONE_EXPORT_INFO)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneExport);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneExport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_EXPORT_INFO(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneExport,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Directorypartition (DNS_RPC_DP_INFO)",hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_DP_INFO(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartition,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionEnum_, NDR_POINTER_UNIQUE, "Pointer to Directorypartitionenum (DNS_RPC_DP_ENUM)",hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionEnum);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_DP_ENUM(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionEnum,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionList_, NDR_POINTER_UNIQUE, "Pointer to Directorypartitionlist (DNS_RPC_DP_LIST)",hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionList);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_DP_LIST(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionList,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_EnlistDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_EnlistDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Enlistdirectorypartition (DNS_RPC_ENLIST_DP)",hf_dnsserver_DNSSRV_RPC_UNION_EnlistDirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_EnlistDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ENLIST_DP(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_EnlistDirectoryPartition,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition_, NDR_POINTER_UNIQUE, "Pointer to Zonechangedirectorypartition (DNS_RPC_ZONE_CHANGE_DP)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_CHANGE_DP(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_EnumZonesFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_EnumZonesFilter_, NDR_POINTER_UNIQUE, "Pointer to Enumzonesfilter (DNS_RPC_ENUM_ZONES_FILTER)",hf_dnsserver_DNSSRV_RPC_UNION_EnumZonesFilter);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_EnumZonesFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ENUM_ZONES_FILTER(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_EnumZonesFilter,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_AddrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_AddrArray_, NDR_POINTER_UNIQUE, "Pointer to Addrarray (DNS_ADDR_ARRAY)",hf_dnsserver_DNSSRV_RPC_UNION_AddrArray);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_AddrArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_AddrArray,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfo_, NDR_POINTER_UNIQUE, "Pointer to Serverinfo (DNS_RPC_SERVER_INFO_LONGHORN)",hf_dnsserver_DNSSRV_RPC_UNION_ServerInfo);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_LONGHORN(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ServerInfo,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreate_, NDR_POINTER_UNIQUE, "Pointer to Zonecreate (DNS_RPC_ZONE_CREATE_INFO_LONGHORN)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreate);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreate_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_LONGHORN(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Forwarders(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Forwarders_, NDR_POINTER_UNIQUE, "Pointer to Forwarders (DNS_RPC_FORWARDERS_LONGHORN)",hf_dnsserver_DNSSRV_RPC_UNION_Forwarders);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Forwarders_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_FORWARDERS_LONGHORN(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Forwarders,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Secondaries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Secondaries_, NDR_POINTER_UNIQUE, "Pointer to Secondaries (DNS_RPC_ZONE_SECONDARIES_LONGHORN)",hf_dnsserver_DNSSRV_RPC_UNION_Secondaries);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Secondaries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_LONGHORN(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Secondaries,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_IpValidate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_IpValidate_, NDR_POINTER_UNIQUE, "Pointer to Ipvalidate (DNS_RPC_IP_VALIDATE)",hf_dnsserver_DNSSRV_RPC_UNION_IpValidate);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_IpValidate_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_IP_VALIDATE(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_IpValidate,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfo_, NDR_POINTER_UNIQUE, "Pointer to Zoneinfo (DNS_RPC_ZONE_INFO_LONGHORN)",hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfo);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_LONGHORN(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfo,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_AutoConfigure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_AutoConfigure_, NDR_POINTER_UNIQUE, "Pointer to Autoconfigure (DNS_RPC_AUTOCONFIGURE)",hf_dnsserver_DNSSRV_RPC_UNION_AutoConfigure);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_AutoConfigure_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_AUTOCONFIGURE(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_AutoConfigure,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Utf8StringList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DNSSRV_RPC_UNION_Utf8StringList_, NDR_POINTER_UNIQUE, "Pointer to Utf8stringlist (DNS_RPC_UTF8_STRING_LIST)",hf_dnsserver_DNSSRV_RPC_UNION_Utf8StringList);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNSSRV_RPC_UNION_Utf8StringList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_UTF8_STRING_LIST(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNSSRV_RPC_UNION_Utf8StringList,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DNSSRV_RPC_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint3264 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "DNSSRV_RPC_UNION");
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNSSRV_RPC_UNION);
+       }
+
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case DNSSRV_TYPEID_NULL:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Null(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_DWORD:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Dword(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_LPSTR:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_String(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_LPWSTR:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_WideString(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_IPARRAY:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_IpArray(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_BUFFER:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Buffer(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_SERVER_INFO_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_STATS:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Stats(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_FORWARDERS_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_INFO_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_SECONDARIES_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_DATABASE_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_DatabaseW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_CREATE_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_NAME_AND_PARAM:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_NameAndParam(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_LIST_W2K:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneListW2K(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_SERVER_INFO_DOTNET:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfoDotNet(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_FORWARDERS_DOTNET:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ForwardersDotNet(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Zone(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_INFO_DOTNET:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfoDotNet(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_SecondariesDotNet(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_DATABASE:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Database(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_CREATE_DOTNET:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreateDotNet(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_LIST:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneList(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_EXPORT:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneExport(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_DP_INFO:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartition(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_DP_ENUM:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionEnum(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_DP_LIST:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_DirectoryPartitionList(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ENLIST_DP:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_EnlistDirectoryPartition(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_CHANGE_DP:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ENUM_ZONES_FILTER:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_EnumZonesFilter(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ADDRARRAY:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_AddrArray(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_SERVER_INFO:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ServerInfo(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_CREATE:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneCreate(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_FORWARDERS:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Forwarders(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_SECONDARIES:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Secondaries(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_IP_VALIDATE:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_IpValidate(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_ZONE_INFO:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_ZoneInfo(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_AUTOCONFIGURE:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_AutoConfigure(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DNSSRV_TYPEID_UTF8_STRING_LIST:
+                       offset = dnsserver_dissect_element_DNSSRV_RPC_UNION_Utf8StringList(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value((12+ndr_size_DNS_RPC_NAME(&dnsNodeName,0)+3)&~3)] uint16 wLength; */
+/* IDL:        uint16 wRecordCount; */
+/* IDL:        uint32 dwFlags; */
+/* IDL:        uint32 dwChildCount; */
+/* IDL:        DNS_RPC_NAME dnsNodeName; */
+/* IDL:        DNS_RPC_RECORD records[wRecordCount]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_wLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORDS_wLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_wRecordCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORDS_wRecordCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORDS_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_dwChildCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORDS_dwChildCount, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_dnsNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_NAME(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORDS_dnsNodeName,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_records_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORDS_records,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORDS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORDS);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_wLength(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_wRecordCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_dwChildCount(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_dnsNodeName(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_records(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        DNS_RPC_RECORDS rec[count]; */
+/* IDL: } */
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DNS_RPC_RECORDS_ARRAY_count, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_rec_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORDS(tvb,offset,pinfo,tree,drep,hf_dnsserver_DNS_RPC_RECORDS_ARRAY_rec,0);
+
+       return offset;
+}
+
+int
+dnsserver_dissect_struct_DNS_RPC_RECORDS_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dnsserver_DNS_RPC_RECORDS_ARRAY);
+       }
+       
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_count(tvb, offset, pinfo, tree, drep);
+
+       offset = dnsserver_dissect_element_DNS_RPC_RECORDS_ARRAY_rec(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvOperation_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvOperation_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvOperation_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvOperation_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvOperation_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvOperation_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_dwContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation_dwContext, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvOperation_pszOperation_, NDR_POINTER_UNIQUE, "Pointer to Pszoperation (uint8)",hf_dnsserver_DnssrvOperation_pszOperation);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvOperation_pszOperation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_dwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation_dwTypeId, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation_pData, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvOperation( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [in] uint32 dwContext, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszOperation, */
+/* IDL: [in] DNS_RPC_TYPEID dwTypeId, */
+/* IDL: [in] [switch_is(dwTypeId)] DNSSRV_RPC_UNION pData */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvOperation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvOperation";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvOperation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvOperation";
+       offset = dnsserver_dissect_element_DnssrvOperation_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation_dwContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation_pszOperation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation_dwTypeId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation_pData(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvQuery_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvQuery_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvQuery_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvQuery_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery_pszOperation_, NDR_POINTER_UNIQUE, "Pointer to Pszoperation (uint8)",hf_dnsserver_DnssrvQuery_pszOperation);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvQuery_pszOperation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pdwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery_pdwTypeId_, NDR_POINTER_REF, "Pointer to Pdwtypeid (DNS_RPC_TYPEID)",hf_dnsserver_DnssrvQuery_pdwTypeId);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_pdwTypeId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvQuery_pdwTypeId, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_ppData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery_ppData_, NDR_POINTER_REF, "Pointer to Ppdata (DNSSRV_RPC_UNION)",hf_dnsserver_DnssrvQuery_ppData);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery_ppData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvQuery_ppData, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvQuery( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszOperation, */
+/* IDL: [out] [ref] DNS_RPC_TYPEID *pdwTypeId, */
+/* IDL: [out] [ref] [switch_is(*pdwTypeId)] DNSSRV_RPC_UNION *ppData */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvQuery_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvQuery";
+       offset = dnsserver_dissect_element_DnssrvQuery_pdwTypeId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dnsserver_dissect_element_DnssrvQuery_ppData(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvQuery_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvQuery";
+       offset = dnsserver_dissect_element_DnssrvQuery_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvQuery_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvQuery_pszOperation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvComplexOperation_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvComplexOperation_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvComplexOperation_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvComplexOperation_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation_pszOperation_, NDR_POINTER_UNIQUE, "Pointer to Pszoperation (uint8)",hf_dnsserver_DnssrvComplexOperation_pszOperation);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvComplexOperation_pszOperation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_dwTypeIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation_dwTypeIn, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pDataIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation_pDataIn, *0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pdwTypeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation_pdwTypeOut_, NDR_POINTER_REF, "Pointer to Pdwtypeout (DNS_RPC_TYPEID)",hf_dnsserver_DnssrvComplexOperation_pdwTypeOut);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_pdwTypeOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation_pdwTypeOut, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_ppDataOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation_ppDataOut_, NDR_POINTER_REF, "Pointer to Ppdataout (DNSSRV_RPC_UNION)",hf_dnsserver_DnssrvComplexOperation_ppDataOut);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation_ppDataOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation_ppDataOut, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvComplexOperation( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszOperation, */
+/* IDL: [in] DNS_RPC_TYPEID dwTypeIn, */
+/* IDL: [in] [switch_is(dwTypeIn)] DNSSRV_RPC_UNION pDataIn, */
+/* IDL: [out] [ref] DNS_RPC_TYPEID *pdwTypeOut, */
+/* IDL: [out] [ref] [switch_is(*pdwTypeOut)] DNSSRV_RPC_UNION *ppDataOut */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvComplexOperation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvComplexOperation";
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_pdwTypeOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_ppDataOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvComplexOperation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvComplexOperation";
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_pszOperation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_dwTypeIn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation_pDataIn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvEnumRecords_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvEnumRecords_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvEnumRecords_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pszNodeName_, NDR_POINTER_UNIQUE, "Pointer to Psznodename (uint8)",hf_dnsserver_DnssrvEnumRecords_pszNodeName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords_pszNodeName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszStartChild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pszStartChild_, NDR_POINTER_UNIQUE, "Pointer to Pszstartchild (uint8)",hf_dnsserver_DnssrvEnumRecords_pszStartChild);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszStartChild_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords_pszStartChild, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_wRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_record_type(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvEnumRecords_wRecordType,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_fSelectFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords_fSelectFlag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStart_, NDR_POINTER_UNIQUE, "Pointer to Pszfilterstart (uint8)",hf_dnsserver_DnssrvEnumRecords_pszFilterStart);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStart_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords_pszFilterStart, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStop_, NDR_POINTER_UNIQUE, "Pointer to Pszfilterstop (uint8)",hf_dnsserver_DnssrvEnumRecords_pszFilterStop);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords_pszFilterStop, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pdwBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pdwBufferLength_, NDR_POINTER_REF, "Pointer to Pdwbufferlength (uint32)",hf_dnsserver_DnssrvEnumRecords_pdwBufferLength);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pdwBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords_pdwBufferLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pBuffer_, NDR_POINTER_REF, "Pointer to Pbuffer (DNS_RPC_RECORDS_ARRAY)",hf_dnsserver_DnssrvEnumRecords_pBuffer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords_pBuffer__, NDR_POINTER_UNIQUE, "Pointer to Pbuffer (DNS_RPC_RECORDS_ARRAY)",hf_dnsserver_DnssrvEnumRecords_pBuffer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords_pBuffer_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               dnsserver_dissect_element_DnssrvEnumRecords_pBuffer___(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords_pBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORDS_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvEnumRecords_pBuffer,0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvEnumRecords( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszNodeName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszStartChild, */
+/* IDL: [in] dns_record_type wRecordType, */
+/* IDL: [in] DNS_SELECT_FLAGS fSelectFlag, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszFilterStart, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszFilterStop, */
+/* IDL: [out] [ref] uint32 *pdwBufferLength, */
+/* IDL: [out] [subcontext_size(*pdwBufferLength)] [subcontext(4)] [ref] DNS_RPC_RECORDS_ARRAY **pBuffer */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvEnumRecords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvEnumRecords";
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pdwBufferLength(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pBuffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvEnumRecords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvEnumRecords";
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pszNodeName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pszStartChild(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_wRecordType(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_fSelectFlag(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStart(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords_pszFilterStop(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvUpdateRecord_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvUpdateRecord_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvUpdateRecord_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvUpdateRecord_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord_pszNodeName_, NDR_POINTER_UNIQUE, "Pointer to Psznodename (uint8)",hf_dnsserver_DnssrvUpdateRecord_pszNodeName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvUpdateRecord_pszNodeName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pAddRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord_pAddRecord_, NDR_POINTER_UNIQUE, "Pointer to Paddrecord (DNS_RPC_RECORD_BUF)",hf_dnsserver_DnssrvUpdateRecord_pAddRecord);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pAddRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_BUF(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvUpdateRecord_pAddRecord,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pDeleteRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord_pDeleteRecord_, NDR_POINTER_UNIQUE, "Pointer to Pdeleterecord (DNS_RPC_RECORD_BUF)",hf_dnsserver_DnssrvUpdateRecord_pDeleteRecord);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord_pDeleteRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_BUF(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvUpdateRecord_pDeleteRecord,0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvUpdateRecord( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszNodeName, */
+/* IDL: [unique(1)] [in] DNS_RPC_RECORD_BUF *pAddRecord, */
+/* IDL: [unique(1)] [in] DNS_RPC_RECORD_BUF *pDeleteRecord */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvUpdateRecord_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvUpdateRecord";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvUpdateRecord_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvUpdateRecord";
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord_pszNodeName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord_pAddRecord(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord_pDeleteRecord(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation2_dwClientVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation2_dwSettingFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvOperation2_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvOperation2_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvOperation2_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvOperation2_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvOperation2_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvOperation2_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_dwContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation2_dwContext, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvOperation2_pszOperation_, NDR_POINTER_UNIQUE, "Pointer to Pszoperation (uint8)",hf_dnsserver_DnssrvOperation2_pszOperation);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvOperation2_pszOperation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_dwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation2_dwTypeId, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvOperation2_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvOperation2_pData, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvOperation2( */
+/* IDL: [in] DNS_RPC_CLIENT_VERSION dwClientVersion, */
+/* IDL: [in] uint32 dwSettingFlags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [in] uint32 dwContext, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszOperation, */
+/* IDL: [in] DNS_RPC_TYPEID dwTypeId, */
+/* IDL: [in] [switch_is(dwTypeId)] DNSSRV_RPC_UNION pData */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvOperation2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvOperation2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvOperation2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvOperation2";
+       offset = dnsserver_dissect_element_DnssrvOperation2_dwClientVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_dwSettingFlags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_dwContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_pszOperation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_dwTypeId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvOperation2_pData(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvQuery2_dwClientVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvQuery2_dwSettingFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery2_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvQuery2_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvQuery2_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery2_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvQuery2_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvQuery2_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery2_pszOperation_, NDR_POINTER_UNIQUE, "Pointer to Pszoperation (uint8)",hf_dnsserver_DnssrvQuery2_pszOperation);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvQuery2_pszOperation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pdwTypeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery2_pdwTypeId_, NDR_POINTER_REF, "Pointer to Pdwtypeid (DNS_RPC_TYPEID)",hf_dnsserver_DnssrvQuery2_pdwTypeId);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_pdwTypeId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvQuery2_pdwTypeId, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_ppData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvQuery2_ppData_, NDR_POINTER_REF, "Pointer to Ppdata (DNSSRV_RPC_UNION)",hf_dnsserver_DnssrvQuery2_ppData);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvQuery2_ppData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvQuery2_ppData, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvQuery2( */
+/* IDL: [in] DNS_RPC_CLIENT_VERSION dwClientVersion, */
+/* IDL: [in] uint32 dwSettingFlags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszOperation, */
+/* IDL: [out] [ref] DNS_RPC_TYPEID *pdwTypeId, */
+/* IDL: [out] [ref] [switch_is(*pdwTypeId)] DNSSRV_RPC_UNION *ppData */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvQuery2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvQuery2";
+       offset = dnsserver_dissect_element_DnssrvQuery2_pdwTypeId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dnsserver_dissect_element_DnssrvQuery2_ppData(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvQuery2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvQuery2";
+       offset = dnsserver_dissect_element_DnssrvQuery2_dwClientVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvQuery2_dwSettingFlags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvQuery2_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvQuery2_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvQuery2_pszOperation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation2_dwClientVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation2_dwSettingFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation2_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvComplexOperation2_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvComplexOperation2_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation2_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvComplexOperation2_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvComplexOperation2_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pszOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation2_pszOperation_, NDR_POINTER_UNIQUE, "Pointer to Pszoperation (uint8)",hf_dnsserver_DnssrvComplexOperation2_pszOperation);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pszOperation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvComplexOperation2_pszOperation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_dwTypeIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation2_dwTypeIn, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pDataIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation2_pDataIn, *0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pdwTypeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation2_pdwTypeOut_, NDR_POINTER_REF, "Pointer to Pdwtypeout (DNS_RPC_TYPEID)",hf_dnsserver_DnssrvComplexOperation2_pdwTypeOut);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_pdwTypeOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_TYPEID(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation2_pdwTypeOut, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_ppDataOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvComplexOperation2_ppDataOut_, NDR_POINTER_REF, "Pointer to Ppdataout (DNSSRV_RPC_UNION)",hf_dnsserver_DnssrvComplexOperation2_ppDataOut);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvComplexOperation2_ppDataOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_DNSSRV_RPC_UNION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvComplexOperation2_ppDataOut, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvComplexOperation2( */
+/* IDL: [in] DNS_RPC_CLIENT_VERSION dwClientVersion, */
+/* IDL: [in] uint32 dwSettingFlags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszOperation, */
+/* IDL: [in] DNS_RPC_TYPEID dwTypeIn, */
+/* IDL: [in] [switch_is(dwTypeIn)] DNSSRV_RPC_UNION pDataIn, */
+/* IDL: [out] [ref] DNS_RPC_TYPEID *pdwTypeOut, */
+/* IDL: [out] [ref] [switch_is(*pdwTypeOut)] DNSSRV_RPC_UNION *ppDataOut */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvComplexOperation2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvComplexOperation2";
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_pdwTypeOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_ppDataOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvComplexOperation2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvComplexOperation2";
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_dwClientVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_dwSettingFlags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_pszOperation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_dwTypeIn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvComplexOperation2_pDataIn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords2_dwClientVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords2_dwSettingFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvEnumRecords2_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvEnumRecords2_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvEnumRecords2_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords2_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pszNodeName_, NDR_POINTER_UNIQUE, "Pointer to Psznodename (uint8)",hf_dnsserver_DnssrvEnumRecords2_pszNodeName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords2_pszNodeName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszStartChild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pszStartChild_, NDR_POINTER_UNIQUE, "Pointer to Pszstartchild (uint8)",hf_dnsserver_DnssrvEnumRecords2_pszStartChild);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszStartChild_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords2_pszStartChild, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_wRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_dns_record_type(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvEnumRecords2_wRecordType,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_fSelectFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords2_fSelectFlag, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStart(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStart_, NDR_POINTER_UNIQUE, "Pointer to Pszfilterstart (uint8)",hf_dnsserver_DnssrvEnumRecords2_pszFilterStart);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStart_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords2_pszFilterStart, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStop_, NDR_POINTER_UNIQUE, "Pointer to Pszfilterstop (uint8)",hf_dnsserver_DnssrvEnumRecords2_pszFilterStop);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStop_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvEnumRecords2_pszFilterStop, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pdwBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pdwBufferLength_, NDR_POINTER_REF, "Pointer to Pdwbufferlength (uint32)",hf_dnsserver_DnssrvEnumRecords2_pdwBufferLength);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pdwBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords2_pdwBufferLength, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer_, NDR_POINTER_REF, "Pointer to Pbuffer (DNS_RPC_RECORDS_ARRAY)",hf_dnsserver_DnssrvEnumRecords2_pBuffer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer__, NDR_POINTER_UNIQUE, "Pointer to Pbuffer (DNS_RPC_RECORDS_ARRAY)",hf_dnsserver_DnssrvEnumRecords2_pBuffer);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvEnumRecords2_pBuffer_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer___(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORDS_ARRAY(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvEnumRecords2_pBuffer,0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvEnumRecords2( */
+/* IDL: [in] DNS_RPC_CLIENT_VERSION dwClientVersion, */
+/* IDL: [in] uint32 dwSettingFlags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszNodeName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszStartChild, */
+/* IDL: [in] dns_record_type wRecordType, */
+/* IDL: [in] DNS_SELECT_FLAGS fSelectFlag, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszFilterStart, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszFilterStop, */
+/* IDL: [out] [ref] uint32 *pdwBufferLength, */
+/* IDL: [out] [subcontext_size(*pdwBufferLength)] [subcontext(4)] [ref] DNS_RPC_RECORDS_ARRAY **pBuffer */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvEnumRecords2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvEnumRecords2";
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pdwBufferLength(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pBuffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvEnumRecords2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvEnumRecords2";
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_dwClientVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_dwSettingFlags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pszNodeName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pszStartChild(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_wRecordType(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_fSelectFlag(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStart(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvEnumRecords2_pszFilterStop(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_dwClientVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvUpdateRecord2_dwClientVersion, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_dwSettingFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_DnssrvUpdateRecord2_dwSettingFlags, 0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pwszServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord2_pwszServerName_, NDR_POINTER_UNIQUE, "Pointer to Pwszservername (uint16)",hf_dnsserver_DnssrvUpdateRecord2_pwszServerName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pwszServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dnsserver_DnssrvUpdateRecord2_pwszServerName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pszZone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord2_pszZone_, NDR_POINTER_UNIQUE, "Pointer to Pszzone (uint8)",hf_dnsserver_DnssrvUpdateRecord2_pszZone);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pszZone_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvUpdateRecord2_pszZone, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pszNodeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord2_pszNodeName_, NDR_POINTER_REF, "Pointer to Psznodename (uint8)",hf_dnsserver_DnssrvUpdateRecord2_pszNodeName);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pszNodeName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_dnsserver_DnssrvUpdateRecord2_pszNodeName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pAddRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord2_pAddRecord_, NDR_POINTER_UNIQUE, "Pointer to Paddrecord (DNS_RPC_RECORD_BUF)",hf_dnsserver_DnssrvUpdateRecord2_pAddRecord);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pAddRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_BUF(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvUpdateRecord2_pAddRecord,0);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pDeleteRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dnsserver_dissect_element_DnssrvUpdateRecord2_pDeleteRecord_, NDR_POINTER_UNIQUE, "Pointer to Pdeleterecord (DNS_RPC_RECORD_BUF)",hf_dnsserver_DnssrvUpdateRecord2_pDeleteRecord);
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_element_DnssrvUpdateRecord2_pDeleteRecord_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dnsserver_dissect_struct_DNS_RPC_RECORD_BUF(tvb,offset,pinfo,tree,drep,hf_dnsserver_DnssrvUpdateRecord2_pDeleteRecord,0);
+
+       return offset;
+}
+
+/* IDL: WERROR DnssrvUpdateRecord2( */
+/* IDL: [in] DNS_RPC_CLIENT_VERSION dwClientVersion, */
+/* IDL: [in] uint32 dwSettingFlags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pwszServerName, */
+/* IDL: [unique(1)] [in] [charset(UTF8)] uint8 *pszZone, */
+/* IDL: [ref] [in] [charset(UTF8)] uint8 *pszNodeName, */
+/* IDL: [unique(1)] [in] DNS_RPC_RECORD_BUF *pAddRecord, */
+/* IDL: [unique(1)] [in] DNS_RPC_RECORD_BUF *pDeleteRecord */
+/* IDL: ); */
+
+static int
+dnsserver_dissect_DnssrvUpdateRecord2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DnssrvUpdateRecord2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dnsserver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dnsserver_dissect_DnssrvUpdateRecord2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DnssrvUpdateRecord2";
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_dwClientVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_dwSettingFlags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_pwszServerName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_pszZone(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_pszNodeName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_pAddRecord(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = dnsserver_dissect_element_DnssrvUpdateRecord2_pDeleteRecord(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector dnsserver_dissectors[] = {
+       { 0, "DnssrvOperation",
+          dnsserver_dissect_DnssrvOperation_request, dnsserver_dissect_DnssrvOperation_response},
+       { 1, "DnssrvQuery",
+          dnsserver_dissect_DnssrvQuery_request, dnsserver_dissect_DnssrvQuery_response},
+       { 2, "DnssrvComplexOperation",
+          dnsserver_dissect_DnssrvComplexOperation_request, dnsserver_dissect_DnssrvComplexOperation_response},
+       { 3, "DnssrvEnumRecords",
+          dnsserver_dissect_DnssrvEnumRecords_request, dnsserver_dissect_DnssrvEnumRecords_response},
+       { 4, "DnssrvUpdateRecord",
+          dnsserver_dissect_DnssrvUpdateRecord_request, dnsserver_dissect_DnssrvUpdateRecord_response},
+       { 5, "DnssrvOperation2",
+          dnsserver_dissect_DnssrvOperation2_request, dnsserver_dissect_DnssrvOperation2_response},
+       { 6, "DnssrvQuery2",
+          dnsserver_dissect_DnssrvQuery2_request, dnsserver_dissect_DnssrvQuery2_response},
+       { 7, "DnssrvComplexOperation2",
+          dnsserver_dissect_DnssrvComplexOperation2_request, dnsserver_dissect_DnssrvComplexOperation2_response},
+       { 8, "DnssrvEnumRecords2",
+          dnsserver_dissect_DnssrvEnumRecords2_request, dnsserver_dissect_DnssrvEnumRecords2_response},
+       { 9, "DnssrvUpdateRecord2",
+          dnsserver_dissect_DnssrvUpdateRecord2_request, dnsserver_dissect_DnssrvUpdateRecord2_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_dnsserver(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_SECONDARIES_W2K.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwForwardTimeout,
+         { "Dwforwardtimeout", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fDsAvailable,
+         { "Fdsavailable", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fDsAvailable", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_DOMAIN_DEFAULT,
+         { "Dns Dp Domain Default", "dnsserver.DNS_RPC_DP_FLAGS.DNS_DP_DOMAIN_DEFAULT", FT_BOOLEAN, 32, TFS(&DNS_RPC_DP_FLAGS_DNS_DP_DOMAIN_DEFAULT_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAutoCacheUpdate,
+         { "Fautocacheupdate", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fAutoCacheUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_BUFFER_Buffer,
+         { "Buffer", "dnsserver.DNS_RPC_BUFFER.Buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_timestamp,
+         { "Timestamp", "dnsserver.DNS_RPC_DATA.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fForwarderSlave,
+         { "Fforwarderslave", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fForwarderSlave", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Buffer,
+         { "Buffer", "dnsserver.DNSSRV_RPC_UNION.Buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_Flags,
+         { "Flags", "dnsserver.DNS_RPC_ZONE_DOTNET.Flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved2,
+         { "Dwreserved2", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pszZone,
+         { "Pszzone", "dnsserver.DnssrvEnumRecords.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwMaxCacheTtl,
+         { "Dwmaxcachettl", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwMaxCacheTtl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fDsIntegrated,
+         { "Fdsintegrated", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fDsIntegrated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwReserveArray,
+         { "Dwreservearray", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwReserveArray", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneListW2K,
+         { "Zonelistw2k", "dnsserver.DNSSRV_RPC_UNION.ZoneListW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved2,
+         { "Preserved2", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pReserved2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_LIST_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_BUF_wContextLength,
+         { "Wcontextlength", "dnsserver.DNS_RPC_RECORD_BUF.wContextLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord_pszZone,
+         { "Pszzone", "dnsserver.DnssrvUpdateRecord.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLogLevel,
+         { "Dwloglevel", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwLogLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwReplicaCount,
+         { "Dwreplicacount", "dnsserver.DNS_RPC_DP_INFO.dwReplicaCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartition,
+         { "Directorypartition", "dnsserver.DNSSRV_RPC_UNION.DirectoryPartition", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation_dwContext,
+         { "Dwcontext", "dnsserver.DnssrvOperation.dwContext", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_FORWARDERS_LONGHORN.fRecurseAfterForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvQuery2.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fWriteAuthorityNs,
+         { "Fwriteauthorityns", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fWriteAuthorityNs", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_dwChildCount,
+         { "Dwchildcount", "dnsserver.DNS_RPC_RECORDS.dwChildCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved5,
+         { "Dwreserved5", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fReserveArray,
+         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fReserveArray", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery_ppData,
+         { "Ppdata", "dnsserver.DnssrvQuery.ppData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_pszDestPartition,
+         { "Pszdestpartition", "dnsserver.DNS_RPC_ZONE_CHANGE_DP.pszDestPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE_wPreference,
+         { "Wpreference", "dnsserver.DNS_RPC_RECORD_NAME_PREFERENCE.wPreference", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_pszZone,
+         { "Pszzone", "dnsserver.DnssrvComplexOperation.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLogLevel,
+         { "Dwloglevel", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwLogLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoW2K,
+         { "Zoneinfow2k", "dnsserver.DNSSRV_RPC_UNION.ZoneInfoW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAutoReverseZones,
+         { "Fautoreversezones", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fAutoReverseZones", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_IpValidate,
+         { "Ipvalidate", "dnsserver.DNSSRV_RPC_UNION.IpValidate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fReserveArray,
+         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fReserveArray", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionEnum,
+         { "Directorypartitionenum", "dnsserver.DNSSRV_RPC_UNION.DirectoryPartitionEnum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwForwardTimeout,
+         { "Dwforwardtimeout", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_AddrArray,
+         { "Addrarray", "dnsserver.DNSSRV_RPC_UNION.AddrArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_dwRefresh,
+         { "Dwrefresh", "dnsserver.DNS_RPC_RECORD_SOA.dwRefresh", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszQueryString,
+         { "Pszquerystring", "dnsserver.DNS_RPC_ENUM_ZONES_FILTER.pszQueryString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_STAT_HEADER_fClear,
+         { "Fclear", "dnsserver.DNSSRV_STAT_HEADER.fClear", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsPollingInterval,
+         { "Dwdspollinginterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDsPollingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_wType,
+         { "Wtype", "dnsserver.DNS_RPC_RECORD.wType", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipListenAddrs,
+         { "Aiplistenaddrs", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.aipListenAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_ppDataOut,
+         { "Ppdataout", "dnsserver.DnssrvComplexOperation.ppDataOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved5,
+         { "Pvreserved5", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved5", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvQuery.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fReadOnlyZone,
+         { "Freadonlyzone", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fReadOnlyZone", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension1,
+         { "Pextension1", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pExtension1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_dwClientVersion,
+         { "Dwclientversion", "dnsserver.DnssrvUpdateRecord2.dwClientVersion", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_cAddressAnswerLimit,
+         { "Caddressanswerlimit", "dnsserver.DNS_RPC_SERVER_INFO_W2K.cAddressAnswerLimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsForestVersion,
+         { "Dwdsforestversion", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDsForestVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Zone,
+         { "Zone", "dnsserver.DNSSRV_RPC_UNION.Zone", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDefaultNoRefreshInterval,
+         { "Dwdefaultnorefreshinterval", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwDefaultNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved6,
+         { "Dwreserved6", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fForwardDelegations,
+         { "Fforwarddelegations", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fForwardDelegations", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fSecureResponses,
+         { "Fsecureresponses", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fSecureResponses", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_aipForwarders,
+         { "Aipforwarders", "dnsserver.DNS_RPC_FORWARDERS_LONGHORN.aipForwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_PAUSED,
+         { "Dns Rpc Zone Paused", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_PAUSED", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_PAUSED_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDataFile,
+         { "Pszdatafile", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.pszDataFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_dwTtlSeconds,
+         { "Dwttlseconds", "dnsserver.DNS_RPC_RECORD.dwTtlSeconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDebugLevel,
+         { "Dwdebuglevel", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDebugLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwMaxCacheTtl,
+         { "Dwmaxcachettl", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwMaxCacheTtl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwForwardTimeout,
+         { "Dwforwardtimeout", "dnsserver.DNS_RPC_FORWARDERS_LONGHORN.dwForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fLooseWildcarding,
+         { "Floosewildcarding", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fLooseWildcarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation_pData,
+         { "Pdata", "dnsserver.DnssrvOperation.pData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation_pszZone,
+         { "Pszzone", "dnsserver.DnssrvOperation.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fDsIntegrated,
+         { "Fdsintegrated", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fDsIntegrated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAdminConfigured,
+         { "Fadminconfigured", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fAdminConfigured", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved,
+         { "Dwreserved", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwReserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_pdwTypeOut,
+         { "Pdwtypeout", "dnsserver.DnssrvComplexOperation2.pdwTypeOut", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcProtocol,
+         { "Dwrpcprotocol", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwRpcProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_DP_INFO.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwZoneType,
+         { "Dwzonetype", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwZoneType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ForwardersW2K,
+         { "Forwardersw2k", "dnsserver.DNSSRV_RPC_UNION.ForwardersW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Secondaries,
+         { "Secondaries", "dnsserver.DNSSRV_RPC_UNION.Secondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_LIST_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fAllowUpdate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipScavengeServers,
+         { "Aipscavengeservers", "dnsserver.DNS_RPC_ZONE_INFO_W2K.aipScavengeServers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fShutdown,
+         { "Fshutdown", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fShutdown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_DP_INFO.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipForwarders,
+         { "Aipforwarders", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.aipForwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_pszOperation,
+         { "Pszoperation", "dnsserver.DnssrvComplexOperation.pszOperation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_String,
+         { "String", "dnsserver.DNSSRV_RPC_UNION.String", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved3,
+         { "Dwreserved3", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fStrictFileParsing,
+         { "Fstrictfileparsing", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fStrictFileParsing", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseDatabase,
+         { "Fusedatabase", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fUseDatabase", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fPaused,
+         { "Fpaused", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fPaused", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoW2K,
+         { "Serverinfow2k", "dnsserver.DNSSRV_RPC_UNION.ServerInfoW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_dwSerial,
+         { "Dwserial", "dnsserver.DNS_RPC_RECORD.dwSerial", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_data,
+         { "Data", "dnsserver.DNS_RPC_RECORD.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwAutoConfigFlags,
+         { "Dwautoconfigflags", "dnsserver.DNS_RPC_AUTOCONFIGURE.dwAutoConfigFlags", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_AUTOCONFIG_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsPollingInterval,
+         { "Dwdspollinginterval", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDsPollingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvOperation.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NODE_wLength,
+         { "Wlength", "dnsserver.DNS_RPC_NODE.wLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fSecureResponses,
+         { "Fsecureresponses", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fSecureResponses", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AGING,
+         { "Dns Rpc Zone Aging", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_AGING", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AGING_tfs), ( 0x0020 ), NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery_pszZone,
+         { "Pszzone", "dnsserver.DnssrvQuery.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_DatabaseW2K,
+         { "Databasew2k", "dnsserver.DNSSRV_RPC_UNION.DatabaseW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved3,
+         { "Preserved3", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pReserved3", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_dwSettingFlags,
+         { "Dwsettingflags", "dnsserver.DnssrvComplexOperation2.dwSettingFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fBindSecondaries,
+         { "Fbindsecondaries", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fBindSecondaries", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionRetry,
+         { "Dwrecursionretry", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwRecursionRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_STAT_Buffer,
+         { "Buffer", "dnsserver.DNSSRV_STAT.Buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved6,
+         { "Pvreserved6", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved6", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_pDeleteRecord,
+         { "Pdeleterecord", "dnsserver.DnssrvUpdateRecord2.pDeleteRecord", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_MaxSa,
+         { "Maxsa", "dnsserver.DNS_ADDR.MaxSa", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDsPollingInterval,
+         { "Dwdspollinginterval", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwDsPollingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_pszOperation,
+         { "Pszoperation", "dnsserver.DnssrvQuery2.pszOperation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_Family,
+         { "Family", "dnsserver.DNS_ADDR_ARRAY.Family", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_pszOperation,
+         { "Pszoperation", "dnsserver.DnssrvOperation2.pszOperation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_ZoneType,
+         { "Zonetype", "dnsserver.DNS_RPC_ZONE_DOTNET.ZoneType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension2,
+         { "Pextension2", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pExtension2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_pszZone,
+         { "Pszzone", "dnsserver.DnssrvUpdateRecord2.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_SHUTDOWN,
+         { "Dns Rpc Zone Shutdown", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_SHUTDOWN", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_SHUTDOWN_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fLooseWildcarding,
+         { "Floosewildcarding", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fLooseWildcarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fWriteAuthorityNs,
+         { "Fwriteauthorityns", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fWriteAuthorityNs", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_mx,
+         { "Mx", "dnsserver.DNS_RPC_DATA.mx", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_W2K_Version,
+         { "Version", "dnsserver.DNS_RPC_ZONE_W2K.Version", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseNbstat,
+         { "Fusenbstat", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fUseNbstat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulSoaCheck,
+         { "Dwlastsuccessfulsoacheck", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwLastSuccessfulSoaCheck", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfo,
+         { "Zoneinfo", "dnsserver.DNSSRV_RPC_UNION.ZoneInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_SECONDARIES_LONGHORN.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_SECONDARIES_W2K.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_pwszReserved,
+         { "Pwszreserved", "dnsserver.DNS_RPC_DP_INFO.pwszReserved", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwEventLogLevel,
+         { "Dweventloglevel", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwEventLogLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsDomainVersion,
+         { "Dwdsdomainversion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDsDomainVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestName,
+         { "Pszforestname", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pszForestName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvComplexOperation2.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwRefreshInterval,
+         { "Dwrefreshinterval", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRecursionTimeout,
+         { "Dwrecursiontimeout", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwRecursionTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SRV_nameTarget,
+         { "Nametarget", "dnsserver.DNS_RPC_RECORD_SRV.nameTarget", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwForwardTimeout,
+         { "Dwforwardtimeout", "dnsserver.DNS_RPC_FORWARDERS_DOTNET.dwForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENLIST_DP_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ENLIST_DP.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_SECONDARIES_LONGHORN.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipNotify,
+         { "Aipnotify", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.aipNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fBackgroundLoadInProgress,
+         { "Fbackgroundloadinprogress", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fBackgroundLoadInProgress", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionTimeout,
+         { "Dwrecursiontimeout", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwRecursionTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_IP4_ARRAY_AddrArray,
+         { "Addrarray", "dnsserver.IP4_ARRAY.AddrArray", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SRV_wWeight,
+         { "Wweight", "dnsserver.DNS_RPC_RECORD_SRV.wWeight", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseNbstat,
+         { "Fusenbstat", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fUseNbstat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_aipForwarders,
+         { "Aipforwarders", "dnsserver.DNS_RPC_FORWARDERS_DOTNET.aipForwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateW2K,
+         { "Zonecreatew2k", "dnsserver.DNSSRV_RPC_UNION.ZoneCreateW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_MaxCount,
+         { "Maxcount", "dnsserver.DNS_ADDR_ARRAY.MaxCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved1,
+         { "Dwreserved1", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvUpdateRecord.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_dwSettingFlags,
+         { "Dwsettingflags", "dnsserver.DnssrvOperation2.dwSettingFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwFilter,
+         { "Dwfilter", "dnsserver.DNS_RPC_ENUM_ZONES_FILTER.dwFilter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pszNodeName,
+         { "Psznodename", "dnsserver.DnssrvEnumRecords.pszNodeName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Database,
+         { "Database", "dnsserver.DNSSRV_RPC_UNION.Database", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fRecurseAfterForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_ENUM_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_DP_ENUM.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulSoaCheck,
+         { "Dwlastsuccessfulsoacheck", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwLastSuccessfulSoaCheck", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NAME_AND_PARAM_dwParam,
+         { "Dwparam", "dnsserver.DNS_RPC_NAME_AND_PARAM.dwParam", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszServerName,
+         { "Pszservername", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwZoneType,
+         { "Dwzonetype", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwZoneType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_AUTOCREATED,
+         { "Dns Dp Autocreated", "dnsserver.DNS_RPC_DP_FLAGS.DNS_DP_AUTOCREATED", FT_BOOLEAN, 32, TFS(&DNS_RPC_DP_FLAGS_DNS_DP_AUTOCREATED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fUseWins,
+         { "Fusewins", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fUseWins", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pszStartChild,
+         { "Pszstartchild", "dnsserver.DnssrvEnumRecords.pszStartChild", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszAdmin,
+         { "Pszadmin", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pszAdmin", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_txt,
+         { "Txt", "dnsserver.DNS_RPC_DATA.txt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwScavengingInterval,
+         { "Dwscavenginginterval", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwScavengingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Utf8StringList,
+         { "Utf8stringlist", "dnsserver.DNSSRV_RPC_UNION.Utf8StringList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_UNSECURE,
+         { "Dns Rpc Zone Update Unsecure", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_UPDATE_UNSECURE", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_UNSECURE_tfs), ( 0x0040 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_pszDpDn,
+         { "Pszdpdn", "dnsserver.DNS_RPC_DP_INFO.pszDpDn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.fAllowUpdate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_SUCCESS,
+         { "Dns Event Log Success", "dnsserver.DNS_EVENT_LOG_TYPES.DNS_EVENT_LOG_SUCCESS", FT_BOOLEAN, 32, TFS(&DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_SUCCESS_tfs), ( 0x00000000 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_ENLISTED,
+         { "Dns Dp Enlisted", "dnsserver.DNS_RPC_DP_FLAGS.DNS_DP_ENLISTED", FT_BOOLEAN, 32, TFS(&DNS_RPC_DP_FLAGS_DNS_DP_ENLISTED_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fAging,
+         { "Faging", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.fAging", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAutoCacheUpdate,
+         { "Fautocacheupdate", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fAutoCacheUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_Tag,
+         { "Tag", "dnsserver.DNS_ADDR_ARRAY.Tag", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fRecurseAfterForwarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fWriteAuthorityNs,
+         { "Fwriteauthorityns", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fWriteAuthorityNs", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_EXPORT_INFO.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ServerInfo,
+         { "Serverinfo", "dnsserver.DNSSRV_RPC_UNION.ServerInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_ZONE_DOTNET.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwDpFlags,
+         { "Dwdpflags", "dnsserver.DNS_RPC_ZONE_DOTNET.dwDpFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszDataFile,
+         { "Pszdatafile", "dnsserver.DNS_RPC_ZONE_INFO_W2K.pszDataFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved4,
+         { "Preserved4", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pReserved4", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwDpFlags,
+         { "Dwdpflags", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwDpFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAutoCacheUpdate,
+         { "Fautocacheupdate", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fAutoCacheUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pszNodeName,
+         { "Psznodename", "dnsserver.DnssrvEnumRecords2.pszNodeName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENLIST_DP_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_ENLIST_DP.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_pszNodeName,
+         { "Psznodename", "dnsserver.DnssrvUpdateRecord2.pszNodeName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_DirectoryPartitionList,
+         { "Directorypartitionlist", "dnsserver.DNSSRV_RPC_UNION.DirectoryPartitionList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_SecondariesW2K,
+         { "Secondariesw2k", "dnsserver.DNSSRV_RPC_UNION.SecondariesW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvEnumRecords2.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_wRecordType,
+         { "Wrecordtype", "dnsserver.DnssrvEnumRecords.wRecordType", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_dwSettingFlags,
+         { "Dwsettingflags", "dnsserver.DnssrvQuery2.dwSettingFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Forwarders,
+         { "Forwarders", "dnsserver.DNSSRV_RPC_UNION.Forwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_pszFileName,
+         { "Pszfilename", "dnsserver.DNS_RPC_ZONE_DATABASE_DOTNET.pszFileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery_pszOperation,
+         { "Pszoperation", "dnsserver.DnssrvQuery.pszOperation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_pDataIn,
+         { "Pdatain", "dnsserver.DnssrvComplexOperation2.pDataIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_Reserved1,
+         { "Reserved1", "dnsserver.DNS_ADDR_ARRAY.Reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SRV_wPriority,
+         { "Wpriority", "dnsserver.DNS_RPC_RECORD_SRV.wPriority", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipServerAddrs,
+         { "Aipserveraddrs", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.aipServerAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fBindSecondaries,
+         { "Fbindsecondaries", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fBindSecondaries", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipNotify,
+         { "Aipnotify", "dnsserver.DNS_RPC_ZONE_SECONDARIES_DOTNET.aipNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwZoneType,
+         { "Dwzonetype", "dnsserver.DNS_RPC_ZONE_INFO_W2K.dwZoneType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_AUTOCONFIGURE.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwRefreshInterval,
+         { "Dwrefreshinterval", "dnsserver.DNS_RPC_ZONE_INFO_W2K.dwRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_REPLICA_pszReplicaDn,
+         { "Pszreplicadn", "dnsserver.DNS_RPC_DP_REPLICA.pszReplicaDn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery_pdwTypeId,
+         { "Pdwtypeid", "dnsserver.DnssrvQuery.pdwTypeId", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_IpArray,
+         { "Iparray", "dnsserver.DNSSRV_RPC_UNION.IpArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_REVERSE,
+         { "Dns Rpc Zone Reverse", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_REVERSE", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_REVERSE_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_IP_VALIDATE_pszContextName,
+         { "Pszcontextname", "dnsserver.DNS_RPC_IP_VALIDATE.pszContextName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_ENUM_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_DP_ENUM.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_ppData,
+         { "Ppdata", "dnsserver.DnssrvQuery2.ppData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fShutdown,
+         { "Fshutdown", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fShutdown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipLogFilter,
+         { "Aiplogfilter", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.aipLogFilter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved3,
+         { "Pvreserved3", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved3", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_SECONDARIES_DOTNET.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_wRecordType,
+         { "Wrecordtype", "dnsserver.DnssrvEnumRecords2.wRecordType", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_pData,
+         { "Pdata", "dnsserver.DnssrvOperation2.pData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDataFile,
+         { "Pszdatafile", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pszDataFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAging,
+         { "Faging", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fAging", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pszZone,
+         { "Pszzone", "dnsserver.DnssrvEnumRecords2.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_dwTypeIn,
+         { "Dwtypein", "dnsserver.DnssrvComplexOperation.dwTypeIn", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ENUM_ZONES_FILTER.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fDefaultAgingState,
+         { "Fdefaultagingstate", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fDefaultAgingState", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvComplexOperation.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved2,
+         { "Pvreserved2", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fRecurseAfterForwarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fShutdown,
+         { "Fshutdown", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fShutdown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwZoneType,
+         { "Dwzonetype", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwZoneType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwReserveArray,
+         { "Dwreservearray", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwReserveArray", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_dwClientVersion,
+         { "Dwclientversion", "dnsserver.DnssrvEnumRecords2.dwClientVersion", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NODE_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_NODE.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE_nameExchange,
+         { "Nameexchange", "dnsserver.DNS_RPC_RECORD_NAME_PREFERENCE.nameExchange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_CHANGE_DP.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_STRING_count,
+         { "Count", "dnsserver.DNS_RPC_RECORD_STRING.count", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwZoneType,
+         { "Dwzonetype", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwZoneType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fRecurseAfterForwarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwDpFlags,
+         { "Dwdpflags", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwDpFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_ENUM_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_DP_ENUM.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipScavengeServers,
+         { "Aipscavengeservers", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.aipScavengeServers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwForwardTimeout,
+         { "Dwforwardtimeout", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszPartitionFqdn,
+         { "Pszpartitionfqdn", "dnsserver.DNS_RPC_ENUM_ZONES_FILTER.pszPartitionFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_DATABASE_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwAvailForScavengeTime,
+         { "Dwavailforscavengetime", "dnsserver.DNS_RPC_ZONE_INFO_W2K.dwAvailForScavengeTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwAvailForScavengeTime,
+         { "Dwavailforscavengetime", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwAvailForScavengeTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwDpFlags,
+         { "Dwdpflags", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwDpFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN,
+         { "Dns Rpc View No Children", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_NO_CHILDREN", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_NO_CHILDREN_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwDpFlags,
+         { "Dwdpflags", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwDpFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pwszZoneDn,
+         { "Pwszzonedn", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pwszZoneDn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDsContainer,
+         { "Pszdscontainer", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pszDsContainer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_MatchFlag,
+         { "Matchflag", "dnsserver.DNS_ADDR_ARRAY.MatchFlag", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultNoRefreshInterval,
+         { "Dwdefaultnorefreshinterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDefaultNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwEventLogLevel,
+         { "Dweventloglevel", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwEventLogLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwLastSuccessfulXfr,
+         { "Dwlastsuccessfulxfr", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwLastSuccessfulXfr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainName,
+         { "Pszdomainname", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pszDomainName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pszStartChild,
+         { "Pszstartchild", "dnsserver.DnssrvEnumRecords2.pszStartChild", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwTimeout,
+         { "Dwtimeout", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_INFO_W2K.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_WordReserved,
+         { "Wordreserved", "dnsserver.DNS_ADDR_ARRAY.WordReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_FOREST_DEFAULT,
+         { "Dns Dp Forest Default", "dnsserver.DNS_RPC_DP_FLAGS.DNS_DP_FOREST_DEFAULT", FT_BOOLEAN, 32, TFS(&DNS_RPC_DP_FLAGS_DNS_DP_FOREST_DEFAULT_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipNotify,
+         { "Aipnotify", "dnsserver.DNS_RPC_ZONE_INFO_W2K.aipNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord_pDeleteRecord,
+         { "Pdeleterecord", "dnsserver.DnssrvUpdateRecord.pDeleteRecord", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fBindSecondaries,
+         { "Fbindsecondaries", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fBindSecondaries", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ServerInfoDotNet,
+         { "Serverinfodotnet", "dnsserver.DNSSRV_RPC_UNION.ServerInfoDotNet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_DSINTEGRATED,
+         { "Dns Rpc Zone Dsintegrated", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_DSINTEGRATED", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_DSINTEGRATED_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENLIST_DP_dwOperation,
+         { "Dwoperation", "dnsserver.DNS_RPC_ENLIST_DP.dwOperation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipNotify,
+         { "Aipnotify", "dnsserver.DNS_RPC_ZONE_SECONDARIES_W2K.aipNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLocalNetPriorityNetMask,
+         { "Dwlocalnetprioritynetmask", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwLocalNetPriorityNetMask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_RECORD.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ForwardersDotNet,
+         { "Forwardersdotnet", "dnsserver.DNSSRV_RPC_UNION.ForwardersDotNet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_ENUM_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_DP_ENUM.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_ZoneAdministratorEmail,
+         { "Zoneadministratoremail", "dnsserver.DNS_RPC_RECORD_SOA.ZoneAdministratorEmail", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AUTOCREATED,
+         { "Dns Rpc Zone Autocreated", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_AUTOCREATED", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_AUTOCREATED_tfs), ( 0x0008 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fDefaultAgingState,
+         { "Fdefaultagingstate", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fDefaultAgingState", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fAllowUpdate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SRV_wPort,
+         { "Wport", "dnsserver.DNS_RPC_RECORD_SRV.wPort", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipNotify,
+         { "Aipnotify", "dnsserver.DNS_RPC_ZONE_SECONDARIES_LONGHORN.aipNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved4,
+         { "Pvreserved4", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved4", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_dwClientVersion,
+         { "Dwclientversion", "dnsserver.DnssrvComplexOperation2.dwClientVersion", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved2,
+         { "Pvreserved2", "dnsserver.DNS_RPC_ZONE_INFO_W2K.pvReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension4,
+         { "Pextension4", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pExtension4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_Reserved2,
+         { "Reserved2", "dnsserver.DNS_ADDR_ARRAY.Reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_AUTOCONFIGURE.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved7,
+         { "Dwreserved7", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_BUFFER_dwLength,
+         { "Dwlength", "dnsserver.DNS_RPC_BUFFER.dwLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_srv,
+         { "Srv", "dnsserver.DNS_RPC_DATA.srv", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_pszZone,
+         { "Pszzone", "dnsserver.DnssrvComplexOperation2.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Dword,
+         { "Dword", "dnsserver.DNSSRV_RPC_UNION.Dword", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_fSelectFlag,
+         { "Fselectflag", "dnsserver.DnssrvEnumRecords2.fSelectFlag", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDomainDirectoryPartition,
+         { "Pszdomaindirectorypartition", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pszDomainDirectoryPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipLogFilter,
+         { "Aiplogfilter", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.aipLogFilter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_ERROR_TYPE,
+         { "Dns Event Log Error Type", "dnsserver.DNS_EVENT_LOG_TYPES.DNS_EVENT_LOG_ERROR_TYPE", FT_BOOLEAN, 32, TFS(&DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_ERROR_TYPE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved1,
+         { "Dwreserved1", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_dwSettingFlags,
+         { "Dwsettingflags", "dnsserver.DnssrvEnumRecords2.dwSettingFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_Flags,
+         { "Flags", "dnsserver.DNS_ADDR_ARRAY.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsForestVersion,
+         { "Dwdsforestversion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDsForestVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA,
+         { "Dns Rpc View Authority Data", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_AUTHORITY_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_AUTHORITY_DATA_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fPaused,
+         { "Fpaused", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fPaused", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pwszLogFilePath,
+         { "Pwszlogfilepath", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pwszLogFilePath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fStrictFileParsing,
+         { "Fstrictfileparsing", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fStrictFileParsing", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszForestDirectoryPartition,
+         { "Pszforestdirectorypartition", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pszForestDirectoryPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_LIST_dwDpCount,
+         { "Dwdpcount", "dnsserver.DNS_RPC_DP_LIST.dwDpCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDebugLevel,
+         { "Dwdebuglevel", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwDebugLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszServerName,
+         { "Pszservername", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_RECORDS.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_STAT_HEADER_fReserved,
+         { "Freserved", "dnsserver.DNSSRV_STAT_HEADER.fReserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pdwBufferLength,
+         { "Pdwbufferlength", "dnsserver.DnssrvEnumRecords2.pdwBufferLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_wLength,
+         { "Wlength", "dnsserver.DNS_RPC_RECORDS.wLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneList,
+         { "Zonelist", "dnsserver.DNSSRV_RPC_UNION.ZoneList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_fDsIntegrated,
+         { "Fdsintegrated", "dnsserver.DNS_RPC_ZONE_DATABASE_W2K.fDsIntegrated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension5,
+         { "Pextension5", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pExtension5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLastScavengeTime,
+         { "Dwlastscavengetime", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwLastScavengeTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_dwZoneCount,
+         { "Dwzonecount", "dnsserver.DNS_RPC_ZONE_LIST_DOTNET.dwZoneCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_SECONDARIES_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_pAddRecord,
+         { "Paddrecord", "dnsserver.DnssrvUpdateRecord2.pAddRecord", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_BUF_rec,
+         { "Rec", "dnsserver.DNS_RPC_RECORD_BUF.rec", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrResult,
+         { "Dwlastxfrresult", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwLastXfrResult", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fBootMethod,
+         { "Fbootmethod", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fBootMethod", FT_UINT8, BASE_DEC, VALS(dnsserver_DNS_BOOT_METHOD_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_DATABASE_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_Version,
+         { "Version", "dnsserver.DNS_RPC_ZONE_DOTNET.Version", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_dwClientVersion,
+         { "Dwclientversion", "dnsserver.DnssrvOperation2.dwClientVersion", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDomainVersion,
+         { "Dwdsdomainversion", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDsDomainVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_NamePrimaryServer,
+         { "Nameprimaryserver", "dnsserver.DNS_RPC_RECORD_SOA.NamePrimaryServer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipScavengeServers,
+         { "Aipscavengeservers", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.aipScavengeServers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_W2K_dwForwardTimeout,
+         { "Dwforwardtimeout", "dnsserver.DNS_RPC_FORWARDERS_W2K.dwForwardTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwNameCheckFlag,
+         { "Dwnamecheckflag", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwNameCheckFlag", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_NAME_CHECK_FLAG_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pExtensions,
+         { "Pextensions", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pExtensions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fAllowUpdate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord_pAddRecord,
+         { "Paddrecord", "dnsserver.DnssrvUpdateRecord.pAddRecord", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fDsAvailable,
+         { "Fdsavailable", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fDsAvailable", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_IP_VALIDATE_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_IP_VALIDATE.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_LIST_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_DP_LIST.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastSuccessfulXfr,
+         { "Dwlastsuccessfulxfr", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwLastSuccessfulXfr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_dwMinimumTtl,
+         { "Dwminimumttl", "dnsserver.DNS_RPC_RECORD_SOA.dwMinimumTtl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_SECONDARIES_LONGHORN.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord_pszNodeName,
+         { "Psznodename", "dnsserver.DnssrvUpdateRecord.pszNodeName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pwszLogFilePath,
+         { "Pwszlogfilepath", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pwszLogFilePath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_FORWARDERS_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fBootMethod,
+         { "Fbootmethod", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fBootMethod", FT_UINT8, BASE_DEC, VALS(dnsserver_DNS_BOOT_METHOD_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRpcProtocol,
+         { "Dwrpcprotocol", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwRpcProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CHANGE_DP_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_CHANGE_DP.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_pdwTypeOut,
+         { "Pdwtypeout", "dnsserver.DnssrvComplexOperation.pdwTypeOut", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwNameCheckFlag,
+         { "Dwnamecheckflag", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwNameCheckFlag", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_NAME_CHECK_FLAG_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwDefaultRefreshInterval,
+         { "Dwdefaultrefreshinterval", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwDefaultRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipListenAddrs,
+         { "Aiplistenaddrs", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.aipListenAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_EnumZonesFilter,
+         { "Enumzonesfilter", "dnsserver.DNSSRV_RPC_UNION.EnumZonesFilter", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneW2K,
+         { "Zonew2k", "dnsserver.DNSSRV_RPC_UNION.ZoneW2K", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_DP_INFO.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NODE_dwChildCount,
+         { "Dwchildcount", "dnsserver.DNS_RPC_NODE.dwChildCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_ipv4,
+         { "Ipv4", "dnsserver.DNS_RPC_DATA.ipv4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_SECONDARIES_W2K.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved1,
+         { "Pvreserved1", "dnsserver.DNS_RPC_ZONE_INFO_W2K.pvReserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fQueuedForBackgroundLoad,
+         { "Fqueuedforbackgroundload", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fQueuedForBackgroundLoad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved5,
+         { "Dwreserved5", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipMasters,
+         { "Aipmasters", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.aipMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipLocalMasters,
+         { "Aiplocalmasters", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.aipLocalMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwTimeout,
+         { "Dwtimeout", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_AUTOCONFIGURE_pszNewDomainName,
+         { "Psznewdomainname", "dnsserver.DNS_RPC_AUTOCONFIGURE.pszNewDomainName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDefaultRefreshInterval,
+         { "Dwdefaultrefreshinterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDefaultRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fDsIntegrated,
+         { "Fdsintegrated", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.fDsIntegrated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pBuffer,
+         { "Pbuffer", "dnsserver.DnssrvEnumRecords2.pBuffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_fSecureSecondaries,
+         { "Fsecuresecondaries", "dnsserver.DNS_RPC_ZONE_SECONDARIES_DOTNET.fSecureSecondaries", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pExtensions,
+         { "Pextensions", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pExtensions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NODE_wRecordCount,
+         { "Wrecordcount", "dnsserver.DNS_RPC_NODE.wRecordCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_pszZone,
+         { "Pszzone", "dnsserver.DnssrvQuery2.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_aipServerAddrs,
+         { "Aipserveraddrs", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.aipServerAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fRoundRobin,
+         { "Froundrobin", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fRoundRobin", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NAME_len,
+         { "Len", "dnsserver.DNS_RPC_NAME.len", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszServerName,
+         { "Pszservername", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Null,
+         { "Null", "dnsserver.DNSSRV_RPC_UNION.Null", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved4,
+         { "Pvreserved4", "dnsserver.DNS_RPC_ZONE_INFO_W2K.pvReserved4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pdwBufferLength,
+         { "Pdwbufferlength", "dnsserver.DnssrvEnumRecords.pdwBufferLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwLogFileMaxSize,
+         { "Dwlogfilemaxsize", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwLogFileMaxSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_cAddressAnswerLimit,
+         { "Caddressanswerlimit", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.cAddressAnswerLimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAutoReverseZones,
+         { "Fautoreversezones", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fAutoReverseZones", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_dwTypeIn,
+         { "Dwtypein", "dnsserver.DnssrvComplexOperation2.dwTypeIn", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_pszStrings,
+         { "Pszstrings", "dnsserver.DNS_RPC_UTF8_STRING_LIST.pszStrings", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_SECONDARIES_DOTNET.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_FORWARDERS_LONGHORN.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_DP_INFO.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_dnsNodeName,
+         { "Dnsnodename", "dnsserver.DNS_RPC_RECORDS.dnsNodeName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_SECONDARIES_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainName,
+         { "Pszdomainname", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pszDomainName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLastScavengeTime,
+         { "Dwlastscavengetime", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwLastScavengeTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved1,
+         { "Pvreserved1", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwNoRefreshInterval,
+         { "Dwnorefreshinterval", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fForwardDelegations,
+         { "Fforwarddelegations", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fForwardDelegations", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_dwReserved,
+         { "Dwreserved", "dnsserver.DNS_RPC_RECORD.dwReserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipMasters,
+         { "Aipmasters", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.aipMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fLooseWildcarding,
+         { "Floosewildcarding", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fLooseWildcarding", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pExtension3,
+         { "Pextension3", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pExtension3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fBootMethod,
+         { "Fbootmethod", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fBootMethod", FT_UINT8, BASE_DEC, VALS(dnsserver_DNS_BOOT_METHOD_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwAvailForScavengeTime,
+         { "Dwavailforscavengetime", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwAvailForScavengeTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_dwExpire,
+         { "Dwexpire", "dnsserver.DNS_RPC_RECORD_SOA.dwExpire", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwVersion,
+         { "Dwversion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwVersion,
+         { "Dwversion", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRecursionRetry,
+         { "Dwrecursionretry", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwRecursionRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_pszDsContainer,
+         { "Pszdscontainer", "dnsserver.DNS_RPC_SERVER_INFO_W2K.pszDsContainer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_dwZoneCount,
+         { "Dwzonecount", "dnsserver.DNS_RPC_ZONE_LIST_W2K.dwZoneCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fPaused,
+         { "Fpaused", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fPaused", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_EXTENSION_extension,
+         { "Extension", "dnsserver.DNS_EXTENSION.extension", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_aipMasters,
+         { "Aipmasters", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.aipMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwScavengingInterval,
+         { "Dwscavenginginterval", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwScavengingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA,
+         { "Dns Rpc View Glue Data", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_GLUE_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_GLUE_DATA_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_NameAndParam,
+         { "Nameandparam", "dnsserver.DNSSRV_RPC_UNION.NameAndParam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation_pDataIn,
+         { "Pdatain", "dnsserver.DnssrvComplexOperation.pDataIn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneExport,
+         { "Zoneexport", "dnsserver.DNSSRV_RPC_UNION.ZoneExport", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_aipForwarders,
+         { "Aipforwarders", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.aipForwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAging,
+         { "Faging", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fAging", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved8,
+         { "Pvreserved8", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved8", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_ReplicaArray,
+         { "Replicaarray", "dnsserver.DNS_RPC_DP_INFO.ReplicaArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipListenAddrs,
+         { "Aiplistenaddrs", "dnsserver.DNS_RPC_SERVER_INFO_W2K.aipListenAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDsDsaVersion,
+         { "Dwdsdsaversion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDsDsaVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fDsAvailable,
+         { "Fdsavailable", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fDsAvailable", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAging,
+         { "Faging", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fAging", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_W2K_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_FORWARDERS_W2K.fRecurseAfterForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwState,
+         { "Dwstate", "dnsserver.DNS_RPC_DP_INFO.dwState", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_DP_STATE_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_IP_VALIDATE_dwReserved1,
+         { "Dwreserved1", "dnsserver.DNS_RPC_IP_VALIDATE.dwReserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_dwRetry,
+         { "Dwretry", "dnsserver.DNS_RPC_RECORD_SOA.dwRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_DnsAddrUserDword,
+         { "Dnsaddruserdword", "dnsserver.DNS_ADDR.DnsAddrUserDword", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwScavengingInterval,
+         { "Dwscavenginginterval", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwScavengingInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipForwarders,
+         { "Aipforwarders", "dnsserver.DNS_RPC_SERVER_INFO_W2K.aipForwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fStrictFileParsing,
+         { "Fstrictfileparsing", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fStrictFileParsing", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_W2K_ZoneType,
+         { "Zonetype", "dnsserver.DNS_RPC_ZONE_W2K.ZoneType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_aipServerAddrs,
+         { "Aipserveraddrs", "dnsserver.DNS_RPC_SERVER_INFO_W2K.aipServerAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRecursionRetry,
+         { "Dwrecursionretry", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwRecursionRetry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_hinfo,
+         { "Hinfo", "dnsserver.DNS_RPC_DATA.hinfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_LIST_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_DP_LIST.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszDataFile,
+         { "Pszdatafile", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.pszDataFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation_pszOperation,
+         { "Pszoperation", "dnsserver.DnssrvOperation.pszOperation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fRecurseAfterForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_IP_VALIDATE_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_IP_VALIDATE.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultNoRefreshInterval,
+         { "Dwdefaultnorefreshinterval", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDefaultNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fNoRecursion,
+         { "Fnorecursion", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fNoRecursion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAdminConfigured,
+         { "Fadminconfigured", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fAdminConfigured", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fLoadExisting,
+         { "Floadexisting", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fLoadExisting", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_WideString,
+         { "Widestring", "dnsserver.DNSSRV_RPC_UNION.WideString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fLoadExisting,
+         { "Floadexisting", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fLoadExisting", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_STAT_HEADER_StatId,
+         { "Statid", "dnsserver.DNSSRV_STAT_HEADER.StatId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fRoundRobin,
+         { "Froundrobin", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fRoundRobin", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwRefreshInterval,
+         { "Dwrefreshinterval", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_LONGHORN_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_FORWARDERS_LONGHORN.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DOTNET_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_DOTNET.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pszDataFile,
+         { "Pszdatafile", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pszDataFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_LEGACY,
+         { "Dns Dp Legacy", "dnsserver.DNS_RPC_DP_FLAGS.DNS_DP_LEGACY", FT_BOOLEAN, 32, TFS(&DNS_RPC_DP_FLAGS_DNS_DP_LEGACY_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fReverse,
+         { "Freverse", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fReverse", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pszFilterStop,
+         { "Pszfilterstop", "dnsserver.DnssrvEnumRecords2.pszFilterStop", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestName,
+         { "Pszforestname", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pszForestName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_ppDataOut,
+         { "Ppdataout", "dnsserver.DnssrvComplexOperation2.ppDataOut", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_pszAdmin,
+         { "Pszadmin", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.pszAdmin", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwLogLevel,
+         { "Dwloglevel", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwLogLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_Stats,
+         { "Stats", "dnsserver.DNSSRV_RPC_UNION.Stats", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN,
+         { "Dns Rpc View Only Children", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_ONLY_CHILDREN", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_ONLY_CHILDREN_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwReserved,
+         { "Dwreserved", "dnsserver.DNS_RPC_DP_INFO.dwReserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fLocalNetPriority,
+         { "Flocalnetpriority", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fLocalNetPriority", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fReverse,
+         { "Freverse", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fReverse", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreate,
+         { "Zonecreate", "dnsserver.DNSSRV_RPC_UNION.ZoneCreate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_WARNING_TYPE,
+         { "Dns Event Log Warning Type", "dnsserver.DNS_EVENT_LOG_TYPES.DNS_EVENT_LOG_WARNING_TYPE", FT_BOOLEAN, 32, TFS(&DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_WARNING_TYPE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_SOA_dwSerialNo,
+         { "Dwserialno", "dnsserver.DNS_RPC_RECORD_SOA.dwSerialNo", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved2,
+         { "Dwreserved2", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_dwSettingFlags,
+         { "Dwsettingflags", "dnsserver.DnssrvUpdateRecord2.dwSettingFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_W2K_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_W2K.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwReserved4,
+         { "Dwreserved4", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwReserved4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszDpFqdn,
+         { "Pszdpfqdn", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.pszDpFqdn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_dwClientVersion,
+         { "Dwclientversion", "dnsserver.DnssrvQuery2.dwClientVersion", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_CLIENT_VERSION_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwNoRefreshInterval,
+         { "Dwnorefreshinterval", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_STRING_str,
+         { "Str", "dnsserver.DNS_RPC_RECORD_STRING.str", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_aipSecondaries,
+         { "Aipsecondaries", "dnsserver.DNS_RPC_ZONE_SECONDARIES_LONGHORN.aipSecondaries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_LIST_DpArray,
+         { "Dparray", "dnsserver.DNS_RPC_DP_LIST.DpArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pszFilterStart,
+         { "Pszfilterstart", "dnsserver.DnssrvEnumRecords.pszFilterStart", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pszZoneName,
+         { "Pszzonename", "dnsserver.DNS_RPC_ZONE_INFO_W2K.pszZoneName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvUpdateRecord2_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvUpdateRecord2.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_AddrCount,
+         { "Addrcount", "dnsserver.DNS_ADDR_ARRAY.AddrCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_name,
+         { "Name", "dnsserver.DNS_RPC_DATA.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_LIST_DOTNET_ZoneArray,
+         { "Zonearray", "dnsserver.DNS_RPC_ZONE_LIST_DOTNET.ZoneArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fAllowUpdate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_fRecurseAfterForwarding,
+         { "Frecurseafterforwarding", "dnsserver.DNS_RPC_FORWARDERS_DOTNET.fRecurseAfterForwarding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_READONLY,
+         { "Dns Rpc Zone Readonly", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_READONLY", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_READONLY_tfs), ( 0x0100 ), NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_dwContext,
+         { "Dwcontext", "dnsserver.DnssrvOperation2.dwContext", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_AutoConfigure,
+         { "Autoconfigure", "dnsserver.DNSSRV_RPC_UNION.AutoConfigure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fNoRecursion,
+         { "Fnorecursion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fNoRecursion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_SECONDARIES_LONGHORN.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_ipv6,
+         { "Ipv6", "dnsserver.DNS_RPC_DATA.ipv6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET_fDsIntegrated,
+         { "Fdsintegrated", "dnsserver.DNS_RPC_ZONE_DATABASE_DOTNET.fDsIntegrated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_ENUM_dwZoneCount,
+         { "Dwzonecount", "dnsserver.DNS_RPC_DP_ENUM.dwZoneCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReserveArray,
+         { "Freservearray", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fReserveArray", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pwszZoneDn,
+         { "Pwszzonedn", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.pwszZoneDn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_dwForwarderTimeout,
+         { "Dwforwardertimeout", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.dwForwarderTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneCreateDotNet,
+         { "Zonecreatedotnet", "dnsserver.DNSSRV_RPC_UNION.ZoneCreateDotNet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_dwZoneCount,
+         { "Dwzonecount", "dnsserver.DNS_RPC_DP_INFO.dwZoneCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_ARRAY_rec,
+         { "Rec", "dnsserver.DNS_RPC_RECORDS_ARRAY.rec", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NAME_str,
+         { "Str", "dnsserver.DNS_RPC_NAME.str", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAdminConfigured,
+         { "Fadminconfigured", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fAdminConfigured", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fSecureResponses,
+         { "Fsecureresponses", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fSecureResponses", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_pszDataFile,
+         { "Pszdatafile", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.pszDataFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fAllowUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_dwTypeId,
+         { "Dwtypeid", "dnsserver.DnssrvOperation2.dwTypeId", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_LIST_W2K_ZoneArray,
+         { "Zonearray", "dnsserver.DNS_RPC_ZONE_LIST_W2K.ZoneArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLocalNetPriorityNetMask,
+         { "Dwlocalnetprioritynetmask", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwLocalNetPriorityNetMask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_ADDR_ARRAY_AddrArray,
+         { "Addrarray", "dnsserver.DNS_ADDR_ARRAY.AddrArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_fDefaultAgingState,
+         { "Fdefaultagingstate", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.fDefaultAgingState", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_fSelectFlag,
+         { "Fselectflag", "dnsserver.DnssrvEnumRecords.fSelectFlag", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fNoRecursion,
+         { "Fnorecursion", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fNoRecursion", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvOperation2.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fAutoCreated,
+         { "Fautocreated", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fAutoCreated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pBuffer_,
+         { "Subcontext length", "dnsserver.DnssrvEnumRecords.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_ARRAY_count,
+         { "Count", "dnsserver.DNS_RPC_RECORDS_ARRAY.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAutoReverseZones,
+         { "Fautoreversezones", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fAutoReverseZones", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwReserveArray,
+         { "Dwreservearray", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwReserveArray", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwMaxCacheTtl,
+         { "Dwmaxcachettl", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwMaxCacheTtl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseWins,
+         { "Fusewins", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fUseWins", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA,
+         { "Dns Rpc View Additional Data", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_ADDITIONAL_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_ADDITIONAL_DATA_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_fLoadExisting,
+         { "Floadexisting", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.fLoadExisting", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_aipLocalMasters,
+         { "Aiplocalmasters", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.aipLocalMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_aipMasters,
+         { "Aipmasters", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.aipMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_pvReserved3,
+         { "Pvreserved3", "dnsserver.DNS_RPC_ZONE_INFO_W2K.pvReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_pszReserved,
+         { "Pszreserved", "dnsserver.DNS_RPC_ENUM_ZONES_FILTER.pszReserved", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_pszZoneExportFile,
+         { "Pszzoneexportfile", "dnsserver.DNS_RPC_ZONE_EXPORT_INFO.pszZoneExportFile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAging,
+         { "Faging", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fAging", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipMasters,
+         { "Aipmasters", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.aipMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_DATABASE_W2K_pszFileName,
+         { "Pszfilename", "dnsserver.DNS_RPC_ZONE_DATABASE_W2K.pszFileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwForwarderTimeout,
+         { "Dwforwardertimeout", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwForwarderTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_soa,
+         { "Soa", "dnsserver.DNS_RPC_DATA.soa", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fRoundRobin,
+         { "Froundrobin", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fRoundRobin", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fAllowUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwVersion,
+         { "Dwversion", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseDatabase,
+         { "Fusedatabase", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fUseDatabase", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_SECURE,
+         { "Dns Rpc Zone Update Secure", "dnsserver.DNS_RPC_ZONE_FLAGS.DNS_RPC_ZONE_UPDATE_SECURE", FT_BOOLEAN, 32, TFS(&DNS_RPC_ZONE_FLAGS_DNS_RPC_ZONE_UPDATE_SECURE_tfs), ( 0x0080 ), NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_STAT_Header,
+         { "Header", "dnsserver.DNSSRV_STAT.Header", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pwszServerName,
+         { "Pwszservername", "dnsserver.DnssrvEnumRecords.pwszServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_cAddressAnswerLimit,
+         { "Caddressanswerlimit", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.cAddressAnswerLimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_pszDsContainer,
+         { "Pszdscontainer", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.pszDsContainer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation2_pszZone,
+         { "Pszzone", "dnsserver.DnssrvOperation2.pszZone", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pszFilterStop,
+         { "Pszfilterstop", "dnsserver.DnssrvEnumRecords.pszFilterStop", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENUM_ZONES_FILTER_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ENUM_ZONES_FILTER.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords_pBuffer,
+         { "Pbuffer", "dnsserver.DnssrvEnumRecords.pBuffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_IP_VALIDATE_aipValidateAddrs,
+         { "Aipvalidateaddrs", "dnsserver.DNS_RPC_IP_VALIDATE.aipValidateAddrs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneChangeDirectoryPartition,
+         { "Zonechangedirectorypartition", "dnsserver.DNSSRV_RPC_UNION.ZoneChangeDirectoryPartition", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fReadOnlyDC,
+         { "Freadonlydc", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fReadOnlyDC", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_IP4_ARRAY_AddrCount,
+         { "Addrcount", "dnsserver.IP4_ARRAY.AddrCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRpcProtocol,
+         { "Dwrpcprotocol", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwRpcProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_dwFlags,
+         { "Dwflags", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.dwFlags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseNbstat,
+         { "Fusenbstat", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fUseNbstat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_IP_VALIDATE_dwContext,
+         { "Dwcontext", "dnsserver.DNS_RPC_IP_VALIDATE.dwContext", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_werror,
+         { "Windows Error", "dnsserver.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvQuery2_pdwTypeId,
+         { "Pdwtypeid", "dnsserver.DnssrvQuery2.pdwTypeId", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_EnlistDirectoryPartition,
+         { "Enlistdirectorypartition", "dnsserver.DNSSRV_RPC_UNION.EnlistDirectoryPartition", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fReverse,
+         { "Freverse", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fReverse", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fNotifyLevel,
+         { "Fnotifylevel", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fNotifyLevel", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_pReserved1,
+         { "Preserved1", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.pReserved1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwZoneType,
+         { "Dwzonetype", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwZoneType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_dwReserved,
+         { "Dwreserved", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.dwReserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_INFORMATION_TYPE,
+         { "Dns Event Log Information Type", "dnsserver.DNS_EVENT_LOG_TYPES.DNS_EVENT_LOG_INFORMATION_TYPE", FT_BOOLEAN, 32, TFS(&DNS_EVENT_LOG_TYPES_DNS_EVENT_LOG_INFORMATION_TYPE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DATA_ptr,
+         { "Ptr", "dnsserver.DNS_RPC_DATA.ptr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fUseDatabase,
+         { "Fusedatabase", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fUseDatabase", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_DOTNET_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_FORWARDERS_DOTNET.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fAutoCreated,
+         { "Fautocreated", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fAutoCreated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_W2K_Flags,
+         { "Flags", "dnsserver.DNS_RPC_ZONE_W2K.Flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fAllowUpdate", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA,
+         { "Dns Rpc View Cache Data", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_CACHE_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_CACHE_DATA_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwLogFileMaxSize,
+         { "Dwlogfilemaxsize", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwLogFileMaxSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET_fAging,
+         { "Faging", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_DOTNET.fAging", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NAME_AND_PARAM_pszNodeName,
+         { "Psznodename", "dnsserver.DNS_RPC_NAME_AND_PARAM.pszNodeName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_dwRecursionTimeout,
+         { "Dwrecursiontimeout", "dnsserver.DNS_RPC_SERVER_INFO_W2K.dwRecursionTimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvOperation_dwTypeId,
+         { "Dwtypeid", "dnsserver.DnssrvOperation.dwTypeId", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_RPC_TYPEID_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_fAllowUpdate,
+         { "Fallowupdate", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.fAllowUpdate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_fUseWins,
+         { "Fusewins", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.fUseWins", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_pvReserved7,
+         { "Pvreserved7", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.pvReserved7", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA,
+         { "Dns Rpc View Root Hint Data", "dnsserver.DNS_SELECT_FLAGS.DNS_RPC_VIEW_ROOT_HINT_DATA", FT_BOOLEAN, 32, TFS(&DNS_SELECT_FLAGS_DNS_RPC_VIEW_ROOT_HINT_DATA_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ENLIST_DP_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ENLIST_DP.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwReserved0,
+         { "Dwreserved0", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwReserved0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_aipMasters,
+         { "Aipmasters", "dnsserver.DNS_RPC_ZONE_INFO_W2K.aipMasters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN_pszAdmin,
+         { "Pszadmin", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_LONGHORN.pszAdmin", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_dwNoRefreshInterval,
+         { "Dwnorefreshinterval", "dnsserver.DNS_RPC_ZONE_INFO_W2K.dwNoRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDsDsaVersion,
+         { "Dwdsdsaversion", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDsDsaVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_DOTNET_fForwarderSlave,
+         { "Fforwarderslave", "dnsserver.DNS_RPC_ZONE_INFO_DOTNET.fForwarderSlave", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvComplexOperation2_pszOperation,
+         { "Pszoperation", "dnsserver.DnssrvComplexOperation2.pszOperation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pBuffer_,
+         { "Subcontext length", "dnsserver.DnssrvEnumRecords2.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_FORWARDERS_W2K_aipForwarders,
+         { "Aipforwarders", "dnsserver.DNS_RPC_FORWARDERS_W2K.aipForwarders", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_NODE_dnsNodeName,
+         { "Dnsnodename", "dnsserver.DNS_RPC_NODE.dnsNodeName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_W2K_fLocalNetPriority,
+         { "Flocalnetpriority", "dnsserver.DNS_RPC_SERVER_INFO_W2K.fLocalNetPriority", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_data_,
+         { "Subcontext length", "dnsserver.DNS_RPC_RECORD.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_SecondariesDotNet,
+         { "Secondariesdotnet", "dnsserver.DNSSRV_RPC_UNION.SecondariesDotNet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszDomainDirectoryPartition,
+         { "Pszdomaindirectorypartition", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pszDomainDirectoryPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_dwDefaultRefreshInterval,
+         { "Dwdefaultrefreshinterval", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.dwDefaultRefreshInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved8,
+         { "Dwreserved8", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_STAT_HEADER_wLength,
+         { "Wlength", "dnsserver.DNSSRV_STAT_HEADER.wLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_dwTimeStamp,
+         { "Dwtimestamp", "dnsserver.DNS_RPC_RECORD.dwTimeStamp", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved3,
+         { "Dwreserved3", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwDebugLevel,
+         { "Dwdebuglevel", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwDebugLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_EXPORT_INFO_dwRpcStructureVersion,
+         { "Dwrpcstructureversion", "dnsserver.DNS_RPC_ZONE_EXPORT_INFO.dwRpcStructureVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fLocalNetPriority,
+         { "Flocalnetpriority", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fLocalNetPriority", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_records,
+         { "Records", "dnsserver.DNS_RPC_RECORDS.records", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_INFO_pszCrDn,
+         { "Pszcrdn", "dnsserver.DNS_RPC_DP_INFO.pszCrDn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_fForwardDelegations,
+         { "Fforwarddelegations", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.fForwardDelegations", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORDS_wRecordCount,
+         { "Wrecordcount", "dnsserver.DNS_RPC_RECORDS.wRecordCount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_DOTNET_dwNameCheckFlag,
+         { "Dwnamecheckflag", "dnsserver.DNS_RPC_SERVER_INFO_DOTNET.dwNameCheckFlag", FT_UINT32, BASE_DEC, VALS(dnsserver_DNS_NAME_CHECK_FLAG_vals), 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_RECORD_wDataLength,
+         { "Wdatalength", "dnsserver.DNS_RPC_RECORD.wDataLength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DnssrvEnumRecords2_pszFilterStart,
+         { "Pszfilterstart", "dnsserver.DnssrvEnumRecords2.pszFilterStart", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K_dwReserved4,
+         { "Dwreserved4", "dnsserver.DNS_RPC_ZONE_CREATE_INFO_W2K.dwReserved4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_opnum,
+         { "Operation", "dnsserver.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN_pszForestDirectoryPartition,
+         { "Pszforestdirectorypartition", "dnsserver.DNS_RPC_SERVER_INFO_LONGHORN.pszForestDirectoryPartition", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_DP_FLAGS_DNS_DP_DELETED,
+         { "Dns Dp Deleted", "dnsserver.DNS_RPC_DP_FLAGS.DNS_DP_DELETED", FT_BOOLEAN, 32, TFS(&DNS_RPC_DP_FLAGS_DNS_DP_DELETED_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_aipNotify,
+         { "Aipnotify", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.aipNotify", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_W2K_fAutoCreated,
+         { "Fautocreated", "dnsserver.DNS_RPC_ZONE_INFO_W2K.fAutoCreated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN_dwLastXfrAttempt,
+         { "Dwlastxfrattempt", "dnsserver.DNS_RPC_ZONE_INFO_LONGHORN.dwLastXfrAttempt", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_AUTOCONFIGURE_dwReserved1,
+         { "Dwreserved1", "dnsserver.DNS_RPC_AUTOCONFIGURE.dwReserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNS_RPC_UTF8_STRING_LIST_dwCount,
+         { "Dwcount", "dnsserver.DNS_RPC_UTF8_STRING_LIST.dwCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dnsserver_DNSSRV_RPC_UNION_ZoneInfoDotNet,
+         { "Zoneinfodotnet", "dnsserver.DNSSRV_RPC_UNION.ZoneInfoDotNet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_dnsserver,
+               &ett_dnsserver_DNS_RPC_BUFFER,
+               &ett_dnsserver_DNS_RPC_UTF8_STRING_LIST,
+               &ett_dnsserver_DNS_RPC_NAME_AND_PARAM,
+               &ett_dnsserver_DNS_RPC_NAME,
+               &ett_dnsserver_DNS_RPC_NODE,
+               &ett_dnsserver_DNS_RPC_RECORD_SOA,
+               &ett_dnsserver_DNS_RPC_RECORD_NAME_PREFERENCE,
+               &ett_dnsserver_DNS_RPC_RECORD_STRING,
+               &ett_dnsserver_DNS_RPC_RECORD_SRV,
+               &ett_dnsserver_DNS_RPC_DATA,
+               &ett_dnsserver_DNS_RPC_RECORD,
+               &ett_dnsserver_DNS_RPC_RECORD_BUF,
+               &ett_dnsserver_IP4_ARRAY,
+               &ett_dnsserver_DNS_ADDR,
+               &ett_dnsserver_DNS_ADDR_ARRAY,
+               &ett_dnsserver_DNS_RPC_IP_VALIDATE,
+               &ett_dnsserver_DNS_RPC_SERVER_INFO_W2K,
+               &ett_dnsserver_DNS_EXTENSION,
+               &ett_dnsserver_DNS_RPC_SERVER_INFO_DOTNET,
+               &ett_dnsserver_DNS_RPC_SERVER_INFO_LONGHORN,
+               &ett_dnsserver_DNS_RPC_DP_FLAGS,
+               &ett_dnsserver_DNS_RPC_DP_REPLICA,
+               &ett_dnsserver_DNS_RPC_DP_INFO,
+               &ett_dnsserver_DNS_RPC_DP_ENUM,
+               &ett_dnsserver_DNS_RPC_DP_LIST,
+               &ett_dnsserver_DNS_RPC_ENLIST_DP,
+               &ett_dnsserver_DNS_RPC_ZONE_CHANGE_DP,
+               &ett_dnsserver_DNS_RPC_ZONE_FLAGS,
+               &ett_dnsserver_DNS_RPC_ZONE_W2K,
+               &ett_dnsserver_DNS_RPC_ZONE_DOTNET,
+               &ett_dnsserver_DNS_RPC_ZONE_LIST_W2K,
+               &ett_dnsserver_DNS_RPC_ZONE_LIST_DOTNET,
+               &ett_dnsserver_DNS_RPC_ZONE_INFO_W2K,
+               &ett_dnsserver_DNS_RPC_ZONE_INFO_DOTNET,
+               &ett_dnsserver_DNS_RPC_ZONE_INFO_LONGHORN,
+               &ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_W2K,
+               &ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_DOTNET,
+               &ett_dnsserver_DNS_RPC_ZONE_SECONDARIES_LONGHORN,
+               &ett_dnsserver_DNS_RPC_ZONE_DATABASE_W2K,
+               &ett_dnsserver_DNS_RPC_ZONE_DATABASE_DOTNET,
+               &ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_W2K,
+               &ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_DOTNET,
+               &ett_dnsserver_DNS_RPC_ZONE_CREATE_INFO_LONGHORN,
+               &ett_dnsserver_DNS_RPC_ZONE_EXPORT_INFO,
+               &ett_dnsserver_DNS_RPC_ENUM_ZONES_FILTER,
+               &ett_dnsserver_DNS_RPC_FORWARDERS_W2K,
+               &ett_dnsserver_DNS_RPC_FORWARDERS_DOTNET,
+               &ett_dnsserver_DNS_RPC_FORWARDERS_LONGHORN,
+               &ett_dnsserver_DNS_RPC_AUTOCONFIGURE,
+               &ett_dnsserver_DNS_EVENT_LOG_TYPES,
+               &ett_dnsserver_DNS_SELECT_FLAGS,
+               &ett_dnsserver_DNSSRV_STAT_HEADER,
+               &ett_dnsserver_DNSSRV_STAT,
+               &ett_dnsserver_DNSSRV_RPC_UNION,
+               &ett_dnsserver_DNS_RPC_RECORDS,
+               &ett_dnsserver_DNS_RPC_RECORDS_ARRAY,
+       };
+
+       proto_dcerpc_dnsserver = proto_register_protocol("DNS Management Server", "DNSSERVER", "dnsserver");
+       proto_register_field_array(proto_dcerpc_dnsserver, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_dnsserver(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_dnsserver, ett_dcerpc_dnsserver,
+               &uuid_dcerpc_dnsserver, ver_dcerpc_dnsserver,
+               dnsserver_dissectors, hf_dnsserver_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dnsserver.h
new file mode 100644 (file)
index 0000000..ef73ec3
--- /dev/null
@@ -0,0 +1,205 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dnsserver.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dnsserver.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-dnsp.h"
+
+#ifndef __PACKET_DCERPC_DNSSERVER_H
+#define __PACKET_DCERPC_DNSSERVER_H
+
+#define DNS_RPC_USE_TCPIP (0x00000001)
+#define DNS_RPC_USE_NAMED_PIPE (0x00000002)
+#define DNS_RPC_USE_LPC (0x00000004)
+#define DNS_RPC_USE_ALL_PROTOCOLS (0xFFFFFFFF)
+extern const value_string dnsserver_DNS_RPC_PROTOCOLS_vals[];
+int dnsserver_dissect_enum_DNS_RPC_PROTOCOLS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_CLIENT_VERSION_W2K (0x00000000)
+#define DNS_CLIENT_VERSION_DOTNET (0x00060000)
+#define DNS_CLIENT_VERSION_LONGHORN (0x00070000)
+extern const value_string dnsserver_DNS_RPC_CLIENT_VERSION_vals[];
+int dnsserver_dissect_enum_DNS_RPC_CLIENT_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_struct_DNS_RPC_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_UTF8_STRING_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_NAME_AND_PARAM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_NODE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORD_SOA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORD_NAME_PREFERENCE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORD_STRING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORD_SRV(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORD_BUF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNS_IPVAL_DNS_SERVERS (0x00)
+#define DNS_IPVAL_DNS_ROOTHINTS (0x01)
+#define DNS_IPVAL_DNS_FORWARDERS (0x02)
+#define DNS_IPVAL_DNS_ZONE_MASTERS (0x03)
+#define DNS_IPVAL_DNS_DELEGATIONS (0x04)
+extern const value_string dnsserver_DNS_IPVAL_CONTEXT_vals[];
+int dnsserver_dissect_enum_DNS_IPVAL_CONTEXT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define ERROR_SUCCESS (0x00)
+#define DNS_IPVAL_INVALID_ADDR (0x01)
+#define DNS_IPVAL_UNREACHABLE (0x02)
+#define DNS_IPVAL_NO_RESPONSE (0x03)
+#define DNS_IPVAL_NOT_AUTH_FOR_ZONE (0x04)
+#define DNS_IPVAL_UNKNOWN_ERROR (0xFF)
+#define DNS_IPVAL_NO_TCP (0x80000000)
+extern const value_string dnsserver_DNS_IP_VALIDATE_RETURN_FLAGS_vals[];
+int dnsserver_dissect_enum_DNS_IP_VALIDATE_RETURN_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_struct_IP4_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_ADDR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_ADDR_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_IP_VALIDATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNS_BOOT_METHOD_UNINITIALIZED (0x00)
+#define DNS_BOOT_METHOD_FILE (0x01)
+#define DNS_BOOT_METHOD_REGISTRY (0x02)
+#define DNS_BOOT_METHOD_DIRECTORY (0x03)
+extern const value_string dnsserver_DNS_BOOT_METHOD_vals[];
+int dnsserver_dissect_enum_DNS_BOOT_METHOD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_ALLOW_RFC_NAMES_ONLY (0x00)
+#define DNS_ALLOW_NONRFC_NAMES (0x01)
+#define DNS_ALLOW_MULTIBYTE_NAMES (0x02)
+#define DNS_ALLOW_ALL_NAMES (0x03)
+extern const value_string dnsserver_DNS_NAME_CHECK_FLAG_vals[];
+int dnsserver_dissect_enum_DNS_NAME_CHECK_FLAG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_EXTENSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_SERVER_INFO_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_bitmap_DNS_RPC_DP_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_DP_REPLICA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNS_DP_OKAY (0x00)
+#define DNS_DP_STATE_REPL_INCOMING (0x01)
+#define DNS_DP_STATE_REPL_OUTGOING (0x02)
+#define DNS_DP_STATE_UNKNOWN (0x03)
+extern const value_string dnsserver_DNS_DP_STATE_vals[];
+int dnsserver_dissect_enum_DNS_DP_STATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_struct_DNS_RPC_DP_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_DP_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_DP_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ENLIST_DP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_CHANGE_DP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNS_ZONE_SECSECURE_NO_SECURITY (0x00)
+#define DNS_ZONE_SECSECURE_NS_ONLY (0x01)
+#define DNS_ZONE_SECSECURE_LIST_ONLY (0x02)
+#define DNS_ZONE_SECSECURE_NO_XFER (0x03)
+extern const value_string dnsserver_DNS_ZONE_SECONDARY_SECURITY_vals[];
+int dnsserver_dissect_enum_DNS_ZONE_SECONDARY_SECURITY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_ZONE_NOTIFY_OFF (0x00)
+#define DNS_ZONE_NOTIFY_ALL_SECONDARIES (0x01)
+#define DNS_ZONE_NOTIFY_LIST_ONLY (0x02)
+extern const value_string dnsserver_DNS_ZONE_NOTIFY_LEVEL_vals[];
+int dnsserver_dissect_enum_DNS_ZONE_NOTIFY_LEVEL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DNS_ZONE_REQUEST_PRIMARY (0x00000001)
+#define DNS_ZONE_REQUEST_SECONDARY (0x00000002)
+#define DNS_ZONE_REQUEST_CACHE (0x00000004)
+#define DNS_ZONE_REQUEST_AUTO (0x00000008)
+#define DNS_ZONE_REQUEST_FORWARD (0x00000010)
+#define DNS_ZONE_REQUEST_REVERSE (0x00000020)
+#define DNS_ZONE_REQUEST_FORWARDER (0x00000040)
+#define DNS_ZONE_REQUEST_STUB (0x00000080)
+#define DNS_ZONE_REQUEST_DS (0x00000100)
+#define DNS_ZONE_REQUEST_NON_DS (0x00000200)
+#define DNS_ZONE_REQUEST_DOMAIN_DP (0x00000400)
+#define DNS_ZONE_REQUEST_FOREST_DP (0x00000800)
+#define DNS_ZONE_REQUEST_CUSTOM_DP (0x00001000)
+#define DNS_ZONE_REQUEST_LEGACY_DP (0x00002000)
+extern const value_string dnsserver_DNS_ZONE_REQUEST_FILTERS_vals[];
+int dnsserver_dissect_enum_DNS_ZONE_REQUEST_FILTERS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_bitmap_DNS_RPC_ZONE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_LIST_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_LIST_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_INFO_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_SECONDARIES_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_DATABASE_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_DATABASE_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_CREATE_INFO_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ZONE_EXPORT_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_ENUM_ZONES_FILTER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_FORWARDERS_W2K(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_FORWARDERS_DOTNET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_FORWARDERS_LONGHORN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS (0x00000001)
+#define DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS (0x00000002)
+#define DNS_RPC_AUTOCONFIG_INTERNAL_ZONES (0x00000004)
+#define DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT (0x00000010)
+#define DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND (0x00000020)
+#define DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND (0x00000040)
+#define DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERROR (0x00008000)
+#define DNS_RPC_AUTOCONFIG_ALL (0xFFFFFFFF)
+extern const value_string dnsserver_DNS_RPC_AUTOCONFIG_vals[];
+int dnsserver_dissect_enum_DNS_RPC_AUTOCONFIG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_struct_DNS_RPC_AUTOCONFIGURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_bitmap_DNS_EVENT_LOG_TYPES(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_bitmap_DNS_SELECT_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNSSRV_STAT_HEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNSSRV_STAT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DNSSRV_TYPEID_NULL (0)
+#define DNSSRV_TYPEID_DWORD (1)
+#define DNSSRV_TYPEID_LPSTR (2)
+#define DNSSRV_TYPEID_LPWSTR (3)
+#define DNSSRV_TYPEID_IPARRAY (4)
+#define DNSSRV_TYPEID_BUFFER (5)
+#define DNSSRV_TYPEID_SERVER_INFO_W2K (6)
+#define DNSSRV_TYPEID_STATS (7)
+#define DNSSRV_TYPEID_FORWARDERS_W2K (8)
+#define DNSSRV_TYPEID_ZONE_W2K (9)
+#define DNSSRV_TYPEID_ZONE_INFO_W2K (10)
+#define DNSSRV_TYPEID_ZONE_SECONDARIES_W2K (11)
+#define DNSSRV_TYPEID_ZONE_DATABASE_W2K (12)
+#define DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K (13)
+#define DNSSRV_TYPEID_ZONE_CREATE_W2K (14)
+#define DNSSRV_TYPEID_NAME_AND_PARAM (15)
+#define DNSSRV_TYPEID_ZONE_LIST_W2K (16)
+#define DNSSRV_TYPEID_ZONE_RENAME (17)
+#define DNSSRV_TYPEID_ZONE_EXPORT (18)
+#define DNSSRV_TYPEID_SERVER_INFO_DOTNET (19)
+#define DNSSRV_TYPEID_FORWARDERS_DOTNET (20)
+#define DNSSRV_TYPEID_ZONE (21)
+#define DNSSRV_TYPEID_ZONE_INFO_DOTNET (22)
+#define DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET (23)
+#define DNSSRV_TYPEID_ZONE_DATABASE (24)
+#define DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET (25)
+#define DNSSRV_TYPEID_ZONE_CREATE_DOTNET (26)
+#define DNSSRV_TYPEID_ZONE_LIST (27)
+#define DNSSRV_TYPEID_DP_ENUM (28)
+#define DNSSRV_TYPEID_DP_INFO (29)
+#define DNSSRV_TYPEID_DP_LIST (30)
+#define DNSSRV_TYPEID_ENLIST_DP (31)
+#define DNSSRV_TYPEID_ZONE_CHANGE_DP (32)
+#define DNSSRV_TYPEID_ENUM_ZONES_FILTER (33)
+#define DNSSRV_TYPEID_ADDRARRAY (34)
+#define DNSSRV_TYPEID_SERVER_INFO (35)
+#define DNSSRV_TYPEID_ZONE_INFO (36)
+#define DNSSRV_TYPEID_FORWARDERS (37)
+#define DNSSRV_TYPEID_ZONE_SECONDARIES (38)
+#define DNSSRV_TYPEID_ZONE_TYPE_RESET (39)
+#define DNSSRV_TYPEID_ZONE_CREATE (40)
+#define DNSSRV_TYPEID_IP_VALIDATE (41)
+#define DNSSRV_TYPEID_AUTOCONFIGURE (42)
+#define DNSSRV_TYPEID_UTF8_STRING_LIST (43)
+#define DNSSRV_TYPEID_UNICODE_STRING_LIST (44)
+extern const value_string dnsserver_DNS_RPC_TYPEID_vals[];
+int dnsserver_dissect_enum_DNS_RPC_TYPEID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORDS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dnsserver_dissect_struct_DNS_RPC_RECORDS_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_DNSSERVER_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.c b/bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.c
new file mode 100644 (file)
index 0000000..c9c4e58
--- /dev/null
@@ -0,0 +1,7440 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsblobs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsblobs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-drsblobs.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_drsblobs = -1;
+static gint ett_drsblobs_drsuapi_DrsOptions = -1;
+static gint ett_drsblobs_replPropertyMetaData1 = -1;
+static gint ett_drsblobs_replPropertyMetaDataCtr1 = -1;
+static gint ett_drsblobs_replPropertyMetaDataCtr = -1;
+static gint ett_drsblobs_replPropertyMetaDataBlob = -1;
+static gint ett_drsblobs_replUpToDateVectorCtr1 = -1;
+static gint ett_drsblobs_replUpToDateVectorCtr2 = -1;
+static gint ett_drsblobs_replUpToDateVectorCtr = -1;
+static gint ett_drsblobs_replUpToDateVectorBlob = -1;
+static gint ett_drsblobs_repsFromTo1OtherInfo = -1;
+static gint ett_drsblobs_repsFromTo1 = -1;
+static gint ett_drsblobs_repsFromTo2OtherInfo = -1;
+static gint ett_drsblobs_repsFromTo2 = -1;
+static gint ett_drsblobs_repsFromTo = -1;
+static gint ett_drsblobs_repsFromToBlob = -1;
+static gint ett_drsblobs_scheduleHeader = -1;
+static gint ett_drsblobs_scheduleSlots = -1;
+static gint ett_drsblobs_schedule = -1;
+static gint ett_drsblobs_partialAttributeSetCtr1 = -1;
+static gint ett_drsblobs_partialAttributeSetCtr = -1;
+static gint ett_drsblobs_partialAttributeSetBlob = -1;
+static gint ett_drsblobs_schemaInfoBlob = -1;
+static gint ett_drsblobs_drsuapi_MSPrefixMap_Entry = -1;
+static gint ett_drsblobs_drsuapi_MSPrefixMap_Ctr = -1;
+static gint ett_drsblobs_prefixMapCtr = -1;
+static gint ett_drsblobs_prefixMapBlob = -1;
+static gint ett_drsblobs_ldapControlDirSyncExtra = -1;
+static gint ett_drsblobs_ldapControlDirSyncBlob = -1;
+static gint ett_drsblobs_ldapControlDirSyncCookie = -1;
+static gint ett_drsblobs_supplementalCredentialsPackage = -1;
+static gint ett_drsblobs_supplementalCredentialsSubBlob = -1;
+static gint ett_drsblobs_supplementalCredentialsBlob = -1;
+static gint ett_drsblobs_package_PackagesBlob = -1;
+static gint ett_drsblobs_package_PrimaryKerberosString = -1;
+static gint ett_drsblobs_package_PrimaryKerberosKey3 = -1;
+static gint ett_drsblobs_package_PrimaryKerberosCtr3 = -1;
+static gint ett_drsblobs_package_PrimaryKerberosKey4 = -1;
+static gint ett_drsblobs_package_PrimaryKerberosCtr4 = -1;
+static gint ett_drsblobs_package_PrimaryKerberosCtr = -1;
+static gint ett_drsblobs_package_PrimaryKerberosBlob = -1;
+static gint ett_drsblobs_package_PrimaryCLEARTEXTBlob = -1;
+static gint ett_drsblobs_package_PrimaryWDigestHash = -1;
+static gint ett_drsblobs_package_PrimaryWDigestBlob = -1;
+static gint ett_drsblobs_AuthInfoNone = -1;
+static gint ett_drsblobs_AuthInfoNT4Owf = -1;
+static gint ett_drsblobs_AuthInfoClear = -1;
+static gint ett_drsblobs_AuthInfoVersion = -1;
+static gint ett_drsblobs_AuthInfo = -1;
+static gint ett_drsblobs_AuthenticationInformation = -1;
+static gint ett_drsblobs_AuthenticationInformationArray = -1;
+static gint ett_drsblobs_trustAuthInOutBlob = -1;
+static gint ett_drsblobs_trustDomainPasswords = -1;
+static gint ett_drsblobs_DsCompressedChunk = -1;
+static gint ett_drsblobs_ExtendedErrorAString = -1;
+static gint ett_drsblobs_ExtendedErrorUString = -1;
+static gint ett_drsblobs_ExtendedErrorBlob = -1;
+static gint ett_drsblobs_ExtendedErrorComputerNameU = -1;
+static gint ett_drsblobs_ExtendedErrorComputerName = -1;
+static gint ett_drsblobs_ExtendedErrorParamU = -1;
+static gint ett_drsblobs_ExtendedErrorParam = -1;
+static gint ett_drsblobs_ExtendedErrorInfo = -1;
+static gint ett_drsblobs_ExtendedErrorInfoPtr = -1;
+static gint ett_drsblobs_ForestTrustString = -1;
+static gint ett_drsblobs_ForestTrustDataDomainInfo = -1;
+static gint ett_drsblobs_ForestTrustDataBinaryData = -1;
+static gint ett_drsblobs_ForestTrustData = -1;
+static gint ett_drsblobs_ForestTrustInfoRecord = -1;
+static gint ett_drsblobs_ForestTrustInfoRecordArmor = -1;
+static gint ett_drsblobs_ForestTrustInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_drsblobs_ExtendedErrorInfo_num_params = -1;
+static gint hf_drsblobs_ForestTrustDataDomainInfo_netbios_name = -1;
+static gint hf_drsblobs_package_PrimaryKerberosString_length = -1;
+static gint hf_drsblobs_ForestTrustInfoRecordArmor_record_size = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_num_old_keys = -1;
+static gint hf_drsblobs_ForestTrustInfoRecord_flags = -1;
+static gint hf_drsblobs_repsFromTo2_consecutive_sync_failures = -1;
+static gint hf_drsblobs_decode_trustDomainPasswords_blob = -1;
+static gint hf_drsblobs_decode_supplementalCredentials_blob = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr2_cursors = -1;
+static gint hf_drsblobs_ForestTrustInfoRecordArmor_record = -1;
+static gint hf_drsblobs_ExtendedErrorBlob_data = -1;
+static gint hf_drsblobs_ForestTrustInfo_records = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_u3 = -1;
+static gint hf_drsblobs_package_PrimaryWDigestBlob_unknown3 = -1;
+static gint hf_drsblobs_package_PrimaryKerberosBlob_version = -1;
+static gint hf_drsblobs_decode_PrimaryCLEARTEXT_blob = -1;
+static gint hf_drsblobs_ldapControlDirSyncCookie_blob = -1;
+static gint hf_drsblobs_package_PrimaryKerberosBlob_flags = -1;
+static gint hf_drsblobs_ldapControlDirSyncCookie_msds = -1;
+static gint hf_drsblobs_replPropertyMetaData1_local_usn = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_padding1 = -1;
+static gint hf_drsblobs_package_PrimaryWDigestBlob_num_hashes = -1;
+static gint hf_drsblobs_repsFromTo2_highwatermark = -1;
+static gint hf_drsblobs_repsFromTo2_result_last_attempt = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_previous_ = -1;
+static gint hf_drsblobs_AuthenticationInformationArray_array = -1;
+static gint hf_drsblobs_ExtendedErrorAString___size = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_current_ = -1;
+static gint hf_drsblobs_repsFromTo1_other_info_length = -1;
+static gint hf_drsblobs_supplementalCredentialsPackage_name_len = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_default_iteration_count = -1;
+static gint hf_drsblobs_ForestTrustDataBinaryData_data = -1;
+static gint hf_drsblobs_repsFromTo2OtherInfo___ndr_size = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_reserved3 = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_padding4 = -1;
+static gint hf_drsblobs_ExtendedErrorComputerName_n = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_current = -1;
+static gint hf_drsblobs_repsFromTo1_replica_flags = -1;
+static gint hf_drsblobs_repsFromTo2_source_dsa_obj_guid = -1;
+static gint hf_drsblobs_repsFromToBlob_version = -1;
+static gint hf_drsblobs_partialAttributeSetBlob_ctr = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_params = -1;
+static gint hf_drsblobs_repsFromTo1_last_attempt = -1;
+static gint hf_drsblobs_decode_trustAuthInOut_blob = -1;
+static gint hf_drsblobs_decode_PrimaryKerberos_blob = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr2_reserved = -1;
+static gint hf_drsblobs_decode_partialAttributeSet_blob = -1;
+static gint hf_drsblobs_partialAttributeSetCtr_ctr1 = -1;
+static gint hf_drsblobs_scheduleHeader_offset = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_status = -1;
+static gint hf_drsblobs_AuthInfo_none = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_num_keys = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_extra = -1;
+static gint hf_drsblobs_repsFromTo2_blobsize = -1;
+static gint hf_drsblobs_AuthInfoClear_size = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_value_len = -1;
+static gint hf_drsblobs_decode_Packages_blob = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_previous_offset = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_keys = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_reserved3 = -1;
+static gint hf_drsblobs_schemaInfoBlob_invocation_id = -1;
+static gint hf_drsblobs_AuthInfoNT4Owf_size = -1;
+static gint hf_drsblobs_package_PrimaryKerberosBlob_ctr = -1;
+static gint hf_drsblobs_ExtendedErrorParamU_u_string = -1;
+static gint hf_drsblobs_replPropertyMetaData1_originating_invocation_id = -1;
+static gint hf_drsblobs_package_PrimaryKerberosString_size = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr1_reserved = -1;
+static gint hf_drsblobs_supplementalCredentialsSubBlob_packages = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_salt = -1;
+static gint hf_drsblobs_prefixMapBlob_version = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_count = -1;
+static gint hf_drsblobs_supplementalCredentialsBlob_unknown1 = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr_ctr2 = -1;
+static gint hf_drsblobs_supplementalCredentialsPackage_reserved = -1;
+static gint hf_drsblobs_ForestTrustDataDomainInfo_sid_size = -1;
+static gint hf_drsblobs_AuthInfoClear_password = -1;
+static gint hf_drsblobs_repsFromTo2OtherInfo_unknown2 = -1;
+static gint hf_drsblobs_repsFromTo1_highwatermark = -1;
+static gint hf_drsblobs_partialAttributeSetCtr1_array = -1;
+static gint hf_drsblobs_ForestTrustInfoRecord_type = -1;
+static gint hf_drsblobs_repsFromTo2_last_success = -1;
+static gint hf_drsblobs_DsCompressedChunk_data = -1;
+static gint hf_drsblobs_package_PrimaryWDigestBlob_unknown2 = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_old_keys = -1;
+static gint hf_drsblobs_repsFromTo2_unknown1 = -1;
+static gint hf_drsblobs_replPropertyMetaDataBlob_version = -1;
+static gint hf_drsblobs_replPropertyMetaDataCtr_ctr1 = -1;
+static gint hf_drsblobs_repsFromTo2_other_info_length = -1;
+static gint hf_drsblobs_package_PrimaryWDigestBlob_hashes = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_reserved1 = -1;
+static gint hf_drsblobs_DsCompressedChunk_marker = -1;
+static gint hf_drsblobs_schedule_numberOfSchedules = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_value = -1;
+static gint hf_drsblobs_partialAttributeSetBlob_version = -1;
+static gint hf_drsblobs_ExtendedErrorAString_string = -1;
+static gint hf_drsblobs_prefixMapCtr_dsdb = -1;
+static gint hf_drsblobs_repsFromTo2_source_dsa_invocation_id = -1;
+static gint hf_drsblobs_replPropertyMetaDataCtr1_reserved = -1;
+static gint hf_drsblobs_supplementalCredentialsSubBlob_prefix = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_current_offset = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_salt = -1;
+static gint hf_drsblobs_supplementalCredentialsBlob_sub = -1;
+static gint hf_drsblobs_ExtendedErrorParam_type = -1;
+static gint hf_drsblobs_repsFromTo2OtherInfo_unknown1 = -1;
+static gint hf_drsblobs_replUpToDateVectorBlob_reserved = -1;
+static gint hf_drsblobs_trustDomainPasswords_incoming = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_u1 = -1;
+static gint hf_drsblobs_replPropertyMetaDataBlob_reserved = -1;
+static gint hf_drsblobs_schedule_dataArray = -1;
+static gint hf_drsblobs_ForestTrustInfoRecord_data = -1;
+static gint hf_drsblobs_ForestTrustData_name = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_value_ = -1;
+static gint hf_drsblobs_repsFromTo1OtherInfo___dns_name_size = -1;
+static gint hf_drsblobs_AuthInfoNone_size = -1;
+static gint hf_drsblobs_AuthInfo_clear = -1;
+static gint hf_drsblobs_replUpToDateVectorBlob_ctr = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr2_count = -1;
+static gint hf_drsblobs_repsFromTo2OtherInfo_dns_name1 = -1;
+static gint hf_drsblobs_ExtendedErrorParam_p = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_num_old_keys = -1;
+static gint hf_drsblobs_repsFromTo2_replica_flags = -1;
+static gint hf_drsblobs_supplementalCredentialsBlob_sub_ = -1;
+static gint hf_drsblobs_AuthenticationInformation_LastUpdateTime = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_padding3 = -1;
+static gint hf_drsblobs_ExtendedErrorUString___size = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr_ctr3 = -1;
+static gint hf_drsblobs_AuthInfoNT4Owf_password = -1;
+static gint hf_drsblobs_replPropertyMetaData1_originating_change_time = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_highwatermark = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_service_keys = -1;
+static gint hf_drsblobs_AuthenticationInformation_AuthInfo = -1;
+static gint hf_drsblobs_ForestTrustDataDomainInfo_sid = -1;
+static gint hf_drsblobs_decode_prefixMap_blob = -1;
+static gint hf_drsblobs_decode_repsFromTo_blob = -1;
+static gint hf_drsblobs_trustDomainPasswords_outgoing = -1;
+static gint hf_drsblobs_repsFromTo1OtherInfo_dns_name = -1;
+static gint hf_drsblobs_repsFromTo2_reserved = -1;
+static gint hf_drsblobs_repsFromTo1_blobsize = -1;
+static gint hf_drsblobs_AuthInfo_nt4owf = -1;
+static gint hf_drsblobs_package_PrimaryKerberosString_string = -1;
+static gint hf_drsblobs_ExtendedErrorParamU_a_string = -1;
+static gint hf_drsblobs_ForestTrustData_data = -1;
+static gint hf_drsblobs_trustDomainPasswords_incoming_size = -1;
+static gint hf_drsblobs_repsFromTo1_transport_guid = -1;
+static gint hf_drsblobs_ForestTrustDataDomainInfo_sid_ = -1;
+static gint hf_drsblobs_repsFromTo2_transport_guid = -1;
+static gint hf_drsblobs_drsuapi_MSPrefixMap_Entry_length = -1;
+static gint hf_drsblobs_partialAttributeSetBlob_reserved = -1;
+static gint hf_drsblobs_schedule_size = -1;
+static gint hf_drsblobs_repsFromTo1_source_dsa_obj_guid = -1;
+static gint hf_drsblobs_supplementalCredentialsSubBlob_num_packages = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_num_keys = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_iteration_count = -1;
+static gint hf_drsblobs_repsFromTo_ctr2 = -1;
+static gint hf_drsblobs_supplementalCredentialsPackage_data_len = -1;
+static gint hf_drsblobs_repsFromToBlob_reserved = -1;
+static gint hf_drsblobs_repsFromTo2_schedule = -1;
+static gint hf_drsblobs_AuthInfo_version = -1;
+static gint hf_drsblobs_trustAuthInOutBlob_previous = -1;
+static gint hf_drsblobs_ForestTrustInfoRecord_timestamp = -1;
+static gint hf_drsblobs_decode_ldapControlDirSync_cookie = -1;
+static gint hf_drsblobs_prefixMapBlob_ctr = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_keytype = -1;
+static gint hf_drsblobs_trustDomainPasswords_outgoing_ = -1;
+static gint hf_drsblobs_package_PackagesBlob_names = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_generating_component = -1;
+static gint hf_drsblobs_ExtendedErrorParamU_uint64 = -1;
+static gint hf_drsblobs_drsuapi_MSPrefixMap_Ctr___ndr_size = -1;
+static gint hf_drsblobs_ForestTrustInfo_version = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_value_ = -1;
+static gint hf_drsblobs_supplementalCredentialsPackage_data = -1;
+static gint hf_drsblobs_AuthInfoVersion_size = -1;
+static gint hf_drsblobs_ForestTrustInfo_count = -1;
+static gint hf_drsblobs_drsuapi_MSPrefixMap_Entry_entryID = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_keytype = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_value = -1;
+static gint hf_drsblobs_package_PrimaryWDigestBlob_unknown1 = -1;
+static gint hf_drsblobs_AuthInfoVersion_version = -1;
+static gint hf_drsblobs_supplementalCredentialsBlob_unknown2 = -1;
+static gint hf_drsblobs_replPropertyMetaData1_attid = -1;
+static gint hf_drsblobs_ExtendedErrorParamU_uint16 = -1;
+static gint hf_drsblobs_ForestTrustString_size = -1;
+static gint hf_drsblobs_repsFromTo1_last_success = -1;
+static gint hf_drsblobs_drsuapi_MSPrefixMap_Ctr_entries = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_flags = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_padding2 = -1;
+static gint hf_drsblobs_repsFromTo_ctr1 = -1;
+static gint hf_drsblobs_trustDomainPasswords_confounder = -1;
+static gint hf_drsblobs_package_PrimaryWDigestBlob_uuknown4 = -1;
+static gint hf_drsblobs_repsFromTo1_consecutive_sync_failures = -1;
+static gint hf_drsblobs_ExtendedErrorComputerNameU_name = -1;
+static gint hf_drsblobs_prefixMapBlob_reserved = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_pid = -1;
+static gint hf_drsblobs_scheduleSlots_slots = -1;
+static gint hf_drsblobs_ldapControlDirSyncCookie_blob_ = -1;
+static gint hf_drsblobs_AuthenticationInformation_AuthType = -1;
+static gint hf_drsblobs_AuthenticationInformation__pad = -1;
+static gint hf_drsblobs_schedule_bandwidth = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_computer_name = -1;
+static gint hf_drsblobs_repsFromTo1_schedule = -1;
+static gint hf_drsblobs_scheduleHeader_type = -1;
+static gint hf_drsblobs_package_PrimaryCLEARTEXTBlob_cleartext = -1;
+static gint hf_drsblobs_schemaInfoBlob_marker = -1;
+static gint hf_drsblobs_repsFromTo1_other_info = -1;
+static gint hf_drsblobs_decode_replUpToDateVector_blob = -1;
+static gint hf_drsblobs_repsFromTo1_reserved = -1;
+static gint hf_drsblobs_replPropertyMetaData1_version = -1;
+static gint hf_drsblobs_schemaInfoBlob_revision = -1;
+static gint hf_drsblobs_repsFromTo2_last_attempt = -1;
+static gint hf_drsblobs_replPropertyMetaData1_originating_usn = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_reserved1 = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr_ctr4 = -1;
+static gint hf_drsblobs_ExtendedErrorUString_string = -1;
+static gint hf_drsblobs_repsFromTo1_source_dsa_invocation_id = -1;
+static gint hf_drsblobs_opnum = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr1_cursors = -1;
+static gint hf_drsblobs_replPropertyMetaDataCtr1_array = -1;
+static gint hf_drsblobs_package_PrimaryKerberosString_string_ = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_value_len = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_older_keys = -1;
+static gint hf_drsblobs_ExtendedErrorBlob_length = -1;
+static gint hf_drsblobs_supplementalCredentialsBlob___ndr_size = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_time = -1;
+static gint hf_drsblobs_replUpToDateVectorBlob_version = -1;
+static gint hf_drsblobs_repsFromTo2_other_info = -1;
+static gint hf_drsblobs_ForestTrustDataBinaryData_size = -1;
+static gint hf_drsblobs_ForestTrustString_string = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_time = -1;
+static gint hf_drsblobs_decode_PrimaryWDigest_blob = -1;
+static gint hf_drsblobs_partialAttributeSetCtr1_count = -1;
+static gint hf_drsblobs_replPropertyMetaDataCtr1_count = -1;
+static gint hf_drsblobs_package_PrimaryWDigestHash_hash = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_guid1 = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr_ctr1 = -1;
+static gint hf_drsblobs_trustDomainPasswords_outgoing_size = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey4_reserved2 = -1;
+static gint hf_drsblobs_ExtendedErrorParamU_blob = -1;
+static gint hf_drsblobs_decode_replPropertyMetaData_blob = -1;
+static gint hf_drsblobs_supplementalCredentialsBlob_unknown3 = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_extra_length = -1;
+static gint hf_drsblobs_supplementalCredentialsSubBlob_signature = -1;
+static gint hf_drsblobs_repsFromTo2OtherInfo_dns_name2 = -1;
+static gint hf_drsblobs_supplementalCredentialsPackage_name = -1;
+static gint hf_drsblobs_repsFromToBlob_ctr = -1;
+static gint hf_drsblobs_schedule_headerArray = -1;
+static gint hf_drsblobs_replPropertyMetaDataBlob_ctr = -1;
+static gint hf_drsblobs_drsuapi_MSPrefixMap_Entry_binary_oid = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_detection_location = -1;
+static gint hf_drsblobs_ExtendedErrorInfoPtr_info = -1;
+static gint hf_drsblobs_package_PrimaryKerberosKey3_reserved2 = -1;
+static gint hf_drsblobs_ldapControlDirSyncExtra_uptodateness_vector = -1;
+static gint hf_drsblobs_ExtendedErrorInfo_next = -1;
+static gint hf_drsblobs_ForestTrustDataDomainInfo_dns_name = -1;
+static gint hf_drsblobs_ExtendedErrorComputerName_present = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_keys = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_num_older_keys = -1;
+static gint hf_drsblobs_trustDomainPasswords_incoming_ = -1;
+static gint hf_drsblobs_ExtendedErrorParamU_uint32 = -1;
+static gint hf_drsblobs_replUpToDateVectorCtr1_count = -1;
+static gint hf_drsblobs_drsuapi_MSPrefixMap_Ctr_num_entries = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_padding5 = -1;
+static gint hf_drsblobs_decode_ExtendedErrorInfo_ptr = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr3_old_keys = -1;
+static gint hf_drsblobs_ForestTrustData_info = -1;
+static gint hf_drsblobs_ldapControlDirSyncBlob_u2 = -1;
+static gint hf_drsblobs_decode_ExtendedErrorInfo_ptr_ = -1;
+static gint hf_drsblobs_repsFromTo1_result_last_attempt = -1;
+static gint hf_drsblobs_package_PrimaryKerberosCtr4_num_service_keys = -1;
+static gint hf_drsblobs_decode_ForestTrustInfo_blob = -1;
+static gint hf_drsblobs_AuthenticationInformationArray_count = -1;
+
+static gint proto_dcerpc_drsblobs = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_drsblobs = {
+       0x12345778, 0x1234, 0xabcd,
+       { 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x", 0x }
+};
+static guint16 ver_dcerpc_drsblobs = 0;
+
+const value_string drsblobs_drsuapi_DsAttributeId_vals[] = {
+{ 0, NULL }
+};
+const value_string drsblobs_lsa_TrustAuthType_vals[] = {
+{ 0, NULL }
+};
+static int drsblobs_dissect_element_replPropertyMetaData1_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaData1_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaData1_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaData1_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaData1_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaData1_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataCtr1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_replPropertyMetaDataBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replPropertyMetaDataBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_replUpToDateVectorCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr1_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr1_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr2_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr2_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_replUpToDateVectorBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_replUpToDateVectorBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_repsFromTo1OtherInfo___dns_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1OtherInfo_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1OtherInfo_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_blobsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_other_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_other_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_other_info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo1_transport_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2OtherInfo_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_blobsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_other_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_other_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_other_info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_transport_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo2_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromTo_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromToBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_repsFromToBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_repsFromToBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_scheduleHeader_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_scheduleHeader_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_scheduleSlots_slots(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_scheduleSlots_slots_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_bandwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_numberOfSchedules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_headerArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_headerArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_dataArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schedule_dataArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_partialAttributeSetCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_partialAttributeSetCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_partialAttributeSetCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_partialAttributeSetCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_partialAttributeSetBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_partialAttributeSetBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_partialAttributeSetBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_schemaInfoBlob_marker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schemaInfoBlob_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_schemaInfoBlob_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_entryID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsblobs_prefixMapVersion_vals[] = {
+       { PREFIX_MAP_VERSION_DSDB, "PREFIX_MAP_VERSION_DSDB" },
+{ 0, NULL }
+};
+static int drsblobs_dissect_element_prefixMapCtr_dsdb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_prefixMapBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *version);
+static int drsblobs_dissect_element_prefixMapBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_prefixMapBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *version);
+static int drsblobs_dissect_element_ldapControlDirSyncExtra_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_extra_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *extra_length);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_guid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncBlob_extra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *extra_length);
+static int drsblobs_dissect_element_ldapControlDirSyncCookie_msds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncCookie_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ldapControlDirSyncCookie_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_data_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsPackage_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsblobs_supplementalCredentialsSignature_vals[] = {
+       { SUPPLEMENTAL_CREDENTIALS_SIGNATURE, "SUPPLEMENTAL_CREDENTIALS_SIGNATURE" },
+{ 0, NULL }
+};
+static int drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsSubBlob_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsSubBlob_num_packages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsSubBlob_packages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsSubBlob_packages_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsBlob_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsBlob___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsBlob_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsBlob_sub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsBlob_sub_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_supplementalCredentialsBlob_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PackagesBlob_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_keytype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_value_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey3_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_num_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_num_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_salt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_old_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_iteration_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_keytype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_value_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosKey4_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_service_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_older_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_salt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_default_iteration_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_service_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_service_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_old_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_older_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr4_older_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosCtr_ctr4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_package_PrimaryKerberosBlob_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryKerberosBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int drsblobs_dissect_element_package_PrimaryCLEARTEXTBlob_cleartext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestHash_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_num_hashes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_uuknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_hashes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_package_PrimaryWDigestBlob_hashes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoNone_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoNT4Owf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoNT4Owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoClear_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoClear_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoClear_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoVersion_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfoVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfo_none(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfo_nt4owf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfo_clear(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthenticationInformation_LastUpdateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthenticationInformation_AuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AuthType);
+static int drsblobs_dissect_element_AuthenticationInformation_AuthInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AuthType);
+static int drsblobs_dissect_element_AuthenticationInformation__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthenticationInformationArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthenticationInformationArray_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_AuthenticationInformationArray_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_current_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_previous_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_current(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_current_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_previous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustAuthInOutBlob_previous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_outgoing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_outgoing_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_incoming(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_incoming_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_outgoing_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_trustDomainPasswords_incoming_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_DsCompressedChunk_marker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_DsCompressedChunk_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorAString___size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorAString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorAString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorAString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorUString___size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorUString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorUString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorUString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsblobs_ExtendedErrorComputerNamePresent_vals[] = {
+       { EXTENDED_ERROR_COMPUTER_NAME_PRESENT, "EXTENDED_ERROR_COMPUTER_NAME_PRESENT" },
+       { EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT, "EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT" },
+{ 0, NULL }
+};
+static int drsblobs_dissect_element_ExtendedErrorComputerNameU_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorComputerName_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *present);
+static int drsblobs_dissect_element_ExtendedErrorComputerName_n(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *present);
+const value_string drsblobs_ExtendedErrorParamType_vals[] = {
+       { EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING, "EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING" },
+       { EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING, "EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING" },
+       { EXTENDED_ERROR_PARAM_TYPE_UINT32, "EXTENDED_ERROR_PARAM_TYPE_UINT32" },
+       { EXTENDED_ERROR_PARAM_TYPE_UINT16, "EXTENDED_ERROR_PARAM_TYPE_UINT16" },
+       { EXTENDED_ERROR_PARAM_TYPE_UINT64, "EXTENDED_ERROR_PARAM_TYPE_UINT64" },
+       { EXTENDED_ERROR_PARAM_TYPE_NONE, "EXTENDED_ERROR_PARAM_TYPE_NONE" },
+       { EXTENDED_ERROR_PARAM_TYPE_BLOB, "EXTENDED_ERROR_PARAM_TYPE_BLOB" },
+{ 0, NULL }
+};
+static int drsblobs_dissect_element_ExtendedErrorParamU_a_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorParamU_u_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorParamU_uint32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorParamU_uint16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorParamU_uint64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorParamU_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorParam_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type);
+static int drsblobs_dissect_element_ExtendedErrorParam_p(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type);
+static int drsblobs_dissect_element_ExtendedErrorInfo_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_generating_component(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_detection_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_num_params(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_params(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfo_params_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfoPtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ExtendedErrorInfoPtr_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataDomainInfo_sid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataDomainInfo_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataDomainInfo_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataDomainInfo_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataDomainInfo_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataBinaryData_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataBinaryData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustDataBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustData_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsblobs_ForestTrustInfoRecordType_vals[] = {
+       { FOREST_TRUST_TOP_LEVEL_NAME, "FOREST_TRUST_TOP_LEVEL_NAME" },
+       { FOREST_TRUST_TOP_LEVEL_NAME_EX, "FOREST_TRUST_TOP_LEVEL_NAME_EX" },
+       { FOREST_TRUST_DOMAIN_INFO, "FOREST_TRUST_DOMAIN_INFO" },
+{ 0, NULL }
+};
+static int drsblobs_dissect_element_ForestTrustInfoRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfoRecord_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfoRecord_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *type);
+static int drsblobs_dissect_element_ForestTrustInfoRecord_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *type);
+static int drsblobs_dissect_element_ForestTrustInfoRecordArmor_record_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfoRecordArmor_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfo_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_ForestTrustInfo_records_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_replPropertyMetaData_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_replUpToDateVector_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_repsFromTo_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_partialAttributeSet_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_prefixMap_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_ldapControlDirSync_cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_supplementalCredentials_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_Packages_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_PrimaryKerberos_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_PrimaryCLEARTEXT_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_PrimaryWDigest_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_trustAuthInOut_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_trustDomainPasswords_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_ExtendedErrorInfo_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_ExtendedErrorInfo_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsblobs_dissect_element_decode_ForestTrustInfo_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+drsblobs_dissect_bitmap_drsuapi_DrsOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsblobs_drsuapi_DrsOptions);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_drsuapi_DsAttributeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_lsa_TrustAuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsAttributeId attid; */
+/* IDL:        uint32 version; */
+/* IDL:        NTTIME_1sec originating_change_time; */
+/* IDL:        GUID originating_invocation_id; */
+/* IDL:        hyper originating_usn; */
+/* IDL:        hyper local_usn; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replPropertyMetaData1_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_enum_drsuapi_DsAttributeId(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaData1_attid, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaData1_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaData1_version, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaData1_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaData1_originating_change_time);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaData1_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaData1_originating_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaData1_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaData1_originating_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaData1_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaData1_local_usn, NULL);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_replPropertyMetaData1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_replPropertyMetaData1);
+       }
+       
+       offset = drsblobs_dissect_element_replPropertyMetaData1_attid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaData1_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaData1_originating_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaData1_originating_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaData1_originating_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaData1_local_usn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        replPropertyMetaData1 array[count]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaDataCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataCtr1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaDataCtr1_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replPropertyMetaData1(tvb,offset,pinfo,tree,drep,hf_drsblobs_replPropertyMetaDataCtr1_array,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_replPropertyMetaDataCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_replPropertyMetaDataCtr1);
+       }
+       
+       offset = drsblobs_dissect_element_replPropertyMetaDataCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaDataCtr1_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaDataCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(1)] [case(1)] replPropertyMetaDataCtr1 ctr1; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replPropertyMetaDataCtr1(tvb,offset,pinfo,tree,drep,hf_drsblobs_replPropertyMetaDataCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_replPropertyMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "replPropertyMetaDataCtr");
+               tree = proto_item_add_subtree(item, ett_drsblobs_replPropertyMetaDataCtr);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = drsblobs_dissect_element_replPropertyMetaDataCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        [switch_is(version)] replPropertyMetaDataCtr ctr; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaDataBlob_version, version);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaDataBlob_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replPropertyMetaDataBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = drsblobs_dissect_replPropertyMetaDataCtr(tvb, offset, pinfo, tree, drep, hf_drsblobs_replPropertyMetaDataBlob_ctr, *version);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_replPropertyMetaDataBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_replPropertyMetaDataBlob);
+       }
+       
+       offset = drsblobs_dissect_element_replPropertyMetaDataBlob_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = drsblobs_dissect_element_replPropertyMetaDataBlob_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replPropertyMetaDataBlob_ctr(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        drsuapi_DsReplicaCursor cursors[count]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorCtr1_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr1_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr1_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_DsReplicaCursor(tvb,offset,pinfo,tree,drep,hf_drsblobs_replUpToDateVectorCtr1_cursors,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_replUpToDateVectorCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_replUpToDateVectorCtr1);
+       }
+       
+       offset = drsblobs_dissect_element_replUpToDateVectorCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replUpToDateVectorCtr1_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replUpToDateVectorCtr1_cursors(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        drsuapi_DsReplicaCursor2 cursors[count]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorCtr2_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr2_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr2_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_DsReplicaCursor2(tvb,offset,pinfo,tree,drep,hf_drsblobs_replUpToDateVectorCtr2_cursors,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_replUpToDateVectorCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_replUpToDateVectorCtr2);
+       }
+       
+       offset = drsblobs_dissect_element_replUpToDateVectorCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replUpToDateVectorCtr2_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replUpToDateVectorCtr2_cursors(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(1)] [case(1)] replUpToDateVectorCtr1 ctr1; */
+/* IDL: [case(2)] [case(2)] replUpToDateVectorCtr2 ctr2; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replUpToDateVectorCtr1(tvb,offset,pinfo,tree,drep,hf_drsblobs_replUpToDateVectorCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replUpToDateVectorCtr2(tvb,offset,pinfo,tree,drep,hf_drsblobs_replUpToDateVectorCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_replUpToDateVectorCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "replUpToDateVectorCtr");
+               tree = proto_item_add_subtree(item, ett_drsblobs_replUpToDateVectorCtr);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = drsblobs_dissect_element_replUpToDateVectorCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = drsblobs_dissect_element_replUpToDateVectorCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        [switch_is(version)] replUpToDateVectorCtr ctr; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_replUpToDateVectorBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorBlob_version, version);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorBlob_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_replUpToDateVectorBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = drsblobs_dissect_replUpToDateVectorCtr(tvb, offset, pinfo, tree, drep, hf_drsblobs_replUpToDateVectorBlob_ctr, *version);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_replUpToDateVectorBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_replUpToDateVectorBlob);
+       }
+       
+       offset = drsblobs_dissect_element_replUpToDateVectorBlob_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = drsblobs_dissect_element_replUpToDateVectorBlob_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_replUpToDateVectorBlob_ctr(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen(dns_name)+1)] uint32 __dns_name_size; */
+/* IDL:        [charset(DOS)] uint8 dns_name[__dns_name_size]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_repsFromTo1OtherInfo___dns_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1OtherInfo___dns_name_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1OtherInfo_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1OtherInfo_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1OtherInfo_dns_name, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_repsFromTo1OtherInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_repsFromTo1OtherInfo);
+       }
+       
+       offset = drsblobs_dissect_element_repsFromTo1OtherInfo___dns_name_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1OtherInfo_dns_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_repsFromTo1(this,ndr->flags)+8)] uint32 blobsize; */
+/* IDL:        uint32 consecutive_sync_failures; */
+/* IDL:        NTTIME_1sec last_success; */
+/* IDL:        NTTIME_1sec last_attempt; */
+/* IDL:        WERROR result_last_attempt; */
+/* IDL:        [relative(1)] repsFromTo1OtherInfo *other_info; */
+/* IDL:        [value(ndr_size_repsFromTo1OtherInfo(other_info,ndr->flags))] uint32 other_info_length; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint8 schedule[84]; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark highwatermark; */
+/* IDL:        GUID source_dsa_obj_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        GUID transport_guid; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_repsFromTo1_blobsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_blobsize, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_consecutive_sync_failures, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_last_success);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_last_attempt);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_result_last_attempt, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_other_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_repsFromTo1_other_info_, , "Pointer to Other Info (repsFromTo1OtherInfo)",hf_drsblobs_repsFromTo1_other_info);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_other_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_repsFromTo1OtherInfo(tvb,offset,pinfo,tree,drep,hf_drsblobs_repsFromTo1_other_info,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_other_info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_other_info_length, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_bitmap_drsuapi_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 84; i++)
+               offset = drsblobs_dissect_element_repsFromTo1_schedule_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_schedule, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsblobs_repsFromTo1_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_source_dsa_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo1_transport_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo1_transport_guid, NULL);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_repsFromTo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_repsFromTo1);
+       }
+       
+       offset = drsblobs_dissect_element_repsFromTo1_blobsize(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_consecutive_sync_failures(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_last_success(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_last_attempt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_result_last_attempt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_other_info(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_other_info_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_schedule(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_source_dsa_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo1_transport_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_repsFromTo2OtherInfo(this,ndr->flags))] uint32 __ndr_size; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *dns_name1; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *dns_name2; */
+/* IDL:        hyper unknown2; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2OtherInfo___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name1_, , "Pointer to Dns Name1 (string)",hf_drsblobs_repsFromTo2OtherInfo_dns_name1);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2OtherInfo_dns_name1 , 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2OtherInfo_unknown1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name2_, , "Pointer to Dns Name2 (string)",hf_drsblobs_repsFromTo2OtherInfo_dns_name2);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2OtherInfo_dns_name2 , 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2OtherInfo_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2OtherInfo_unknown2, NULL);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_repsFromTo2OtherInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_repsFromTo2OtherInfo);
+       }
+       
+       offset = drsblobs_dissect_element_repsFromTo2OtherInfo___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2OtherInfo_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2OtherInfo_dns_name2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2OtherInfo_unknown2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_repsFromTo2(this,ndr->flags)+8)] uint32 blobsize; */
+/* IDL:        uint32 consecutive_sync_failures; */
+/* IDL:        NTTIME_1sec last_success; */
+/* IDL:        NTTIME_1sec last_attempt; */
+/* IDL:        WERROR result_last_attempt; */
+/* IDL:        [relative(1)] repsFromTo2OtherInfo *other_info; */
+/* IDL:        [value(ndr_size_repsFromTo2OtherInfo(other_info,ndr->flags))] uint32 other_info_length; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint8 schedule[84]; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark highwatermark; */
+/* IDL:        GUID source_dsa_obj_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        GUID transport_guid; */
+/* IDL:        hyper unknown1; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_repsFromTo2_blobsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_blobsize, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_consecutive_sync_failures, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_last_success);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_last_attempt);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_result_last_attempt, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_other_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_repsFromTo2_other_info_, , "Pointer to Other Info (repsFromTo2OtherInfo)",hf_drsblobs_repsFromTo2_other_info);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_other_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_repsFromTo2OtherInfo(tvb,offset,pinfo,tree,drep,hf_drsblobs_repsFromTo2_other_info,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_other_info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_other_info_length, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_bitmap_drsuapi_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 84; i++)
+               offset = drsblobs_dissect_element_repsFromTo2_schedule_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_schedule, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsblobs_repsFromTo2_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_source_dsa_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_transport_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_transport_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo2_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromTo2_unknown1, NULL);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_repsFromTo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_repsFromTo2);
+       }
+       
+       offset = drsblobs_dissect_element_repsFromTo2_blobsize(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_consecutive_sync_failures(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_last_success(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_last_attempt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_result_last_attempt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_other_info(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_other_info_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_schedule(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_source_dsa_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_transport_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromTo2_unknown1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(1)] [case(1)] repsFromTo1 ctr1; */
+/* IDL: [case(2)] [case(2)] repsFromTo2 ctr2; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_repsFromTo_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_repsFromTo1(tvb,offset,pinfo,tree,drep,hf_drsblobs_repsFromTo_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromTo_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_repsFromTo2(tvb,offset,pinfo,tree,drep,hf_drsblobs_repsFromTo_ctr2,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_repsFromTo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "repsFromTo");
+               tree = proto_item_add_subtree(item, ett_drsblobs_repsFromTo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = drsblobs_dissect_element_repsFromTo_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = drsblobs_dissect_element_repsFromTo_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        [switch_is(version)] repsFromTo ctr; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_repsFromToBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromToBlob_version, version);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromToBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromToBlob_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_repsFromToBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = drsblobs_dissect_repsFromTo(tvb, offset, pinfo, tree, drep, hf_drsblobs_repsFromToBlob_ctr, *version);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_repsFromToBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_repsFromToBlob);
+       }
+       
+       offset = drsblobs_dissect_element_repsFromToBlob_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = drsblobs_dissect_element_repsFromToBlob_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_repsFromToBlob_ctr(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 type; */
+/* IDL:        uint32 offset; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_scheduleHeader_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_scheduleHeader_type, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_scheduleHeader_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_scheduleHeader_offset, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_scheduleHeader(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_scheduleHeader);
+       }
+       
+       offset = drsblobs_dissect_element_scheduleHeader_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_scheduleHeader_offset(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 slots[168]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_scheduleSlots_slots(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 168; i++)
+               offset = drsblobs_dissect_element_scheduleSlots_slots_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_scheduleSlots_slots_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_scheduleSlots_slots, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_scheduleSlots(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_scheduleSlots);
+       }
+       
+       offset = drsblobs_dissect_element_scheduleSlots_slots(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        [value(0)] uint32 bandwidth; */
+/* IDL:        [value(1)] uint32 numberOfSchedules; */
+/* IDL:        scheduleHeader headerArray[numberOfSchedules]; */
+/* IDL:        scheduleSlots dataArray[numberOfSchedules]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_schedule_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_schedule_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schedule_bandwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_schedule_bandwidth, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schedule_numberOfSchedules(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_schedule_numberOfSchedules, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schedule_headerArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schedule_headerArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_scheduleHeader(tvb,offset,pinfo,tree,drep,hf_drsblobs_schedule_headerArray,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schedule_dataArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schedule_dataArray_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_scheduleSlots(tvb,offset,pinfo,tree,drep,hf_drsblobs_schedule_dataArray,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_schedule);
+       }
+       
+       offset = drsblobs_dissect_element_schedule_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_schedule_bandwidth(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_schedule_numberOfSchedules(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_schedule_headerArray(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_schedule_dataArray(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        drsuapi_DsAttributeId array[count]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_partialAttributeSetCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_partialAttributeSetCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_partialAttributeSetCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_partialAttributeSetCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_enum_drsuapi_DsAttributeId(tvb, offset, pinfo, tree, drep, hf_drsblobs_partialAttributeSetCtr1_array, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_partialAttributeSetCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_partialAttributeSetCtr1);
+       }
+       
+       offset = drsblobs_dissect_element_partialAttributeSetCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_partialAttributeSetCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(1)] [case(1)] partialAttributeSetCtr1 ctr1; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_partialAttributeSetCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_partialAttributeSetCtr1(tvb,offset,pinfo,tree,drep,hf_drsblobs_partialAttributeSetCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_partialAttributeSetCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "partialAttributeSetCtr");
+               tree = proto_item_add_subtree(item, ett_drsblobs_partialAttributeSetCtr);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = drsblobs_dissect_element_partialAttributeSetCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        [switch_is(version)] partialAttributeSetCtr ctr; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_partialAttributeSetBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_partialAttributeSetBlob_version, version);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_partialAttributeSetBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_partialAttributeSetBlob_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_partialAttributeSetBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = drsblobs_dissect_partialAttributeSetCtr(tvb, offset, pinfo, tree, drep, hf_drsblobs_partialAttributeSetBlob_ctr, *version);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_partialAttributeSetBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_partialAttributeSetBlob);
+       }
+       
+       offset = drsblobs_dissect_element_partialAttributeSetBlob_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = drsblobs_dissect_element_partialAttributeSetBlob_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_partialAttributeSetBlob_ctr(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0xFF)] uint8 marker; */
+/* IDL:        [flag(LIBNDR_FLAG_BIGENDIAN)] uint32 revision; */
+/* IDL:        GUID invocation_id; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_schemaInfoBlob_marker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_schemaInfoBlob_marker, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schemaInfoBlob_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_schemaInfoBlob_revision, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_schemaInfoBlob_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_schemaInfoBlob_invocation_id, NULL);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_schemaInfoBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_schemaInfoBlob);
+       }
+       
+       offset = drsblobs_dissect_element_schemaInfoBlob_marker(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_schemaInfoBlob_revision(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_schemaInfoBlob_invocation_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 entryID; */
+/* IDL:        uint16 length; */
+/* IDL:        uint8 binary_oid[length]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_entryID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_drsuapi_MSPrefixMap_Entry_entryID, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_drsuapi_MSPrefixMap_Entry_length, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_drsuapi_MSPrefixMap_Entry_binary_oid, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_drsuapi_MSPrefixMap_Entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_drsuapi_MSPrefixMap_Entry);
+       }
+       
+       offset = drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_entryID(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_drsuapi_MSPrefixMap_Entry_binary_oid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_entries; */
+/* IDL:        [value(ndr_size_drsuapi_MSPrefixMap_Ctr(r,ndr->flags))] uint32 __ndr_size; */
+/* IDL:        drsuapi_MSPrefixMap_Entry entries[num_entries]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_drsuapi_MSPrefixMap_Ctr_num_entries, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_drsuapi_MSPrefixMap_Ctr___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_MSPrefixMap_Entry(tvb,offset,pinfo,tree,drep,hf_drsblobs_drsuapi_MSPrefixMap_Ctr_entries,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_drsuapi_MSPrefixMap_Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_drsuapi_MSPrefixMap_Ctr);
+       }
+       
+       offset = drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_num_entries(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_drsuapi_MSPrefixMap_Ctr_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PREFIX_MAP_VERSION_DSDB=0x44534442, */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_prefixMapVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(PREFIX_MAP_VERSION_DSDB)] [case(PREFIX_MAP_VERSION_DSDB)] drsuapi_DsReplicaOIDMapping_Ctr dsdb; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_prefixMapCtr_dsdb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,drep,hf_drsblobs_prefixMapCtr_dsdb,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_prefixMapCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "prefixMapCtr");
+               tree = proto_item_add_subtree(item, ett_drsblobs_prefixMapCtr);
+       }
+
+       switch(level) {
+               case PREFIX_MAP_VERSION_DSDB:
+                       offset = drsblobs_dissect_element_prefixMapCtr_dsdb(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        prefixMapVersion version; */
+/* IDL:        [value(0)] uint32 reserved; */
+/* IDL:        [switch_is(version)] prefixMapCtr ctr; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_prefixMapBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *version)
+{
+       offset = drsblobs_dissect_enum_prefixMapVersion(tvb, offset, pinfo, tree, drep, hf_drsblobs_prefixMapBlob_version, version);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_prefixMapBlob_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_prefixMapBlob_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_prefixMapBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *version)
+{
+       offset = drsblobs_dissect_prefixMapCtr(tvb, offset, pinfo, tree, drep, hf_drsblobs_prefixMapBlob_ctr, *version);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_prefixMapBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_prefixMapBlob);
+       }
+       
+       offset = drsblobs_dissect_element_prefixMapBlob_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = drsblobs_dissect_element_prefixMapBlob_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_prefixMapBlob_ctr(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [nodiscriminant(1)] union { */
+/* IDL: [case(0)] [case(0)] EMPTY ; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncExtra_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replUpToDateVectorBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_ldapControlDirSyncExtra_uptodateness_vector,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_ldapControlDirSyncExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ldapControlDirSyncExtra");
+               tree = proto_item_add_subtree(item, ett_drsblobs_ldapControlDirSyncExtra);
+       }
+
+       switch(level) {
+               case 0:
+               break;
+
+               default:
+                       offset = drsblobs_dissect_element_ldapControlDirSyncExtra_uptodateness_vector(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(3)] uint32 u1; */
+/* IDL:        NTTIME time; */
+/* IDL:        uint32 u2; */
+/* IDL:        uint32 u3; */
+/* IDL:        [value(ndr_size_ldapControlDirSyncExtra(&extra,extra.uptodateness_vector.version,0))] uint32 extra_length; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark highwatermark; */
+/* IDL:        GUID guid1; */
+/* IDL:        [switch_is(extra_length)] ldapControlDirSyncExtra extra; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_u1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_time);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_u2, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_u3, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_extra_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *extra_length)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_extra_length, extra_length);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_drsuapi_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsblobs_ldapControlDirSyncBlob_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_guid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_guid1, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncBlob_extra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *extra_length)
+{
+       offset = drsblobs_dissect_ldapControlDirSyncExtra(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncBlob_extra, *extra_length);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ldapControlDirSyncBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g extra_length;
+        extra;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ldapControlDirSyncBlob);
+       }
+       
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_u1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_u2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_u3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_extra_length(tvb, offset, pinfo, tree, drep, &extra_length);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_guid1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncBlob_extra(tvb, offset, pinfo, tree, drep, &extra_length);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value("MSDS")] [charset(DOS)] uint8 msds[4]; */
+/* IDL:        [subcontext(0)] ldapControlDirSyncBlob blob; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncCookie_msds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncCookie_msds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncCookie_msds, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncCookie_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_ldapControlDirSyncCookie_blob_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_ldapControlDirSyncCookie_blob_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ldapControlDirSyncCookie_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ldapControlDirSyncBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_ldapControlDirSyncCookie_blob,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ldapControlDirSyncCookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ldapControlDirSyncCookie);
+       }
+       
+       offset = drsblobs_dissect_element_ldapControlDirSyncCookie_msds(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ldapControlDirSyncCookie_blob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2*strlen_m(name))] uint16 name_len; */
+/* IDL:        [value(strlen(data))] uint16 data_len; */
+/* IDL:        uint16 reserved; */
+/* IDL:        [charset(UTF16)] uint8 name[name_len]; */
+/* IDL:        [charset(DOS)] uint8 data[data_len]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsPackage_name_len, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_data_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsPackage_data_len, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsPackage_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsPackage_name, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsPackage_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsPackage_data, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_supplementalCredentialsPackage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_supplementalCredentialsPackage);
+       }
+       
+       offset = drsblobs_dissect_element_supplementalCredentialsPackage_name_len(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsPackage_data_len(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsPackage_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsPackage_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsPackage_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SUPPLEMENTAL_CREDENTIALS_SIGNATURE=0x0050, */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_supplementalCredentialsSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SUPPLEMENTAL_CREDENTIALS_PREFIX)] [charset(UTF16)] uint16 prefix[0x30]; */
+/* IDL:        [value(SUPPLEMENTAL_CREDENTIALS_SIGNATURE)] supplementalCredentialsSignature signature; */
+/* IDL:        uint16 num_packages; */
+/* IDL:        supplementalCredentialsPackage packages[num_packages]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 0x30; i++)
+               offset = drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsSubBlob_prefix, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsSubBlob_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_enum_supplementalCredentialsSignature(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsSubBlob_signature, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsSubBlob_num_packages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsSubBlob_num_packages, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsSubBlob_packages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsSubBlob_packages_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_supplementalCredentialsPackage(tvb,offset,pinfo,tree,drep,hf_drsblobs_supplementalCredentialsSubBlob_packages,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_supplementalCredentialsSubBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_3_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_supplementalCredentialsSubBlob);
+       }
+       
+       offset = drsblobs_dissect_element_supplementalCredentialsSubBlob_prefix(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsSubBlob_signature(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsSubBlob_num_packages(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsSubBlob_packages(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 unknown1; */
+/* IDL:        [value(ndr_size_supplementalCredentialsSubBlob(&sub,ndr->flags))] uint32 __ndr_size; */
+/* IDL:        [value(0)] uint32 unknown2; */
+/* IDL:        [subcontext_size(__ndr_size)] [subcontext(0)] supplementalCredentialsSubBlob sub; */
+/* IDL:        [value(0)] uint8 unknown3; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_supplementalCredentialsBlob_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsBlob_unknown1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsBlob___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsBlob___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsBlob_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsBlob_unknown2, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsBlob_sub(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsBlob_sub_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_supplementalCredentialsBlob_sub_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsBlob_sub_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_supplementalCredentialsSubBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_supplementalCredentialsBlob_sub,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_supplementalCredentialsBlob_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_supplementalCredentialsBlob_unknown3, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_supplementalCredentialsBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_supplementalCredentialsBlob);
+       }
+       
+       offset = drsblobs_dissect_element_supplementalCredentialsBlob_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsBlob___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsBlob_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsBlob_sub(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_supplementalCredentialsBlob_unknown3(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] string_array names; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PackagesBlob_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PackagesBlob_names,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PackagesBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PackagesBlob);
+       }
+       
+       offset = drsblobs_dissect_element_package_PackagesBlob_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2*strlen_m(string))] uint16 length; */
+/* IDL:        [value(2*strlen_m(string))] uint16 size; */
+/* IDL:        [relative(1)] [subcontext_size(size)] [subcontext(0)] [flag(LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING)] string *string; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosString_length, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosString_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_package_PrimaryKerberosString_string_, , "Pointer to String (string)",hf_drsblobs_package_PrimaryKerberosString_string);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosString_string_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_package_PrimaryKerberosString_string__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryKerberosString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosString);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryKerberosString_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosString_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint16 reserved1; */
+/* IDL:        [value(0)] uint16 reserved2; */
+/* IDL:        [value(0)] uint32 reserved3; */
+/* IDL:        uint32 keytype; */
+/* IDL:        [value((value?value->length:0))] uint32 value_len; */
+/* IDL:        [relative(1)] [subcontext_size(value_len)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB *value; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_reserved1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_reserved2, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_reserved3, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_keytype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_keytype, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_value_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_value_len, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_package_PrimaryKerberosKey3_value_, , "Pointer to Value (DATA_BLOB)",hf_drsblobs_package_PrimaryKerberosKey3_value);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_value_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_package_PrimaryKerberosKey3_value__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey3_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey3_value, 1);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryKerberosKey3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosKey3);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey3_reserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey3_keytype(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey3_value_len(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey3_value(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 num_keys; */
+/* IDL:        uint16 num_old_keys; */
+/* IDL:        package_PrimaryKerberosString salt; */
+/* IDL:        package_PrimaryKerberosKey3 keys[num_keys]; */
+/* IDL:        package_PrimaryKerberosKey3 old_keys[num_old_keys]; */
+/* IDL:        [value(0)] uint32 padding1; */
+/* IDL:        [value(0)] uint32 padding2; */
+/* IDL:        [value(0)] uint32 padding3; */
+/* IDL:        [value(0)] uint32 padding4; */
+/* IDL:        [value(0)] uint32 padding5; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_num_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_num_keys, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_num_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_num_old_keys, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_salt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosString(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr3_salt,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosKey3(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr3_keys,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_old_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosKey3(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr3_old_keys,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_padding1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_padding2, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_padding3, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_padding4, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr3_padding5, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryKerberosCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosCtr3);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_num_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_num_old_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_salt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_old_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding4(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr3_padding5(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint16 reserved1; */
+/* IDL:        [value(0)] uint16 reserved2; */
+/* IDL:        [value(0)] uint32 reserved3; */
+/* IDL:        uint32 iteration_count; */
+/* IDL:        uint32 keytype; */
+/* IDL:        [value((value?value->length:0))] uint32 value_len; */
+/* IDL:        [relative(1)] [subcontext_size(value_len)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB *value; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_reserved1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_reserved2, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_reserved3, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_iteration_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_iteration_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_keytype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_keytype, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_value_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_value_len, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_package_PrimaryKerberosKey4_value_, , "Pointer to Value (DATA_BLOB)",hf_drsblobs_package_PrimaryKerberosKey4_value);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_value_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_package_PrimaryKerberosKey4_value__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosKey4_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosKey4_value, 1);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryKerberosKey4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosKey4);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_reserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_iteration_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_keytype(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_value_len(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosKey4_value(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 num_keys; */
+/* IDL:        [value(0)] uint16 num_service_keys; */
+/* IDL:        uint16 num_old_keys; */
+/* IDL:        uint16 num_older_keys; */
+/* IDL:        package_PrimaryKerberosString salt; */
+/* IDL:        uint32 default_iteration_count; */
+/* IDL:        package_PrimaryKerberosKey4 keys[num_keys]; */
+/* IDL:        package_PrimaryKerberosKey4 service_keys[num_service_keys]; */
+/* IDL:        package_PrimaryKerberosKey4 old_keys[num_old_keys]; */
+/* IDL:        package_PrimaryKerberosKey4 older_keys[num_older_keys]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr4_num_keys, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_service_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr4_num_service_keys, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr4_num_old_keys, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_older_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr4_num_older_keys, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_salt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosString(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr4_salt,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_default_iteration_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosCtr4_default_iteration_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosKey4(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr4_keys,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_service_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_service_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosKey4(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr4_service_keys,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_old_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_old_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosKey4(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr4_old_keys,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_older_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr4_older_keys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosKey4(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr4_older_keys,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryKerberosCtr4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosCtr4);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_service_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_old_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_num_older_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_salt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_default_iteration_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_service_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_old_keys(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr4_older_keys(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(3)] [case(3)] package_PrimaryKerberosCtr3 ctr3; */
+/* IDL: [case(4)] [case(4)] package_PrimaryKerberosCtr4 ctr4; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosCtr3(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr_ctr3,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosCtr_ctr4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosCtr4(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryKerberosCtr_ctr4,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_package_PrimaryKerberosCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "package_PrimaryKerberosCtr");
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosCtr);
+       }
+
+       switch(level) {
+               case 3:
+                       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr_ctr3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = drsblobs_dissect_element_package_PrimaryKerberosCtr_ctr4(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 version; */
+/* IDL:        [value(0)] uint16 flags; */
+/* IDL:        [switch_is(version)] package_PrimaryKerberosCtr ctr; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosBlob_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosBlob_version, version);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosBlob_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosBlob_flags, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryKerberosBlob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = drsblobs_dissect_package_PrimaryKerberosCtr(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryKerberosBlob_ctr, *version);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryKerberosBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryKerberosBlob);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryKerberosBlob_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosBlob_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryKerberosBlob_ctr(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB cleartext; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryCLEARTEXTBlob_cleartext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryCLEARTEXTBlob_cleartext, 1);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryCLEARTEXTBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryCLEARTEXTBlob);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryCLEARTEXTBlob_cleartext(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 hash[16]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestHash_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestHash_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestHash_hash, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryWDigestHash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryWDigestHash);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryWDigestHash_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x31)] uint16 unknown1; */
+/* IDL:        [value(0x01)] uint8 unknown2; */
+/* IDL:        uint8 num_hashes; */
+/* IDL:        [value(0)] uint32 unknown3; */
+/* IDL:        [value(0)] udlong uuknown4; */
+/* IDL:        package_PrimaryWDigestHash hashes[num_hashes]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestBlob_unknown1, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestBlob_unknown2, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_num_hashes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestBlob_num_hashes, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestBlob_unknown3, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_uuknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_package_PrimaryWDigestBlob_uuknown4, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_hashes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_package_PrimaryWDigestBlob_hashes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryWDigestHash(tvb,offset,pinfo,tree,drep,hf_drsblobs_package_PrimaryWDigestBlob_hashes,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_package_PrimaryWDigestBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_package_PrimaryWDigestBlob);
+       }
+       
+       offset = drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryWDigestBlob_num_hashes(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryWDigestBlob_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryWDigestBlob_uuknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_package_PrimaryWDigestBlob_hashes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 size; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthInfoNone_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthInfoNone_size, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_AuthInfoNone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthInfoNone);
+       }
+       
+       offset = drsblobs_dissect_element_AuthInfoNone_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(16)] uint32 size; */
+/* IDL:        samr_Password password; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthInfoNT4Owf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthInfoNT4Owf_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfoNT4Owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_drsblobs_AuthInfoNT4Owf_password,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_AuthInfoNT4Owf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthInfoNT4Owf);
+       }
+       
+       offset = drsblobs_dissect_element_AuthInfoNT4Owf_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_AuthInfoNT4Owf_password(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        uint8 password[size]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthInfoClear_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthInfoClear_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfoClear_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfoClear_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthInfoClear_password, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_AuthInfoClear(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthInfoClear);
+       }
+       
+       offset = drsblobs_dissect_element_AuthInfoClear_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_AuthInfoClear_password(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(4)] uint32 size; */
+/* IDL:        uint32 version; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthInfoVersion_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthInfoVersion_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfoVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthInfoVersion_version, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_AuthInfoVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthInfoVersion);
+       }
+       
+       offset = drsblobs_dissect_element_AuthInfoVersion_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_AuthInfoVersion_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(TRUST_AUTH_TYPE_NONE)] [case(TRUST_AUTH_TYPE_NONE)] AuthInfoNone none; */
+/* IDL: [case(TRUST_AUTH_TYPE_NT4OWF)] [case(TRUST_AUTH_TYPE_NT4OWF)] AuthInfoNT4Owf nt4owf; */
+/* IDL: [case(TRUST_AUTH_TYPE_CLEAR)] [case(TRUST_AUTH_TYPE_CLEAR)] AuthInfoClear clear; */
+/* IDL: [case(TRUST_AUTH_TYPE_VERSION)] [case(TRUST_AUTH_TYPE_VERSION)] AuthInfoVersion version; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthInfo_none(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthInfoNone(tvb,offset,pinfo,tree,drep,hf_drsblobs_AuthInfo_none,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfo_nt4owf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthInfoNT4Owf(tvb,offset,pinfo,tree,drep,hf_drsblobs_AuthInfo_nt4owf,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfo_clear(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthInfoClear(tvb,offset,pinfo,tree,drep,hf_drsblobs_AuthInfo_clear,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthInfoVersion(tvb,offset,pinfo,tree,drep,hf_drsblobs_AuthInfo_version,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_AuthInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "AuthInfo");
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthInfo);
+       }
+
+       switch(level) {
+               case TRUST_AUTH_TYPE_NONE:
+                       offset = drsblobs_dissect_element_AuthInfo_none(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case TRUST_AUTH_TYPE_NT4OWF:
+                       offset = drsblobs_dissect_element_AuthInfo_nt4owf(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case TRUST_AUTH_TYPE_CLEAR:
+                       offset = drsblobs_dissect_element_AuthInfo_clear(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case TRUST_AUTH_TYPE_VERSION:
+                       offset = drsblobs_dissect_element_AuthInfo_version(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        NTTIME LastUpdateTime; */
+/* IDL:        lsa_TrustAuthType AuthType; */
+/* IDL:        [switch_is(AuthType)] AuthInfo AuthInfo; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN4)] DATA_BLOB _pad; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthenticationInformation_LastUpdateTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthenticationInformation_LastUpdateTime);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthenticationInformation_AuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AuthType)
+{
+       offset = drsblobs_dissect_enum_lsa_TrustAuthType(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthenticationInformation_AuthType, AuthType);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthenticationInformation_AuthInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *AuthType)
+{
+       offset = drsblobs_dissect_AuthInfo(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthenticationInformation_AuthInfo, *AuthType);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthenticationInformation__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthenticationInformation__pad, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_AuthenticationInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 AuthType;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthenticationInformation);
+       }
+       
+       offset = drsblobs_dissect_element_AuthenticationInformation_LastUpdateTime(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_AuthenticationInformation_AuthType(tvb, offset, pinfo, tree, drep, &AuthType);
+
+       offset = drsblobs_dissect_element_AuthenticationInformation_AuthInfo(tvb, offset, pinfo, tree, drep, &AuthType);
+
+       offset = drsblobs_dissect_element_AuthenticationInformation__pad(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        AuthenticationInformation array[count]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_AuthenticationInformationArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_AuthenticationInformationArray_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthenticationInformationArray_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_AuthenticationInformationArray_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthenticationInformation(tvb,offset,pinfo,tree,drep,hf_drsblobs_AuthenticationInformationArray_array,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_AuthenticationInformationArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_AuthenticationInformationArray);
+       }
+       
+       offset = drsblobs_dissect_element_AuthenticationInformationArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_AuthenticationInformationArray_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [value((count>0)?12:0)] uint32 current_offset; */
+/* IDL:        [value((count>0)?12+ndr_size_AuthenticationInformationArray(&current,ndr->flags):0)] uint32 previous_offset; */
+/* IDL:        [subcontext_size((previous_offset)-(current_offset))] [subcontext(0)] AuthenticationInformationArray current; */
+/* IDL:        [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] AuthenticationInformationArray previous; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustAuthInOutBlob_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_current_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustAuthInOutBlob_current_offset, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_previous_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustAuthInOutBlob_previous_offset, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_current(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustAuthInOutBlob_current_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_trustAuthInOutBlob_current_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_current_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthenticationInformationArray(tvb,offset,pinfo,tree,drep,hf_drsblobs_trustAuthInOutBlob_current,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_previous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustAuthInOutBlob_previous_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_trustAuthInOutBlob_previous_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustAuthInOutBlob_previous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_AuthenticationInformationArray(tvb,offset,pinfo,tree,drep,hf_drsblobs_trustAuthInOutBlob_previous,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_trustAuthInOutBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_trustAuthInOutBlob);
+       }
+       
+       offset = drsblobs_dissect_element_trustAuthInOutBlob_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustAuthInOutBlob_current_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustAuthInOutBlob_previous_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustAuthInOutBlob_current(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustAuthInOutBlob_previous(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 confounder[512]; */
+/* IDL:        [subcontext_size(outgoing_size)] [subcontext(0)] trustAuthInOutBlob outgoing; */
+/* IDL:        [subcontext_size(incoming_size)] [subcontext(0)] trustAuthInOutBlob incoming; */
+/* IDL:        [value(ndr_size_trustAuthInOutBlob(&outgoing,ndr->flags))] uint32 outgoing_size; */
+/* IDL:        [value(ndr_size_trustAuthInOutBlob(&incoming,ndr->flags))] uint32 incoming_size; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 512; i++)
+               offset = drsblobs_dissect_element_trustDomainPasswords_confounder_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustDomainPasswords_confounder, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_outgoing(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustDomainPasswords_outgoing_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_trustDomainPasswords_outgoing_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_outgoing_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_trustAuthInOutBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_trustDomainPasswords_outgoing,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_incoming(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustDomainPasswords_incoming_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_trustDomainPasswords_incoming_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_incoming_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_trustAuthInOutBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_trustDomainPasswords_incoming,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_outgoing_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustDomainPasswords_outgoing_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_trustDomainPasswords_incoming_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_trustDomainPasswords_incoming_size, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_trustDomainPasswords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_trustDomainPasswords);
+       }
+       
+       offset = drsblobs_dissect_element_trustDomainPasswords_confounder(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustDomainPasswords_outgoing(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustDomainPasswords_incoming(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustDomainPasswords_outgoing_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_trustDomainPasswords_incoming_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 marker; */
+/* IDL:        DATA_BLOB data; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_DsCompressedChunk_marker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_DsCompressedChunk_marker, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_DsCompressedChunk_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsblobs_DsCompressedChunk_data, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_DsCompressedChunk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_DsCompressedChunk);
+       }
+       
+       offset = drsblobs_dissect_element_DsCompressedChunk_marker(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_DsCompressedChunk_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 __size; */
+/* IDL:        [unique(1)] [charset(DOS)] [size_is(__size)] uint8 *string; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorAString___size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorAString___size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorAString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorAString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_drsblobs_ExtendedErrorAString_string);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorAString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorAString_string__);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorAString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorAString_string, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorAString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorAString);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorAString___size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorAString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 __size; */
+/* IDL:        [unique(1)] [charset(UTF16)] [size_is(__size)] uint16 *string; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorUString___size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorUString___size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorUString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorUString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_drsblobs_ExtendedErrorUString_string);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorUString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorUString_string__);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorUString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorUString_string, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorUString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorUString);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorUString___size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorUString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorBlob_length, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorBlob_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_drsblobs_ExtendedErrorBlob_data);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorBlob_data__);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorBlob_data, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorBlob);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorBlob_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorBlob_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        EXTENDED_ERROR_COMPUTER_NAME_PRESENT=1, */
+/* IDL:        EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT=2, */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_ExtendedErrorComputerNamePresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(ExtendedErrorComputerNamePresent)] union { */
+/* IDL: [case(EXTENDED_ERROR_COMPUTER_NAME_PRESENT)] [case(EXTENDED_ERROR_COMPUTER_NAME_PRESENT)] ExtendedErrorUString name; */
+/* IDL: [case(EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT)] [case(EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT)] EMPTY ; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorComputerNameU_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorUString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorComputerNameU_name,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_ExtendedErrorComputerNameU(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ExtendedErrorComputerNameU");
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorComputerNameU);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case EXTENDED_ERROR_COMPUTER_NAME_PRESENT:
+                       offset = drsblobs_dissect_element_ExtendedErrorComputerNameU_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        ExtendedErrorComputerNamePresent present; */
+/* IDL:        [switch_is(present)] ExtendedErrorComputerNameU n; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorComputerName_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *present)
+{
+       offset = drsblobs_dissect_enum_ExtendedErrorComputerNamePresent(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorComputerName_present, present);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorComputerName_n(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *present)
+{
+       offset = drsblobs_dissect_ExtendedErrorComputerNameU(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorComputerName_n, *present);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 present;
+        n;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorComputerName);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorComputerName_present(tvb, offset, pinfo, tree, drep, &present);
+
+       offset = drsblobs_dissect_element_ExtendedErrorComputerName_n(tvb, offset, pinfo, tree, drep, &present);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING=1, */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING=2, */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_UINT32=3, */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_UINT16=4, */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_UINT64=5, */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_NONE=6, */
+/* IDL:        EXTENDED_ERROR_PARAM_TYPE_BLOB=7, */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_ExtendedErrorParamType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(ExtendedErrorParamType)] union { */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING)] [case(EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING)] ExtendedErrorAString a_string; */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING)] [case(EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING)] ExtendedErrorUString u_string; */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_UINT32)] [case(EXTENDED_ERROR_PARAM_TYPE_UINT32)] uint32 uint32; */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_UINT16)] [case(EXTENDED_ERROR_PARAM_TYPE_UINT16)] uint16 uint16; */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_UINT64)] [case(EXTENDED_ERROR_PARAM_TYPE_UINT64)] hyper uint64; */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_NONE)] [case(EXTENDED_ERROR_PARAM_TYPE_NONE)] EMPTY ; */
+/* IDL: [case(EXTENDED_ERROR_PARAM_TYPE_BLOB)] [case(EXTENDED_ERROR_PARAM_TYPE_BLOB)] ExtendedErrorBlob blob; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorParamU_a_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorAString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorParamU_a_string,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorParamU_u_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorUString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorParamU_u_string,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorParamU_uint32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorParamU_uint32, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorParamU_uint16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorParamU_uint16, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorParamU_uint64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorParamU_uint64, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorParamU_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorParamU_blob,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_ExtendedErrorParamU(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ExtendedErrorParamU");
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorParamU);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING:
+                       offset = drsblobs_dissect_element_ExtendedErrorParamU_a_string(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING:
+                       offset = drsblobs_dissect_element_ExtendedErrorParamU_u_string(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EXTENDED_ERROR_PARAM_TYPE_UINT32:
+                       offset = drsblobs_dissect_element_ExtendedErrorParamU_uint32(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EXTENDED_ERROR_PARAM_TYPE_UINT16:
+                       offset = drsblobs_dissect_element_ExtendedErrorParamU_uint16(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EXTENDED_ERROR_PARAM_TYPE_UINT64:
+                       offset = drsblobs_dissect_element_ExtendedErrorParamU_uint64(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EXTENDED_ERROR_PARAM_TYPE_NONE:
+               break;
+
+               case EXTENDED_ERROR_PARAM_TYPE_BLOB:
+                       offset = drsblobs_dissect_element_ExtendedErrorParamU_blob(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        ExtendedErrorParamType type; */
+/* IDL:        [switch_is(type)] ExtendedErrorParamU p; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorParam_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type)
+{
+       offset = drsblobs_dissect_enum_ExtendedErrorParamType(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorParam_type, type);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorParam_p(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type)
+{
+       offset = drsblobs_dissect_ExtendedErrorParamU(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorParam_p, *type);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorParam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 type;
+        p;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorParam);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorParam_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = drsblobs_dissect_element_ExtendedErrorParam_p(tvb, offset, pinfo, tree, drep, &type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] ExtendedErrorInfo *next; */
+/* IDL:        ExtendedErrorComputerName computer_name; */
+/* IDL:        hyper pid; */
+/* IDL:        NTTIME time; */
+/* IDL:        uint32 generating_component; */
+/* IDL:        WERROR status; */
+/* IDL:        uint16 detection_location; */
+/* IDL:        uint16 flags; */
+/* IDL:        uint16 num_params; */
+/* IDL:        [size_is(num_params)] ExtendedErrorParam params[*]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorInfo_next_, NDR_POINTER_UNIQUE, "Pointer to Next (ExtendedErrorInfo)",hf_drsblobs_ExtendedErrorInfo_next);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorInfo(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorInfo_next,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorComputerName(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorInfo_computer_name,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_pid, NULL);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_time);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_generating_component(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_generating_component, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_status, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_detection_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_detection_location, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_flags, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_num_params(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsblobs_ExtendedErrorInfo_num_params, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_params(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorInfo_params_);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfo_params_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorParam(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorInfo_params,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorInfo);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_next(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_pid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_generating_component(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_status(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_detection_location(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_num_params(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ExtendedErrorInfo_params(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] ExtendedErrorInfo *info; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfoPtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsblobs_dissect_element_ExtendedErrorInfoPtr_info_, NDR_POINTER_UNIQUE, "Pointer to Info (ExtendedErrorInfo)",hf_drsblobs_ExtendedErrorInfoPtr_info);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ExtendedErrorInfoPtr_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorInfo(tvb,offset,pinfo,tree,drep,hf_drsblobs_ExtendedErrorInfoPtr_info,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ExtendedErrorInfoPtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ExtendedErrorInfoPtr);
+       }
+       
+       offset = drsblobs_dissect_element_ExtendedErrorInfoPtr_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen_m(string))] uint32 size; */
+/* IDL:        [charset(UTF8)] uint8 string[size]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustString_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustString_string, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ForestTrustString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustString);
+       }
+       
+       offset = drsblobs_dissect_element_ForestTrustString_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_dom_sid0(&sid,ndr->flags))] uint32 sid_size; */
+/* IDL:        [subcontext_size(sid_size)] [subcontext(0)] dom_sid sid; */
+/* IDL:        ForestTrustString dns_name; */
+/* IDL:        ForestTrustString netbios_name; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustDataDomainInfo_sid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustDataDomainInfo_sid_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustDataDomainInfo_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustDataDomainInfo_sid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_ForestTrustDataDomainInfo_sid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustDataDomainInfo_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustDataDomainInfo_sid,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustDataDomainInfo_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustDataDomainInfo_dns_name,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustDataDomainInfo_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustDataDomainInfo_netbios_name,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ForestTrustDataDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustDataDomainInfo);
+       }
+       
+       offset = drsblobs_dissect_element_ForestTrustDataDomainInfo_sid_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustDataDomainInfo_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustDataDomainInfo_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustDataDomainInfo_netbios_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        uint8 data[size]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustDataBinaryData_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustDataBinaryData_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustDataBinaryData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustDataBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustDataBinaryData_data, 0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ForestTrustDataBinaryData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustDataBinaryData);
+       }
+       
+       offset = drsblobs_dissect_element_ForestTrustDataBinaryData_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustDataBinaryData_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(FOREST_TRUST_TOP_LEVEL_NAME)] [case(FOREST_TRUST_TOP_LEVEL_NAME)] ForestTrustString name; */
+/* IDL: [case(FOREST_TRUST_TOP_LEVEL_NAME_EX)] [case(FOREST_TRUST_TOP_LEVEL_NAME_EX)] ForestTrustString name; */
+/* IDL: [case(FOREST_TRUST_DOMAIN_INFO)] [case(FOREST_TRUST_DOMAIN_INFO)] ForestTrustDataDomainInfo info; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustData_name,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustString(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustData_name,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustData_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustDataDomainInfo(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustData_info,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustDataBinaryData(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustData_data,0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_ForestTrustData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ForestTrustData");
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustData);
+       }
+
+       switch(level) {
+               case FOREST_TRUST_TOP_LEVEL_NAME:
+                       offset = drsblobs_dissect_element_ForestTrustData_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FOREST_TRUST_TOP_LEVEL_NAME_EX:
+                       offset = drsblobs_dissect_element_ForestTrustData_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FOREST_TRUST_DOMAIN_INFO:
+                       offset = drsblobs_dissect_element_ForestTrustData_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = drsblobs_dissect_element_ForestTrustData_data(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        FOREST_TRUST_TOP_LEVEL_NAME=0, */
+/* IDL:        FOREST_TRUST_TOP_LEVEL_NAME_EX=1, */
+/* IDL:        FOREST_TRUST_DOMAIN_INFO=2, */
+/* IDL: } */
+
+int
+drsblobs_dissect_enum_ForestTrustInfoRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        NTTIME timestamp; */
+/* IDL:        ForestTrustInfoRecordType type; */
+/* IDL:        [switch_is(type)] ForestTrustData data; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustInfoRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfoRecord_flags, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfoRecord_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfoRecord_timestamp);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfoRecord_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *type)
+{
+       offset = drsblobs_dissect_enum_ForestTrustInfoRecordType(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfoRecord_type, type);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfoRecord_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *type)
+{
+       offset = drsblobs_dissect_ForestTrustData(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfoRecord_data, *type);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ForestTrustInfoRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint8 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustInfoRecord);
+       }
+       
+       offset = drsblobs_dissect_element_ForestTrustInfoRecord_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustInfoRecord_timestamp(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustInfoRecord_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = drsblobs_dissect_element_ForestTrustInfoRecord_data(tvb, offset, pinfo, tree, drep, &type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_ForestTrustInfoRecord(&record,ndr->flags))] uint32 record_size; */
+/* IDL:        ForestTrustInfoRecord record; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustInfoRecordArmor_record_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfoRecordArmor_record_size, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfoRecordArmor_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustInfoRecord(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustInfoRecordArmor_record,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ForestTrustInfoRecordArmor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustInfoRecordArmor);
+       }
+       
+       offset = drsblobs_dissect_element_ForestTrustInfoRecordArmor_record_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustInfoRecordArmor_record(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        uint32 count; */
+/* IDL:        ForestTrustInfoRecordArmor records[count]; */
+/* IDL: } */
+
+static int
+drsblobs_dissect_element_ForestTrustInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfo_version, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsblobs_ForestTrustInfo_count, 0);
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfo_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_ForestTrustInfo_records_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustInfoRecordArmor(tvb,offset,pinfo,tree,drep,hf_drsblobs_ForestTrustInfo_records,0);
+
+       return offset;
+}
+
+int
+drsblobs_dissect_struct_ForestTrustInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsblobs_ForestTrustInfo);
+       }
+       
+       offset = drsblobs_dissect_element_ForestTrustInfo_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustInfo_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsblobs_dissect_element_ForestTrustInfo_records(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_replPropertyMetaData_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replPropertyMetaDataBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_replPropertyMetaData_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_replPropertyMetaData( */
+/* IDL: [in] replPropertyMetaDataBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_replPropertyMetaData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_replPropertyMetaData";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_replPropertyMetaData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_replPropertyMetaData";
+       offset = drsblobs_dissect_element_decode_replPropertyMetaData_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_replUpToDateVector_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_replUpToDateVectorBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_replUpToDateVector_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_replUpToDateVector( */
+/* IDL: [in] replUpToDateVectorBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_replUpToDateVector_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_replUpToDateVector";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_replUpToDateVector_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_replUpToDateVector";
+       offset = drsblobs_dissect_element_decode_replUpToDateVector_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_repsFromTo_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_repsFromToBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_repsFromTo_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_repsFromTo( */
+/* IDL: [in] repsFromToBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_repsFromTo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_repsFromTo";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_repsFromTo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_repsFromTo";
+       offset = drsblobs_dissect_element_decode_repsFromTo_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_partialAttributeSet_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_partialAttributeSetBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_partialAttributeSet_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_partialAttributeSet( */
+/* IDL: [in] partialAttributeSetBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_partialAttributeSet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_partialAttributeSet";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_partialAttributeSet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_partialAttributeSet";
+       offset = drsblobs_dissect_element_decode_partialAttributeSet_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_prefixMap_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_prefixMapBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_prefixMap_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_prefixMap( */
+/* IDL: [in] prefixMapBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_prefixMap_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_prefixMap";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_prefixMap_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_prefixMap";
+       offset = drsblobs_dissect_element_decode_prefixMap_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_ldapControlDirSync_cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ldapControlDirSyncCookie(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_ldapControlDirSync_cookie,0);
+
+       return offset;
+}
+
+/* IDL: void decode_ldapControlDirSync( */
+/* IDL: [in] ldapControlDirSyncCookie cookie */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_ldapControlDirSync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_ldapControlDirSync";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_ldapControlDirSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_ldapControlDirSync";
+       offset = drsblobs_dissect_element_decode_ldapControlDirSync_cookie(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_supplementalCredentials_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_supplementalCredentialsBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_supplementalCredentials_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_supplementalCredentials( */
+/* IDL: [in] supplementalCredentialsBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_supplementalCredentials_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_supplementalCredentials";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_supplementalCredentials_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_supplementalCredentials";
+       offset = drsblobs_dissect_element_decode_supplementalCredentials_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_Packages_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PackagesBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_Packages_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_Packages( */
+/* IDL: [in] package_PackagesBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_Packages_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_Packages";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_Packages_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_Packages";
+       offset = drsblobs_dissect_element_decode_Packages_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_PrimaryKerberos_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryKerberosBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_PrimaryKerberos_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_PrimaryKerberos( */
+/* IDL: [in] package_PrimaryKerberosBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_PrimaryKerberos_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_PrimaryKerberos";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_PrimaryKerberos_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_PrimaryKerberos";
+       offset = drsblobs_dissect_element_decode_PrimaryKerberos_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_PrimaryCLEARTEXT_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryCLEARTEXTBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_PrimaryCLEARTEXT_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_PrimaryCLEARTEXT( */
+/* IDL: [in] package_PrimaryCLEARTEXTBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_PrimaryCLEARTEXT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_PrimaryCLEARTEXT";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_PrimaryCLEARTEXT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_PrimaryCLEARTEXT";
+       offset = drsblobs_dissect_element_decode_PrimaryCLEARTEXT_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_PrimaryWDigest_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_package_PrimaryWDigestBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_PrimaryWDigest_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_PrimaryWDigest( */
+/* IDL: [in] package_PrimaryWDigestBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_PrimaryWDigest_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_PrimaryWDigest";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_PrimaryWDigest_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_PrimaryWDigest";
+       offset = drsblobs_dissect_element_decode_PrimaryWDigest_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_trustAuthInOut_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_trustAuthInOutBlob(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_trustAuthInOut_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_trustAuthInOut( */
+/* IDL: [in] trustAuthInOutBlob blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_trustAuthInOut_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_trustAuthInOut";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_trustAuthInOut_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_trustAuthInOut";
+       offset = drsblobs_dissect_element_decode_trustAuthInOut_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_trustDomainPasswords_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_trustDomainPasswords(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_trustDomainPasswords_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_trustDomainPasswords( */
+/* IDL: [in] trustDomainPasswords blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_trustDomainPasswords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_trustDomainPasswords";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_trustDomainPasswords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_trustDomainPasswords";
+       offset = drsblobs_dissect_element_decode_trustDomainPasswords_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_ExtendedErrorInfo_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsblobs_decode_ExtendedErrorInfo_ptr_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsblobs_dissect_element_decode_ExtendedErrorInfo_ptr_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_ExtendedErrorInfo_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ExtendedErrorInfoPtr(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_ExtendedErrorInfo_ptr,0);
+
+       return offset;
+}
+
+/* IDL: void decode_ExtendedErrorInfo( */
+/* IDL: [in] [subcontext(0xFFFFFC01)] ExtendedErrorInfoPtr ptr */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_ExtendedErrorInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_ExtendedErrorInfo";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_ExtendedErrorInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_ExtendedErrorInfo";
+       offset = drsblobs_dissect_element_decode_ExtendedErrorInfo_ptr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsblobs_dissect_element_decode_ForestTrustInfo_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsblobs_dissect_struct_ForestTrustInfo(tvb,offset,pinfo,tree,drep,hf_drsblobs_decode_ForestTrustInfo_blob,0);
+
+       return offset;
+}
+
+/* IDL: void decode_ForestTrustInfo( */
+/* IDL: [in] ForestTrustInfo blob */
+/* IDL: ); */
+
+static int
+drsblobs_dissect_decode_ForestTrustInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_ForestTrustInfo";
+       return offset;
+}
+
+static int
+drsblobs_dissect_decode_ForestTrustInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_ForestTrustInfo";
+       offset = drsblobs_dissect_element_decode_ForestTrustInfo_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector drsblobs_dissectors[] = {
+       { 0, "decode_replPropertyMetaData",
+          drsblobs_dissect_decode_replPropertyMetaData_request, drsblobs_dissect_decode_replPropertyMetaData_response},
+       { 1, "decode_replUpToDateVector",
+          drsblobs_dissect_decode_replUpToDateVector_request, drsblobs_dissect_decode_replUpToDateVector_response},
+       { 2, "decode_repsFromTo",
+          drsblobs_dissect_decode_repsFromTo_request, drsblobs_dissect_decode_repsFromTo_response},
+       { 3, "decode_partialAttributeSet",
+          drsblobs_dissect_decode_partialAttributeSet_request, drsblobs_dissect_decode_partialAttributeSet_response},
+       { 4, "decode_prefixMap",
+          drsblobs_dissect_decode_prefixMap_request, drsblobs_dissect_decode_prefixMap_response},
+       { 5, "decode_ldapControlDirSync",
+          drsblobs_dissect_decode_ldapControlDirSync_request, drsblobs_dissect_decode_ldapControlDirSync_response},
+       { 6, "decode_supplementalCredentials",
+          drsblobs_dissect_decode_supplementalCredentials_request, drsblobs_dissect_decode_supplementalCredentials_response},
+       { 7, "decode_Packages",
+          drsblobs_dissect_decode_Packages_request, drsblobs_dissect_decode_Packages_response},
+       { 8, "decode_PrimaryKerberos",
+          drsblobs_dissect_decode_PrimaryKerberos_request, drsblobs_dissect_decode_PrimaryKerberos_response},
+       { 9, "decode_PrimaryCLEARTEXT",
+          drsblobs_dissect_decode_PrimaryCLEARTEXT_request, drsblobs_dissect_decode_PrimaryCLEARTEXT_response},
+       { 10, "decode_PrimaryWDigest",
+          drsblobs_dissect_decode_PrimaryWDigest_request, drsblobs_dissect_decode_PrimaryWDigest_response},
+       { 11, "decode_trustAuthInOut",
+          drsblobs_dissect_decode_trustAuthInOut_request, drsblobs_dissect_decode_trustAuthInOut_response},
+       { 12, "decode_trustDomainPasswords",
+          drsblobs_dissect_decode_trustDomainPasswords_request, drsblobs_dissect_decode_trustDomainPasswords_response},
+       { 13, "decode_ExtendedErrorInfo",
+          drsblobs_dissect_decode_ExtendedErrorInfo_request, drsblobs_dissect_decode_ExtendedErrorInfo_response},
+       { 14, "decode_ForestTrustInfo",
+          drsblobs_dissect_decode_ForestTrustInfo_request, drsblobs_dissect_decode_ForestTrustInfo_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_drsblobs(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_drsblobs_ExtendedErrorInfo_num_params,
+         { "Num Params", "drsblobs.ExtendedErrorInfo.num_params", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataDomainInfo_netbios_name,
+         { "Netbios Name", "drsblobs.ForestTrustDataDomainInfo.netbios_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosString_length,
+         { "Length", "drsblobs.package_PrimaryKerberosString.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfoRecordArmor_record_size,
+         { "Record Size", "drsblobs.ForestTrustInfoRecordArmor.record_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_num_old_keys,
+         { "Num Old Keys", "drsblobs.package_PrimaryKerberosCtr4.num_old_keys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfoRecord_flags,
+         { "Flags", "drsblobs.ForestTrustInfoRecord.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_consecutive_sync_failures,
+         { "Consecutive Sync Failures", "drsblobs.repsFromTo2.consecutive_sync_failures", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_trustDomainPasswords_blob,
+         { "Blob", "drsblobs.decode_trustDomainPasswords.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_supplementalCredentials_blob,
+         { "Blob", "drsblobs.decode_supplementalCredentials.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr2_cursors,
+         { "Cursors", "drsblobs.replUpToDateVectorCtr2.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfoRecordArmor_record,
+         { "Record", "drsblobs.ForestTrustInfoRecordArmor.record", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorBlob_data,
+         { "Data", "drsblobs.ExtendedErrorBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfo_records,
+         { "Records", "drsblobs.ForestTrustInfo.records", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_u3,
+         { "U3", "drsblobs.ldapControlDirSyncBlob.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestBlob_unknown3,
+         { "Unknown3", "drsblobs.package_PrimaryWDigestBlob.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosBlob_version,
+         { "Version", "drsblobs.package_PrimaryKerberosBlob.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_PrimaryCLEARTEXT_blob,
+         { "Blob", "drsblobs.decode_PrimaryCLEARTEXT.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncCookie_blob,
+         { "Blob", "drsblobs.ldapControlDirSyncCookie.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosBlob_flags,
+         { "Flags", "drsblobs.package_PrimaryKerberosBlob.flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncCookie_msds,
+         { "Msds", "drsblobs.ldapControlDirSyncCookie.msds", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaData1_local_usn,
+         { "Local Usn", "drsblobs.replPropertyMetaData1.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_padding1,
+         { "Padding1", "drsblobs.package_PrimaryKerberosCtr3.padding1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestBlob_num_hashes,
+         { "Num Hashes", "drsblobs.package_PrimaryWDigestBlob.num_hashes", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_highwatermark,
+         { "Highwatermark", "drsblobs.repsFromTo2.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_result_last_attempt,
+         { "Result Last Attempt", "drsblobs.repsFromTo2.result_last_attempt", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_previous_,
+         { "Subcontext length", "drsblobs.trustAuthInOutBlob.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthenticationInformationArray_array,
+         { "Array", "drsblobs.AuthenticationInformationArray.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorAString___size,
+         { "  Size", "drsblobs.ExtendedErrorAString.__size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_current_,
+         { "Subcontext length", "drsblobs.trustAuthInOutBlob.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_other_info_length,
+         { "Other Info Length", "drsblobs.repsFromTo1.other_info_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsPackage_name_len,
+         { "Name Len", "drsblobs.supplementalCredentialsPackage.name_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_default_iteration_count,
+         { "Default Iteration Count", "drsblobs.package_PrimaryKerberosCtr4.default_iteration_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataBinaryData_data,
+         { "Data", "drsblobs.ForestTrustDataBinaryData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2OtherInfo___ndr_size,
+         { "  Ndr Size", "drsblobs.repsFromTo2OtherInfo.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_reserved3,
+         { "Reserved3", "drsblobs.package_PrimaryKerberosKey4.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_padding4,
+         { "Padding4", "drsblobs.package_PrimaryKerberosCtr3.padding4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorComputerName_n,
+         { "N", "drsblobs.ExtendedErrorComputerName.n", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_current,
+         { "Current", "drsblobs.trustAuthInOutBlob.current", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_replica_flags,
+         { "Replica Flags", "drsblobs.repsFromTo1.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_source_dsa_obj_guid,
+         { "Source Dsa Obj Guid", "drsblobs.repsFromTo2.source_dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromToBlob_version,
+         { "Version", "drsblobs.repsFromToBlob.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_partialAttributeSetBlob_ctr,
+         { "Ctr", "drsblobs.partialAttributeSetBlob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_params,
+         { "Params", "drsblobs.ExtendedErrorInfo.params", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_last_attempt,
+         { "Last Attempt", "drsblobs.repsFromTo1.last_attempt", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_trustAuthInOut_blob,
+         { "Blob", "drsblobs.decode_trustAuthInOut.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_PrimaryKerberos_blob,
+         { "Blob", "drsblobs.decode_PrimaryKerberos.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr2_reserved,
+         { "Reserved", "drsblobs.replUpToDateVectorCtr2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_partialAttributeSet_blob,
+         { "Blob", "drsblobs.decode_partialAttributeSet.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_partialAttributeSetCtr_ctr1,
+         { "Ctr1", "drsblobs.partialAttributeSetCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_scheduleHeader_offset,
+         { "Offset", "drsblobs.scheduleHeader.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_status,
+         { "Status", "drsblobs.ExtendedErrorInfo.status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfo_none,
+         { "None", "drsblobs.AuthInfo.none", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_num_keys,
+         { "Num Keys", "drsblobs.package_PrimaryKerberosCtr3.num_keys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_extra,
+         { "Extra", "drsblobs.ldapControlDirSyncBlob.extra", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_blobsize,
+         { "Blobsize", "drsblobs.repsFromTo2.blobsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoClear_size,
+         { "Size", "drsblobs.AuthInfoClear.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_value_len,
+         { "Value Len", "drsblobs.package_PrimaryKerberosKey3.value_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_Packages_blob,
+         { "Blob", "drsblobs.decode_Packages.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_previous_offset,
+         { "Previous Offset", "drsblobs.trustAuthInOutBlob.previous_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_keys,
+         { "Keys", "drsblobs.package_PrimaryKerberosCtr4.keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_reserved3,
+         { "Reserved3", "drsblobs.package_PrimaryKerberosKey3.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schemaInfoBlob_invocation_id,
+         { "Invocation Id", "drsblobs.schemaInfoBlob.invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoNT4Owf_size,
+         { "Size", "drsblobs.AuthInfoNT4Owf.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosBlob_ctr,
+         { "Ctr", "drsblobs.package_PrimaryKerberosBlob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParamU_u_string,
+         { "U String", "drsblobs.ExtendedErrorParamU.u_string", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaData1_originating_invocation_id,
+         { "Originating Invocation Id", "drsblobs.replPropertyMetaData1.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosString_size,
+         { "Size", "drsblobs.package_PrimaryKerberosString.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr1_reserved,
+         { "Reserved", "drsblobs.replUpToDateVectorCtr1.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsSubBlob_packages,
+         { "Packages", "drsblobs.supplementalCredentialsSubBlob.packages", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_salt,
+         { "Salt", "drsblobs.package_PrimaryKerberosCtr3.salt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_prefixMapBlob_version,
+         { "Version", "drsblobs.prefixMapBlob.version", FT_UINT32, BASE_DEC, VALS(drsblobs_prefixMapVersion_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_count,
+         { "Count", "drsblobs.trustAuthInOutBlob.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsBlob_unknown1,
+         { "Unknown1", "drsblobs.supplementalCredentialsBlob.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr_ctr2,
+         { "Ctr2", "drsblobs.replUpToDateVectorCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsPackage_reserved,
+         { "Reserved", "drsblobs.supplementalCredentialsPackage.reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataDomainInfo_sid_size,
+         { "Sid Size", "drsblobs.ForestTrustDataDomainInfo.sid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoClear_password,
+         { "Password", "drsblobs.AuthInfoClear.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2OtherInfo_unknown2,
+         { "Unknown2", "drsblobs.repsFromTo2OtherInfo.unknown2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_highwatermark,
+         { "Highwatermark", "drsblobs.repsFromTo1.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_partialAttributeSetCtr1_array,
+         { "Array", "drsblobs.partialAttributeSetCtr1.array", FT_UINT32, BASE_DEC, VALS(drsblobs_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfoRecord_type,
+         { "Type", "drsblobs.ForestTrustInfoRecord.type", FT_UINT8, BASE_DEC, VALS(drsblobs_ForestTrustInfoRecordType_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_last_success,
+         { "Last Success", "drsblobs.repsFromTo2.last_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_DsCompressedChunk_data,
+         { "Data", "drsblobs.DsCompressedChunk.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestBlob_unknown2,
+         { "Unknown2", "drsblobs.package_PrimaryWDigestBlob.unknown2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_old_keys,
+         { "Old Keys", "drsblobs.package_PrimaryKerberosCtr4.old_keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_unknown1,
+         { "Unknown1", "drsblobs.repsFromTo2.unknown1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataBlob_version,
+         { "Version", "drsblobs.replPropertyMetaDataBlob.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataCtr_ctr1,
+         { "Ctr1", "drsblobs.replPropertyMetaDataCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_other_info_length,
+         { "Other Info Length", "drsblobs.repsFromTo2.other_info_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestBlob_hashes,
+         { "Hashes", "drsblobs.package_PrimaryWDigestBlob.hashes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_reserved1,
+         { "Reserved1", "drsblobs.package_PrimaryKerberosKey4.reserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_DsCompressedChunk_marker,
+         { "Marker", "drsblobs.DsCompressedChunk.marker", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schedule_numberOfSchedules,
+         { "Numberofschedules", "drsblobs.schedule.numberOfSchedules", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_value,
+         { "Value", "drsblobs.package_PrimaryKerberosKey3.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_partialAttributeSetBlob_version,
+         { "Version", "drsblobs.partialAttributeSetBlob.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorAString_string,
+         { "String", "drsblobs.ExtendedErrorAString.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_prefixMapCtr_dsdb,
+         { "Dsdb", "drsblobs.prefixMapCtr.dsdb", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsblobs.repsFromTo2.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataCtr1_reserved,
+         { "Reserved", "drsblobs.replPropertyMetaDataCtr1.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsSubBlob_prefix,
+         { "Prefix", "drsblobs.supplementalCredentialsSubBlob.prefix", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_current_offset,
+         { "Current Offset", "drsblobs.trustAuthInOutBlob.current_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_salt,
+         { "Salt", "drsblobs.package_PrimaryKerberosCtr4.salt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsBlob_sub,
+         { "Sub", "drsblobs.supplementalCredentialsBlob.sub", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParam_type,
+         { "Type", "drsblobs.ExtendedErrorParam.type", FT_UINT1632, BASE_DEC, VALS(drsblobs_ExtendedErrorParamType_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2OtherInfo_unknown1,
+         { "Unknown1", "drsblobs.repsFromTo2OtherInfo.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorBlob_reserved,
+         { "Reserved", "drsblobs.replUpToDateVectorBlob.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_incoming,
+         { "Incoming", "drsblobs.trustDomainPasswords.incoming", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_u1,
+         { "U1", "drsblobs.ldapControlDirSyncBlob.u1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataBlob_reserved,
+         { "Reserved", "drsblobs.replPropertyMetaDataBlob.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schedule_dataArray,
+         { "Dataarray", "drsblobs.schedule.dataArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfoRecord_data,
+         { "Data", "drsblobs.ForestTrustInfoRecord.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustData_name,
+         { "Name", "drsblobs.ForestTrustData.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_value_,
+         { "Subcontext length", "drsblobs.package_PrimaryKerberosKey4.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1OtherInfo___dns_name_size,
+         { "  Dns Name Size", "drsblobs.repsFromTo1OtherInfo.__dns_name_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoNone_size,
+         { "Size", "drsblobs.AuthInfoNone.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfo_clear,
+         { "Clear", "drsblobs.AuthInfo.clear", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorBlob_ctr,
+         { "Ctr", "drsblobs.replUpToDateVectorBlob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr2_count,
+         { "Count", "drsblobs.replUpToDateVectorCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2OtherInfo_dns_name1,
+         { "Dns Name1", "drsblobs.repsFromTo2OtherInfo.dns_name1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParam_p,
+         { "P", "drsblobs.ExtendedErrorParam.p", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_num_old_keys,
+         { "Num Old Keys", "drsblobs.package_PrimaryKerberosCtr3.num_old_keys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_replica_flags,
+         { "Replica Flags", "drsblobs.repsFromTo2.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsBlob_sub_,
+         { "Subcontext length", "drsblobs.supplementalCredentialsBlob.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthenticationInformation_LastUpdateTime,
+         { "Lastupdatetime", "drsblobs.AuthenticationInformation.LastUpdateTime", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_padding3,
+         { "Padding3", "drsblobs.package_PrimaryKerberosCtr3.padding3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorUString___size,
+         { "  Size", "drsblobs.ExtendedErrorUString.__size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr_ctr3,
+         { "Ctr3", "drsblobs.package_PrimaryKerberosCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoNT4Owf_password,
+         { "Password", "drsblobs.AuthInfoNT4Owf.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaData1_originating_change_time,
+         { "Originating Change Time", "drsblobs.replPropertyMetaData1.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_highwatermark,
+         { "Highwatermark", "drsblobs.ldapControlDirSyncBlob.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_service_keys,
+         { "Service Keys", "drsblobs.package_PrimaryKerberosCtr4.service_keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthenticationInformation_AuthInfo,
+         { "Authinfo", "drsblobs.AuthenticationInformation.AuthInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataDomainInfo_sid,
+         { "Sid", "drsblobs.ForestTrustDataDomainInfo.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_prefixMap_blob,
+         { "Blob", "drsblobs.decode_prefixMap.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_repsFromTo_blob,
+         { "Blob", "drsblobs.decode_repsFromTo.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_outgoing,
+         { "Outgoing", "drsblobs.trustDomainPasswords.outgoing", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1OtherInfo_dns_name,
+         { "Dns Name", "drsblobs.repsFromTo1OtherInfo.dns_name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_reserved,
+         { "Reserved", "drsblobs.repsFromTo2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_blobsize,
+         { "Blobsize", "drsblobs.repsFromTo1.blobsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfo_nt4owf,
+         { "Nt4owf", "drsblobs.AuthInfo.nt4owf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosString_string,
+         { "String", "drsblobs.package_PrimaryKerberosString.string", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParamU_a_string,
+         { "A String", "drsblobs.ExtendedErrorParamU.a_string", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustData_data,
+         { "Data", "drsblobs.ForestTrustData.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_incoming_size,
+         { "Incoming Size", "drsblobs.trustDomainPasswords.incoming_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_transport_guid,
+         { "Transport Guid", "drsblobs.repsFromTo1.transport_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataDomainInfo_sid_,
+         { "Subcontext length", "drsblobs.ForestTrustDataDomainInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_transport_guid,
+         { "Transport Guid", "drsblobs.repsFromTo2.transport_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_drsuapi_MSPrefixMap_Entry_length,
+         { "Length", "drsblobs.drsuapi_MSPrefixMap_Entry.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_partialAttributeSetBlob_reserved,
+         { "Reserved", "drsblobs.partialAttributeSetBlob.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schedule_size,
+         { "Size", "drsblobs.schedule.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_source_dsa_obj_guid,
+         { "Source Dsa Obj Guid", "drsblobs.repsFromTo1.source_dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsSubBlob_num_packages,
+         { "Num Packages", "drsblobs.supplementalCredentialsSubBlob.num_packages", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_num_keys,
+         { "Num Keys", "drsblobs.package_PrimaryKerberosCtr4.num_keys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_iteration_count,
+         { "Iteration Count", "drsblobs.package_PrimaryKerberosKey4.iteration_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo_ctr2,
+         { "Ctr2", "drsblobs.repsFromTo.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsPackage_data_len,
+         { "Data Len", "drsblobs.supplementalCredentialsPackage.data_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromToBlob_reserved,
+         { "Reserved", "drsblobs.repsFromToBlob.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_schedule,
+         { "Schedule", "drsblobs.repsFromTo2.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfo_version,
+         { "Version", "drsblobs.AuthInfo.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustAuthInOutBlob_previous,
+         { "Previous", "drsblobs.trustAuthInOutBlob.previous", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfoRecord_timestamp,
+         { "Timestamp", "drsblobs.ForestTrustInfoRecord.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_ldapControlDirSync_cookie,
+         { "Cookie", "drsblobs.decode_ldapControlDirSync.cookie", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_prefixMapBlob_ctr,
+         { "Ctr", "drsblobs.prefixMapBlob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_keytype,
+         { "Keytype", "drsblobs.package_PrimaryKerberosKey3.keytype", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_outgoing_,
+         { "Subcontext length", "drsblobs.trustDomainPasswords.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PackagesBlob_names,
+         { "Names", "drsblobs.package_PackagesBlob.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_generating_component,
+         { "Generating Component", "drsblobs.ExtendedErrorInfo.generating_component", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParamU_uint64,
+         { "Uint64", "drsblobs.ExtendedErrorParamU.uint64", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_drsuapi_MSPrefixMap_Ctr___ndr_size,
+         { "  Ndr Size", "drsblobs.drsuapi_MSPrefixMap_Ctr.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfo_version,
+         { "Version", "drsblobs.ForestTrustInfo.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_value_,
+         { "Subcontext length", "drsblobs.package_PrimaryKerberosKey3.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsPackage_data,
+         { "Data", "drsblobs.supplementalCredentialsPackage.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoVersion_size,
+         { "Size", "drsblobs.AuthInfoVersion.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustInfo_count,
+         { "Count", "drsblobs.ForestTrustInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_drsuapi_MSPrefixMap_Entry_entryID,
+         { "Entryid", "drsblobs.drsuapi_MSPrefixMap_Entry.entryID", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_keytype,
+         { "Keytype", "drsblobs.package_PrimaryKerberosKey4.keytype", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_value,
+         { "Value", "drsblobs.package_PrimaryKerberosKey4.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestBlob_unknown1,
+         { "Unknown1", "drsblobs.package_PrimaryWDigestBlob.unknown1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthInfoVersion_version,
+         { "Version", "drsblobs.AuthInfoVersion.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsBlob_unknown2,
+         { "Unknown2", "drsblobs.supplementalCredentialsBlob.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaData1_attid,
+         { "Attid", "drsblobs.replPropertyMetaData1.attid", FT_UINT32, BASE_DEC, VALS(drsblobs_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParamU_uint16,
+         { "Uint16", "drsblobs.ExtendedErrorParamU.uint16", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustString_size,
+         { "Size", "drsblobs.ForestTrustString.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_last_success,
+         { "Last Success", "drsblobs.repsFromTo1.last_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_drsuapi_MSPrefixMap_Ctr_entries,
+         { "Entries", "drsblobs.drsuapi_MSPrefixMap_Ctr.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_flags,
+         { "Flags", "drsblobs.ExtendedErrorInfo.flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_padding2,
+         { "Padding2", "drsblobs.package_PrimaryKerberosCtr3.padding2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo_ctr1,
+         { "Ctr1", "drsblobs.repsFromTo.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_confounder,
+         { "Confounder", "drsblobs.trustDomainPasswords.confounder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestBlob_uuknown4,
+         { "Uuknown4", "drsblobs.package_PrimaryWDigestBlob.uuknown4", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_consecutive_sync_failures,
+         { "Consecutive Sync Failures", "drsblobs.repsFromTo1.consecutive_sync_failures", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorComputerNameU_name,
+         { "Name", "drsblobs.ExtendedErrorComputerNameU.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_prefixMapBlob_reserved,
+         { "Reserved", "drsblobs.prefixMapBlob.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_pid,
+         { "Pid", "drsblobs.ExtendedErrorInfo.pid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_scheduleSlots_slots,
+         { "Slots", "drsblobs.scheduleSlots.slots", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncCookie_blob_,
+         { "Subcontext length", "drsblobs.ldapControlDirSyncCookie.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthenticationInformation_AuthType,
+         { "Authtype", "drsblobs.AuthenticationInformation.AuthType", FT_UINT32, BASE_DEC, VALS(drsblobs_lsa_TrustAuthType_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthenticationInformation__pad,
+         { " Pad", "drsblobs.AuthenticationInformation._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schedule_bandwidth,
+         { "Bandwidth", "drsblobs.schedule.bandwidth", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_computer_name,
+         { "Computer Name", "drsblobs.ExtendedErrorInfo.computer_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_schedule,
+         { "Schedule", "drsblobs.repsFromTo1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_scheduleHeader_type,
+         { "Type", "drsblobs.scheduleHeader.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryCLEARTEXTBlob_cleartext,
+         { "Cleartext", "drsblobs.package_PrimaryCLEARTEXTBlob.cleartext", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schemaInfoBlob_marker,
+         { "Marker", "drsblobs.schemaInfoBlob.marker", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_other_info,
+         { "Other Info", "drsblobs.repsFromTo1.other_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_replUpToDateVector_blob,
+         { "Blob", "drsblobs.decode_replUpToDateVector.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_reserved,
+         { "Reserved", "drsblobs.repsFromTo1.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaData1_version,
+         { "Version", "drsblobs.replPropertyMetaData1.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schemaInfoBlob_revision,
+         { "Revision", "drsblobs.schemaInfoBlob.revision", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_last_attempt,
+         { "Last Attempt", "drsblobs.repsFromTo2.last_attempt", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaData1_originating_usn,
+         { "Originating Usn", "drsblobs.replPropertyMetaData1.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_reserved1,
+         { "Reserved1", "drsblobs.package_PrimaryKerberosKey3.reserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr_ctr4,
+         { "Ctr4", "drsblobs.package_PrimaryKerberosCtr.ctr4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorUString_string,
+         { "String", "drsblobs.ExtendedErrorUString.string", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsblobs.repsFromTo1.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_opnum,
+         { "Operation", "drsblobs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr1_cursors,
+         { "Cursors", "drsblobs.replUpToDateVectorCtr1.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataCtr1_array,
+         { "Array", "drsblobs.replPropertyMetaDataCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosString_string_,
+         { "Subcontext length", "drsblobs.package_PrimaryKerberosString.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_value_len,
+         { "Value Len", "drsblobs.package_PrimaryKerberosKey4.value_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_older_keys,
+         { "Older Keys", "drsblobs.package_PrimaryKerberosCtr4.older_keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorBlob_length,
+         { "Length", "drsblobs.ExtendedErrorBlob.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsBlob___ndr_size,
+         { "  Ndr Size", "drsblobs.supplementalCredentialsBlob.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_time,
+         { "Time", "drsblobs.ExtendedErrorInfo.time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorBlob_version,
+         { "Version", "drsblobs.replUpToDateVectorBlob.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2_other_info,
+         { "Other Info", "drsblobs.repsFromTo2.other_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataBinaryData_size,
+         { "Size", "drsblobs.ForestTrustDataBinaryData.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustString_string,
+         { "String", "drsblobs.ForestTrustString.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_time,
+         { "Time", "drsblobs.ldapControlDirSyncBlob.time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_PrimaryWDigest_blob,
+         { "Blob", "drsblobs.decode_PrimaryWDigest.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_partialAttributeSetCtr1_count,
+         { "Count", "drsblobs.partialAttributeSetCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataCtr1_count,
+         { "Count", "drsblobs.replPropertyMetaDataCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryWDigestHash_hash,
+         { "Hash", "drsblobs.package_PrimaryWDigestHash.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_guid1,
+         { "Guid1", "drsblobs.ldapControlDirSyncBlob.guid1", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr_ctr1,
+         { "Ctr1", "drsblobs.replUpToDateVectorCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_outgoing_size,
+         { "Outgoing Size", "drsblobs.trustDomainPasswords.outgoing_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey4_reserved2,
+         { "Reserved2", "drsblobs.package_PrimaryKerberosKey4.reserved2", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParamU_blob,
+         { "Blob", "drsblobs.ExtendedErrorParamU.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_replPropertyMetaData_blob,
+         { "Blob", "drsblobs.decode_replPropertyMetaData.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsBlob_unknown3,
+         { "Unknown3", "drsblobs.supplementalCredentialsBlob.unknown3", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_extra_length,
+         { "Extra Length", "drsblobs.ldapControlDirSyncBlob.extra_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsSubBlob_signature,
+         { "Signature", "drsblobs.supplementalCredentialsSubBlob.signature", FT_UINT1632, BASE_DEC, VALS(drsblobs_supplementalCredentialsSignature_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo2OtherInfo_dns_name2,
+         { "Dns Name2", "drsblobs.repsFromTo2OtherInfo.dns_name2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_supplementalCredentialsPackage_name,
+         { "Name", "drsblobs.supplementalCredentialsPackage.name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromToBlob_ctr,
+         { "Ctr", "drsblobs.repsFromToBlob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_schedule_headerArray,
+         { "Headerarray", "drsblobs.schedule.headerArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replPropertyMetaDataBlob_ctr,
+         { "Ctr", "drsblobs.replPropertyMetaDataBlob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_drsuapi_MSPrefixMap_Entry_binary_oid,
+         { "Binary Oid", "drsblobs.drsuapi_MSPrefixMap_Entry.binary_oid", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_detection_location,
+         { "Detection Location", "drsblobs.ExtendedErrorInfo.detection_location", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfoPtr_info,
+         { "Info", "drsblobs.ExtendedErrorInfoPtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosKey3_reserved2,
+         { "Reserved2", "drsblobs.package_PrimaryKerberosKey3.reserved2", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncExtra_uptodateness_vector,
+         { "Uptodateness Vector", "drsblobs.ldapControlDirSyncExtra.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorInfo_next,
+         { "Next", "drsblobs.ExtendedErrorInfo.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustDataDomainInfo_dns_name,
+         { "Dns Name", "drsblobs.ForestTrustDataDomainInfo.dns_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorComputerName_present,
+         { "Present", "drsblobs.ExtendedErrorComputerName.present", FT_UINT1632, BASE_DEC, VALS(drsblobs_ExtendedErrorComputerNamePresent_vals), 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_keys,
+         { "Keys", "drsblobs.package_PrimaryKerberosCtr3.keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_num_older_keys,
+         { "Num Older Keys", "drsblobs.package_PrimaryKerberosCtr4.num_older_keys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_trustDomainPasswords_incoming_,
+         { "Subcontext length", "drsblobs.trustDomainPasswords.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ExtendedErrorParamU_uint32,
+         { "Uint32", "drsblobs.ExtendedErrorParamU.uint32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_replUpToDateVectorCtr1_count,
+         { "Count", "drsblobs.replUpToDateVectorCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_drsuapi_MSPrefixMap_Ctr_num_entries,
+         { "Num Entries", "drsblobs.drsuapi_MSPrefixMap_Ctr.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_padding5,
+         { "Padding5", "drsblobs.package_PrimaryKerberosCtr3.padding5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_ExtendedErrorInfo_ptr,
+         { "Ptr", "drsblobs.decode_ExtendedErrorInfo.ptr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr3_old_keys,
+         { "Old Keys", "drsblobs.package_PrimaryKerberosCtr3.old_keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ForestTrustData_info,
+         { "Info", "drsblobs.ForestTrustData.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_ldapControlDirSyncBlob_u2,
+         { "U2", "drsblobs.ldapControlDirSyncBlob.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_ExtendedErrorInfo_ptr_,
+         { "Subcontext length", "drsblobs.decode_ExtendedErrorInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_repsFromTo1_result_last_attempt,
+         { "Result Last Attempt", "drsblobs.repsFromTo1.result_last_attempt", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsblobs_package_PrimaryKerberosCtr4_num_service_keys,
+         { "Num Service Keys", "drsblobs.package_PrimaryKerberosCtr4.num_service_keys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_decode_ForestTrustInfo_blob,
+         { "Blob", "drsblobs.decode_ForestTrustInfo.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsblobs_AuthenticationInformationArray_count,
+         { "Count", "drsblobs.AuthenticationInformationArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_drsblobs,
+               &ett_drsblobs_drsuapi_DrsOptions,
+               &ett_drsblobs_replPropertyMetaData1,
+               &ett_drsblobs_replPropertyMetaDataCtr1,
+               &ett_drsblobs_replPropertyMetaDataCtr,
+               &ett_drsblobs_replPropertyMetaDataBlob,
+               &ett_drsblobs_replUpToDateVectorCtr1,
+               &ett_drsblobs_replUpToDateVectorCtr2,
+               &ett_drsblobs_replUpToDateVectorCtr,
+               &ett_drsblobs_replUpToDateVectorBlob,
+               &ett_drsblobs_repsFromTo1OtherInfo,
+               &ett_drsblobs_repsFromTo1,
+               &ett_drsblobs_repsFromTo2OtherInfo,
+               &ett_drsblobs_repsFromTo2,
+               &ett_drsblobs_repsFromTo,
+               &ett_drsblobs_repsFromToBlob,
+               &ett_drsblobs_scheduleHeader,
+               &ett_drsblobs_scheduleSlots,
+               &ett_drsblobs_schedule,
+               &ett_drsblobs_partialAttributeSetCtr1,
+               &ett_drsblobs_partialAttributeSetCtr,
+               &ett_drsblobs_partialAttributeSetBlob,
+               &ett_drsblobs_schemaInfoBlob,
+               &ett_drsblobs_drsuapi_MSPrefixMap_Entry,
+               &ett_drsblobs_drsuapi_MSPrefixMap_Ctr,
+               &ett_drsblobs_prefixMapCtr,
+               &ett_drsblobs_prefixMapBlob,
+               &ett_drsblobs_ldapControlDirSyncExtra,
+               &ett_drsblobs_ldapControlDirSyncBlob,
+               &ett_drsblobs_ldapControlDirSyncCookie,
+               &ett_drsblobs_supplementalCredentialsPackage,
+               &ett_drsblobs_supplementalCredentialsSubBlob,
+               &ett_drsblobs_supplementalCredentialsBlob,
+               &ett_drsblobs_package_PackagesBlob,
+               &ett_drsblobs_package_PrimaryKerberosString,
+               &ett_drsblobs_package_PrimaryKerberosKey3,
+               &ett_drsblobs_package_PrimaryKerberosCtr3,
+               &ett_drsblobs_package_PrimaryKerberosKey4,
+               &ett_drsblobs_package_PrimaryKerberosCtr4,
+               &ett_drsblobs_package_PrimaryKerberosCtr,
+               &ett_drsblobs_package_PrimaryKerberosBlob,
+               &ett_drsblobs_package_PrimaryCLEARTEXTBlob,
+               &ett_drsblobs_package_PrimaryWDigestHash,
+               &ett_drsblobs_package_PrimaryWDigestBlob,
+               &ett_drsblobs_AuthInfoNone,
+               &ett_drsblobs_AuthInfoNT4Owf,
+               &ett_drsblobs_AuthInfoClear,
+               &ett_drsblobs_AuthInfoVersion,
+               &ett_drsblobs_AuthInfo,
+               &ett_drsblobs_AuthenticationInformation,
+               &ett_drsblobs_AuthenticationInformationArray,
+               &ett_drsblobs_trustAuthInOutBlob,
+               &ett_drsblobs_trustDomainPasswords,
+               &ett_drsblobs_DsCompressedChunk,
+               &ett_drsblobs_ExtendedErrorAString,
+               &ett_drsblobs_ExtendedErrorUString,
+               &ett_drsblobs_ExtendedErrorBlob,
+               &ett_drsblobs_ExtendedErrorComputerNameU,
+               &ett_drsblobs_ExtendedErrorComputerName,
+               &ett_drsblobs_ExtendedErrorParamU,
+               &ett_drsblobs_ExtendedErrorParam,
+               &ett_drsblobs_ExtendedErrorInfo,
+               &ett_drsblobs_ExtendedErrorInfoPtr,
+               &ett_drsblobs_ForestTrustString,
+               &ett_drsblobs_ForestTrustDataDomainInfo,
+               &ett_drsblobs_ForestTrustDataBinaryData,
+               &ett_drsblobs_ForestTrustData,
+               &ett_drsblobs_ForestTrustInfoRecord,
+               &ett_drsblobs_ForestTrustInfoRecordArmor,
+               &ett_drsblobs_ForestTrustInfo,
+       };
+
+       proto_dcerpc_drsblobs = proto_register_protocol("Active Directory Replication LDAP Blobs", "DRSBLOBS", "drsblobs");
+       proto_register_field_array(proto_dcerpc_drsblobs, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_drsblobs(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_drsblobs, ett_dcerpc_drsblobs,
+               &uuid_dcerpc_drsblobs, ver_dcerpc_drsblobs,
+               drsblobs_dissectors, hf_drsblobs_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.h b/bin/default/librpc/gen_ndr/packet-dcerpc-drsblobs.h
new file mode 100644 (file)
index 0000000..0cf66a8
--- /dev/null
@@ -0,0 +1,113 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsblobs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsblobs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-drsuapi.h"
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-samr.h"
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_DRSBLOBS_H
+#define __PACKET_DCERPC_DRSBLOBS_H
+
+#define SUPPLEMENTAL_CREDENTIALS_PREFIX        ( "                                                " )
+
+int drsblobs_dissect_bitmap_drsuapi_DrsOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+extern const value_string drsblobs_drsuapi_DsAttributeId_vals[];
+int drsblobs_dissect_enum_drsuapi_DsAttributeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+extern const value_string drsblobs_lsa_TrustAuthType_vals[];
+int drsblobs_dissect_enum_lsa_TrustAuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsblobs_dissect_struct_replPropertyMetaData1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_replPropertyMetaDataCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_replPropertyMetaDataBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_replUpToDateVectorCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_replUpToDateVectorCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_replUpToDateVectorBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_repsFromTo1OtherInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_repsFromTo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_repsFromTo2OtherInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_repsFromTo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_repsFromToBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_scheduleHeader(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_scheduleSlots(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_partialAttributeSetCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_partialAttributeSetBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_schemaInfoBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_drsuapi_MSPrefixMap_Entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_drsuapi_MSPrefixMap_Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define PREFIX_MAP_VERSION_DSDB (0x44534442)
+extern const value_string drsblobs_prefixMapVersion_vals[];
+int drsblobs_dissect_enum_prefixMapVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsblobs_dissect_struct_prefixMapBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ldapControlDirSyncBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ldapControlDirSyncCookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_supplementalCredentialsPackage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SUPPLEMENTAL_CREDENTIALS_SIGNATURE (0x0050)
+extern const value_string drsblobs_supplementalCredentialsSignature_vals[];
+int drsblobs_dissect_enum_supplementalCredentialsSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsblobs_dissect_struct_supplementalCredentialsSubBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_supplementalCredentialsBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PackagesBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryKerberosString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryKerberosKey3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryKerberosCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryKerberosKey4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryKerberosCtr4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryKerberosBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryCLEARTEXTBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryWDigestHash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_package_PrimaryWDigestBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_AuthInfoNone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_AuthInfoNT4Owf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_AuthInfoClear(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_AuthInfoVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_AuthenticationInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_AuthenticationInformationArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_trustAuthInOutBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_trustDomainPasswords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_DsCompressedChunk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ExtendedErrorAString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ExtendedErrorUString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ExtendedErrorBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define EXTENDED_ERROR_COMPUTER_NAME_PRESENT (1)
+#define EXTENDED_ERROR_COMPUTER_NAME_NOT_PRESENT (2)
+extern const value_string drsblobs_ExtendedErrorComputerNamePresent_vals[];
+int drsblobs_dissect_enum_ExtendedErrorComputerNamePresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsblobs_dissect_struct_ExtendedErrorComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define EXTENDED_ERROR_PARAM_TYPE_ASCII_STRING (1)
+#define EXTENDED_ERROR_PARAM_TYPE_UNICODE_STRING (2)
+#define EXTENDED_ERROR_PARAM_TYPE_UINT32 (3)
+#define EXTENDED_ERROR_PARAM_TYPE_UINT16 (4)
+#define EXTENDED_ERROR_PARAM_TYPE_UINT64 (5)
+#define EXTENDED_ERROR_PARAM_TYPE_NONE (6)
+#define EXTENDED_ERROR_PARAM_TYPE_BLOB (7)
+extern const value_string drsblobs_ExtendedErrorParamType_vals[];
+int drsblobs_dissect_enum_ExtendedErrorParamType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsblobs_dissect_struct_ExtendedErrorParam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ExtendedErrorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ExtendedErrorInfoPtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ForestTrustString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ForestTrustDataDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ForestTrustDataBinaryData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FOREST_TRUST_TOP_LEVEL_NAME (0)
+#define FOREST_TRUST_TOP_LEVEL_NAME_EX (1)
+#define FOREST_TRUST_DOMAIN_INFO (2)
+extern const value_string drsblobs_ForestTrustInfoRecordType_vals[];
+int drsblobs_dissect_enum_ForestTrustInfoRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsblobs_dissect_struct_ForestTrustInfoRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ForestTrustInfoRecordArmor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsblobs_dissect_struct_ForestTrustInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_DRSBLOBS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.c b/bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.c
new file mode 100644 (file)
index 0000000..c40d9c0
--- /dev/null
@@ -0,0 +1,21031 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsuapi.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsuapi.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-drsuapi.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_drsuapi = -1;
+static gint ett_drsuapi_samr_GroupAttrs = -1;
+static gint ett_drsuapi_drsuapi_DrsOptions = -1;
+static gint ett_drsuapi_drsuapi_DrsUpdate = -1;
+static gint ett_drsuapi_drsuapi_SupportedExtensions = -1;
+static gint ett_drsuapi_drsuapi_SupportedExtensionsExt = -1;
+static gint ett_drsuapi_drsuapi_DsBindInfo24 = -1;
+static gint ett_drsuapi_drsuapi_DsBindInfo28 = -1;
+static gint ett_drsuapi_drsuapi_DsBindInfo48 = -1;
+static gint ett_drsuapi_drsuapi_DsBindInfoFallBack = -1;
+static gint ett_drsuapi_drsuapi_DsBindInfo = -1;
+static gint ett_drsuapi_drsuapi_DsBindInfoCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaSyncRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaHighWaterMark = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursorCtrEx = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest5 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaOID = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsPartialAttributeSet = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest8 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest10 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor2 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx = -1;
+static gint ett_drsuapi_drsuapi_DsAttributeValue = -1;
+static gint ett_drsuapi_drsuapi_DsAttributeValueCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAttribute = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAttributeCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectFlags = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObject = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaMetaData = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaMetaDataCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectListItemEx = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1 = -1;
+static gint ett_drsuapi_drsuapi_DsLinkedAttributeFlags = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaLinkedAttribute = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr2 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr7 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNCChangesCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAddRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAddRequest2 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAddRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaDelRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaDelRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaModRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaModRequest = -1;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsCtr = -1;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetMembershipsRequest = -1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags = -1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest = -1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo = -1;
+static gint ett_drsuapi_drsuapi_DsNameString = -1;
+static gint ett_drsuapi_drsuapi_DsNameRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsNameRequest = -1;
+static gint ett_drsuapi_drsuapi_DsNameInfo1 = -1;
+static gint ett_drsuapi_drsuapi_DsNameCtr1 = -1;
+static gint ett_drsuapi_drsuapi_DsNameCtr = -1;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnRequest = -1;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult1 = -1;
+static gint ett_drsuapi_drsuapi_DsWriteAccountSpnResult = -1;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerRequest = -1;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult1 = -1;
+static gint ett_drsuapi_drsuapi_DsRemoveDSServerResult = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoRequest = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfo1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfo2 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr2 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfo3 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr3 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCConnection01 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCConnectionCtr01 = -1;
+static gint ett_drsuapi_drsuapi_DsGetDCInfoCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectListItem = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryRequest2 = -1;
+static gint ett_drsuapi_drsuapi_SecBuffer = -1;
+static gint ett_drsuapi_drsuapi_SecBufferDesc = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryRequest3 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryRequest = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfoX = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1 = -1;
+static gint ett_drsuapi_drsuapi_NameResOp_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsaAddressListItem_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryErrorInfo = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntry_ErrData = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryCtr2 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryCtr3 = -1;
+static gint ett_drsuapi_drsuapi_DsAddEntryCtr = -1;
+static gint ett_drsuapi_drsuapi_DsExecuteKCCFlags = -1;
+static gint ett_drsuapi_drsuapi_DsExecuteKCC1 = -1;
+static gint ett_drsuapi_drsuapi_DsExecuteKCCRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaGetInfoRequest = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaNeighbour = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaNeighbourCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursorCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailure = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaOp = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaOpCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor2Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor3 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaCursor3Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaConnection04 = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaConnection04Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsReplica06 = -1;
+static gint ett_drsuapi_drsuapi_DsReplica06Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsReplicaInfo = -1;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Ctr = -1;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Request1 = -1;
+static gint ett_drsuapi_drsuapi_DsGetMemberships2Request = -1;
+static gint ett_drsuapi_drsuapi_DsSiteCostInfo = -1;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr1 = -1;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostCtr = -1;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest1 = -1;
+static gint ett_drsuapi_drsuapi_QuerySitesByCostRequest = -1;
+
+
+/* Header field declarations */
+static gint hf_drsuapi_drsuapi_DsReplica06_u7 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_serial_num = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_neighbours = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfoCtr___ndr_length = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_problem = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn = -1;
+static gint hf_drsuapi_drsuapi_DsNameCtr1_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts_ = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDel_req = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u4 = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid = -1;
+static gint hf_drsuapi_werror = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_site_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level = -1;
+static gint hf_drsuapi_drsuapi_DsUnbind_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_req = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfoCtr_length = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info24 = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC1_taskID = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_level = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_ctr = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOpCtr_time = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_ = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_req = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_site_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY = -1;
+static gint hf_drsuapi_drsuapi_SecBufferDesc_buffers = -1;
+static gint hf_drsuapi_drsuapi_DsCrackNames_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array = -1;
+static gint hf_drsuapi_drsuapi_DsCrackNames_req = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1 = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06Ctr_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_format_flags = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Request_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u6 = -1;
+static gint hf_drsuapi_drsuapi_DsNameInfo1_status = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures = -1;
+static gint hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved = -1;
+static gint hf_drsuapi_drsuapi_SecBuffer_buf_type = -1;
+static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors2 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMod_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSync_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAdd_req = -1;
+static gint hf_drsuapi_drsuapi_DsCrackNames_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_id = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOID_length = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data = -1;
+static gint hf_drsuapi_drsuapi_DsSiteCostInfo_error_code = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_objects = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_ = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_format_offered = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_level_out = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out = -1;
+static gint hf_drsuapi_opnum = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_repsto = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5 = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures = -1;
+static gint hf_drsuapi_drsuapi_DsCrackNames_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info24_ = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_options = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAdd_level = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_names = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDel_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name = -1;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_attids = -1;
+static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2 = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_pendingops = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_compressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsBind_bind_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1 = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo24_site_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_level_out = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_res = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo24_pid = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_version = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u2 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time = -1;
+static gint hf_drsuapi_drsuapi_DsNameCtr1_count = -1;
+static gint hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_name = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_decompressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u5 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info = -1;
+static gint hf_drsuapi_drsuapi_SecBuffer_buffer = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2 = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info28_ = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_count = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = -1;
+static gint hf_drsuapi_drsuapi_DsBind_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06Ctr_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info48_ = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObject_identifier = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts_ = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6_ = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2 = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfoCtr_info = -1;
+static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_address = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDel_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_str1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u5 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_count = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_start = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSync_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_options = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC1_flags = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_language = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_clientctx = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsNameString_str = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_req = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_priority = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_Fallback = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors3 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2 = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObject_flags = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count = -1;
+static gint hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_udv1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn = -1;
+static gint hf_drsuapi_drsuapi_DsNameCtr_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_version = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2 = -1;
+static gint hf_drsuapi_drsuapi_DsAttributeValue___ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMod_level = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsAttributeValue_blob = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3 = -1;
+static gint hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest_req2 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_level_out = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_level_out = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7 = -1;
+static gint hf_drsuapi_drsuapi_DsaAddressListItem_V1_next = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_objects = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2 = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_operation_type = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info48 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_info28 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_decompressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_cursors = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo_Fallback_ = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_format_desired = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfoFallBack_info = -1;
+static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_values = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_level = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06_u3 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaDelRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_site_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data = -1;
+static gint hf_drsuapi_drsuapi_NameResOp_V1_name_res = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options = -1;
+static gint hf_drsuapi_drsuapi_DsExecuteKCC_level = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_account = -1;
+static gint hf_drsuapi_drsuapi_DsCrackNames_level_out = -1;
+static gint hf_drsuapi_drsuapi_SecBufferDesc_buff_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSync_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplica06Ctr_reserved = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_req = -1;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1 = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfo_info = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err = -1;
+static gint hf_drsuapi_drsuapi_NameResOp_V1_next_rdn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_u3 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_req = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req2 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_level_out = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number = -1;
+static gint hf_drsuapi_drsuapi_SecBufferDesc_version = -1;
+static gint hf_drsuapi_drsuapi_DsPartialAttributeSet_version = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6 = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_options = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectListItem_object = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time = -1;
+static gint hf_drsuapi_drsuapi_DsWriteAccountSpn_res = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest1_options = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_options = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOID_binary_oid = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest1_codepage = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_level_out = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_compressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo28_pid = -1;
+static gint hf_drsuapi_drsuapi_SecBuffer_buf_size = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8 = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn = -1;
+static gint hf_drsuapi_drsuapi_DsNameInfo1_result_name = -1;
+static gint hf_drsuapi_drsuapi_DsBindInfo48_pid = -1;
+static gint hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length = -1;
+static gint hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryRequest_req3 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array = -1;
+static gint hf_drsuapi_drsuapi_DsNameRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1_ = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMod_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1 = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn = -1;
+static gint hf_drsuapi_drsuapi_NameResOp_V1_unused_pad = -1;
+static gint hf_drsuapi_drsuapi_DsGetMemberships_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr3_count = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_id = -1;
+static gint hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6 = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaOp_nc_dn = -1;
+static gint hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time = -1;
+static gint hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1 = -1;
+static gint hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF = -1;
+static gint hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length = -1;
+static gint hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid = -1;
+static gint hf_drsuapi_drsuapi_DsGetNCChanges_level = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaAttribute_attid = -1;
+static gint hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle = -1;
+static gint hf_drsuapi_drsuapi_DsBind_bind_info = -1;
+static gint hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context = -1;
+
+static gint proto_dcerpc_drsuapi = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_drsuapi = {
+       0xe3514235, 0x4b06, 0x11d1,
+       { 0xab, 0x04, 0x00, 0xc0, 0x4f, 0xc2, 0xdc, 0xd2 }
+};
+static guint16 ver_dcerpc_drsuapi = 4;
+
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP_tfs = {
+   "DRSUAPI_DRS_ASYNC_OP is SET",
+   "DRSUAPI_DRS_ASYNC_OP is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK_tfs = {
+   "DRSUAPI_DRS_GETCHG_CHECK is SET",
+   "DRSUAPI_DRS_GETCHG_CHECK is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION_tfs = {
+   "DRSUAPI_DRS_UPDATE_NOTIFICATION is SET",
+   "DRSUAPI_DRS_UPDATE_NOTIFICATION is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF_tfs = {
+   "DRSUAPI_DRS_ADD_REF is SET",
+   "DRSUAPI_DRS_ADD_REF is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL_tfs = {
+   "DRSUAPI_DRS_SYNC_ALL is SET",
+   "DRSUAPI_DRS_SYNC_ALL is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF_tfs = {
+   "DRSUAPI_DRS_DEL_REF is SET",
+   "DRSUAPI_DRS_DEL_REF is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP_tfs = {
+   "DRSUAPI_DRS_WRIT_REP is SET",
+   "DRSUAPI_DRS_WRIT_REP is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_tfs = {
+   "DRSUAPI_DRS_INIT_SYNC is SET",
+   "DRSUAPI_DRS_INIT_SYNC is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC_tfs = {
+   "DRSUAPI_DRS_PER_SYNC is SET",
+   "DRSUAPI_DRS_PER_SYNC is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP_tfs = {
+   "DRSUAPI_DRS_MAIL_REP is SET",
+   "DRSUAPI_DRS_MAIL_REP is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP_tfs = {
+   "DRSUAPI_DRS_ASYNC_REP is SET",
+   "DRSUAPI_DRS_ASYNC_REP is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR_tfs = {
+   "DRSUAPI_DRS_IGNORE_ERROR is SET",
+   "DRSUAPI_DRS_IGNORE_ERROR is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC_tfs = {
+   "DRSUAPI_DRS_TWOWAY_SYNC is SET",
+   "DRSUAPI_DRS_TWOWAY_SYNC is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY_tfs = {
+   "DRSUAPI_DRS_CRITICAL_ONLY is SET",
+   "DRSUAPI_DRS_CRITICAL_ONLY is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC_tfs = {
+   "DRSUAPI_DRS_GET_ANC is SET",
+   "DRSUAPI_DRS_GET_ANC is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE_tfs = {
+   "DRSUAPI_DRS_GET_NC_SIZE is SET",
+   "DRSUAPI_DRS_GET_NC_SIZE is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY_tfs = {
+   "DRSUAPI_DRS_LOCAL_ONLY is SET",
+   "DRSUAPI_DRS_LOCAL_ONLY is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP_tfs = {
+   "DRSUAPI_DRS_NONGC_RO_REP is SET",
+   "DRSUAPI_DRS_NONGC_RO_REP is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME_tfs = {
+   "DRSUAPI_DRS_SYNC_BYNAME is SET",
+   "DRSUAPI_DRS_SYNC_BYNAME is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK_tfs = {
+   "DRSUAPI_DRS_REF_OK is SET",
+   "DRSUAPI_DRS_REF_OK is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW_tfs = {
+   "DRSUAPI_DRS_FULL_SYNC_NOW is SET",
+   "DRSUAPI_DRS_FULL_SYNC_NOW is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE_tfs = {
+   "DRSUAPI_DRS_NO_SOURCE is SET",
+   "DRSUAPI_DRS_NO_SOURCE is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS_tfs = {
+   "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS is SET",
+   "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET_tfs = {
+   "DRSUAPI_DRS_FULL_SYNC_PACKET is SET",
+   "DRSUAPI_DRS_FULL_SYNC_PACKET is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE_tfs = {
+   "DRSUAPI_DRS_SYNC_REQUEUE is SET",
+   "DRSUAPI_DRS_SYNC_REQUEUE is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT_tfs = {
+   "DRSUAPI_DRS_SYNC_URGENT is SET",
+   "DRSUAPI_DRS_SYNC_URGENT is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN_tfs = {
+   "DRSUAPI_DRS_REF_GCSPN is SET",
+   "DRSUAPI_DRS_REF_GCSPN is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD_tfs = {
+   "DRSUAPI_DRS_NO_DISCARD is SET",
+   "DRSUAPI_DRS_NO_DISCARD is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED_tfs = {
+   "DRSUAPI_DRS_NEVER_SYNCED is SET",
+   "DRSUAPI_DRS_NEVER_SYNCED is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING_tfs = {
+   "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING is SET",
+   "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW_tfs = {
+   "DRSUAPI_DRS_INIT_SYNC_NOW is SET",
+   "DRSUAPI_DRS_INIT_SYNC_NOW is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED_tfs = {
+   "DRSUAPI_DRS_PREEMPTED is SET",
+   "DRSUAPI_DRS_PREEMPTED is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED_tfs = {
+   "DRSUAPI_DRS_SYNC_FORCED is SET",
+   "DRSUAPI_DRS_SYNC_FORCED is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC_tfs = {
+   "DRSUAPI_DRS_DISABLE_AUTO_SYNC is SET",
+   "DRSUAPI_DRS_DISABLE_AUTO_SYNC is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC_tfs = {
+   "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC is SET",
+   "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION_tfs = {
+   "DRSUAPI_DRS_USE_COMPRESSION is SET",
+   "DRSUAPI_DRS_USE_COMPRESSION is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY_tfs = {
+   "DRSUAPI_DRS_NEVER_NOTIFY is SET",
+   "DRSUAPI_DRS_NEVER_NOTIFY is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS_tfs = {
+   "DRSUAPI_DRS_SYNC_PAS is SET",
+   "DRSUAPI_DRS_SYNC_PAS is NOT SET",
+};
+static const true_false_string drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP_tfs = {
+   "DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP is SET",
+   "DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP is NOT SET",
+};
+static const true_false_string drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS_tfs = {
+   "DRSUAPI_DRS_UPDATE_FLAGS is SET",
+   "DRSUAPI_DRS_UPDATE_FLAGS is NOT SET",
+};
+static const true_false_string drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS_tfs = {
+   "DRSUAPI_DRS_UPDATE_ADDRESS is SET",
+   "DRSUAPI_DRS_UPDATE_ADDRESS is NOT SET",
+};
+static const true_false_string drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE_tfs = {
+   "DRSUAPI_DRS_UPDATE_SCHEDULE is SET",
+   "DRSUAPI_DRS_UPDATE_SCHEDULE is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_BASE is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_BASE is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_ADAM is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_ADAM is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 is NOT SET",
+};
+static const true_false_string drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN_tfs = {
+   "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN is SET",
+   "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN is NOT SET",
+};
+static int drsuapi_dissect_element_DsBindInfo24_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo24_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo24_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo28_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo28_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo28_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo28_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo48_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo48_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo48_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo48_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo48_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo48_config_dn_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfoFallBack_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_info24_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_info28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_info28_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_info48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_info48_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_Fallback(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfo_Fallback_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfoCtr_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *length);
+static int drsuapi_dissect_element_DsBindInfoCtr___ndr_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBindInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *length);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSyncRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaHighWaterMark_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaHighWaterMark_reserved_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaHighWaterMark_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsExtendedOperation_vals[] = {
+       { DRSUAPI_EXOP_NONE, "DRSUAPI_EXOP_NONE" },
+       { DRSUAPI_EXOP_FSMO_REQ_ROLE, "DRSUAPI_EXOP_FSMO_REQ_ROLE" },
+       { DRSUAPI_EXOP_FSMO_RID_ALLOC, "DRSUAPI_EXOP_FSMO_RID_ALLOC" },
+       { DRSUAPI_EXOP_FSMO_RID_REQ_ROLE, "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE" },
+       { DRSUAPI_EXOP_FSMO_REQ_PDC, "DRSUAPI_EXOP_FSMO_REQ_PDC" },
+       { DRSUAPI_EXOP_FSMO_ABANDON_ROLE, "DRSUAPI_EXOP_FSMO_ABANDON_ROLE" },
+       { DRSUAPI_EXOP_REPL_OBJ, "DRSUAPI_EXOP_REPL_OBJ" },
+       { DRSUAPI_EXOP_REPL_SECRET, "DRSUAPI_EXOP_REPL_SECRET" },
+{ 0, NULL }
+};
+const value_string drsuapi_drsuapi_DsExtendedError_vals[] = {
+       { DRSUAPI_EXOP_ERR_NONE, "DRSUAPI_EXOP_ERR_NONE" },
+       { DRSUAPI_EXOP_ERR_SUCCESS, "DRSUAPI_EXOP_ERR_SUCCESS" },
+       { DRSUAPI_EXOP_ERR_UNKNOWN_OP, "DRSUAPI_EXOP_ERR_UNKNOWN_OP" },
+       { DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER, "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER" },
+       { DRSUAPI_EXOP_ERR_UPDATE_ERR, "DRSUAPI_EXOP_ERR_UPDATE_ERR" },
+       { DRSUAPI_EXOP_ERR_EXCEPTION, "DRSUAPI_EXOP_ERR_EXCEPTION" },
+       { DRSUAPI_EXOP_ERR_UNKNOWN_CALLER, "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER" },
+       { DRSUAPI_EXOP_ERR_RID_ALLOC, "DRSUAPI_EXOP_ERR_RID_ALLOC" },
+       { DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED, "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED" },
+       { DRSUAPI_EXOP_ERR_FMSO_PENDING_OP, "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP" },
+       { DRSUAPI_EXOP_ERR_MISMATCH, "DRSUAPI_EXOP_ERR_MISMATCH" },
+       { DRSUAPI_EXOP_ERR_COULDNT_CONTACT, "DRSUAPI_EXOP_ERR_COULDNT_CONTACT" },
+       { DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES, "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES" },
+       { DRSUAPI_EXOP_ERR_DIR_ERROR, "DRSUAPI_EXOP_ERR_DIR_ERROR" },
+       { DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS, "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS" },
+       { DRSUAPI_EXOP_ERR_ACCESS_DENIED, "DRSUAPI_EXOP_ERR_ACCESS_DENIED" },
+       { DRSUAPI_EXOP_ERR_PARAM_ERROR, "DRSUAPI_EXOP_ERR_PARAM_ERROR" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOID_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOID_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOID_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsObjectClassId_vals[] = {
+       { DRSUAPI_OBJECTCLASS_top, "DRSUAPI_OBJECTCLASS_top" },
+       { DRSUAPI_OBJECTCLASS_classSchema, "DRSUAPI_OBJECTCLASS_classSchema" },
+       { DRSUAPI_OBJECTCLASS_attributeSchema, "DRSUAPI_OBJECTCLASS_attributeSchema" },
+{ 0, NULL }
+};
+const value_string drsuapi_drsuapi_DsAttributeId_vals[] = {
+       { DRSUAPI_ATTID_objectClass, "DRSUAPI_ATTID_objectClass" },
+       { DRSUAPI_ATTID_cn, "DRSUAPI_ATTID_cn" },
+       { DRSUAPI_ATTID_ou, "DRSUAPI_ATTID_ou" },
+       { DRSUAPI_ATTID_description, "DRSUAPI_ATTID_description" },
+       { DRSUAPI_ATTID_member, "DRSUAPI_ATTID_member" },
+       { DRSUAPI_ATTID_instanceType, "DRSUAPI_ATTID_instanceType" },
+       { DRSUAPI_ATTID_whenCreated, "DRSUAPI_ATTID_whenCreated" },
+       { DRSUAPI_ATTID_possSuperiors, "DRSUAPI_ATTID_possSuperiors" },
+       { DRSUAPI_ATTID_displayName, "DRSUAPI_ATTID_displayName" },
+       { DRSUAPI_ATTID_hasMasterNCs, "DRSUAPI_ATTID_hasMasterNCs" },
+       { DRSUAPI_ATTID_nCName, "DRSUAPI_ATTID_nCName" },
+       { DRSUAPI_ATTID_subClassOf, "DRSUAPI_ATTID_subClassOf" },
+       { DRSUAPI_ATTID_governsID, "DRSUAPI_ATTID_governsID" },
+       { DRSUAPI_ATTID_mustContain, "DRSUAPI_ATTID_mustContain" },
+       { DRSUAPI_ATTID_mayContain, "DRSUAPI_ATTID_mayContain" },
+       { DRSUAPI_ATTID_rDNAttId, "DRSUAPI_ATTID_rDNAttId" },
+       { DRSUAPI_ATTID_attributeID, "DRSUAPI_ATTID_attributeID" },
+       { DRSUAPI_ATTID_attributeSyntax, "DRSUAPI_ATTID_attributeSyntax" },
+       { DRSUAPI_ATTID_isSingleValued, "DRSUAPI_ATTID_isSingleValued" },
+       { DRSUAPI_ATTID_rangeLower, "DRSUAPI_ATTID_rangeLower" },
+       { DRSUAPI_ATTID_rangeUpper, "DRSUAPI_ATTID_rangeUpper" },
+       { DRSUAPI_ATTID_dMDLocation, "DRSUAPI_ATTID_dMDLocation" },
+       { DRSUAPI_ATTID_isDeleted, "DRSUAPI_ATTID_isDeleted" },
+       { DRSUAPI_ATTID_objectVersion, "DRSUAPI_ATTID_objectVersion" },
+       { DRSUAPI_ATTID_invocationId, "DRSUAPI_ATTID_invocationId" },
+       { DRSUAPI_ATTID_showInAdvancedViewOnly, "DRSUAPI_ATTID_showInAdvancedViewOnly" },
+       { DRSUAPI_ATTID_adminDisplayName, "DRSUAPI_ATTID_adminDisplayName" },
+       { DRSUAPI_ATTID_adminDescription, "DRSUAPI_ATTID_adminDescription" },
+       { DRSUAPI_ATTID_oMSyntax, "DRSUAPI_ATTID_oMSyntax" },
+       { DRSUAPI_ATTID_ntSecurityDescriptor, "DRSUAPI_ATTID_ntSecurityDescriptor" },
+       { DRSUAPI_ATTID_searchFlags, "DRSUAPI_ATTID_searchFlags" },
+       { DRSUAPI_ATTID_auxiliaryClass, "DRSUAPI_ATTID_auxiliaryClass" },
+       { DRSUAPI_ATTID_lDAPDisplayName, "DRSUAPI_ATTID_lDAPDisplayName" },
+       { DRSUAPI_ATTID_name, "DRSUAPI_ATTID_name" },
+       { DRSUAPI_ATTID_userAccountControl, "DRSUAPI_ATTID_userAccountControl" },
+       { DRSUAPI_ATTID_badPwdCount, "DRSUAPI_ATTID_badPwdCount" },
+       { DRSUAPI_ATTID_codePage, "DRSUAPI_ATTID_codePage" },
+       { DRSUAPI_ATTID_countryCode, "DRSUAPI_ATTID_countryCode" },
+       { DRSUAPI_ATTID_currentValue, "DRSUAPI_ATTID_currentValue" },
+       { DRSUAPI_ATTID_homeDirectory, "DRSUAPI_ATTID_homeDirectory" },
+       { DRSUAPI_ATTID_homeDrive, "DRSUAPI_ATTID_homeDrive" },
+       { DRSUAPI_ATTID_lastLogoff, "DRSUAPI_ATTID_lastLogoff" },
+       { DRSUAPI_ATTID_lastLogon, "DRSUAPI_ATTID_lastLogon" },
+       { DRSUAPI_ATTID_dBCSPwd, "DRSUAPI_ATTID_dBCSPwd" },
+       { DRSUAPI_ATTID_scriptPath, "DRSUAPI_ATTID_scriptPath" },
+       { DRSUAPI_ATTID_logonHours, "DRSUAPI_ATTID_logonHours" },
+       { DRSUAPI_ATTID_userWorkstations, "DRSUAPI_ATTID_userWorkstations" },
+       { DRSUAPI_ATTID_unicodePwd, "DRSUAPI_ATTID_unicodePwd" },
+       { DRSUAPI_ATTID_ntPwdHistory, "DRSUAPI_ATTID_ntPwdHistory" },
+       { DRSUAPI_ATTID_pwdLastSet, "DRSUAPI_ATTID_pwdLastSet" },
+       { DRSUAPI_ATTID_primaryGroupID, "DRSUAPI_ATTID_primaryGroupID" },
+       { DRSUAPI_ATTID_priorValue, "DRSUAPI_ATTID_priorValue" },
+       { DRSUAPI_ATTID_supplementalCredentials, "DRSUAPI_ATTID_supplementalCredentials" },
+       { DRSUAPI_ATTID_trustAuthIncoming, "DRSUAPI_ATTID_trustAuthIncoming" },
+       { DRSUAPI_ATTID_trustAuthOutgoing, "DRSUAPI_ATTID_trustAuthOutgoing" },
+       { DRSUAPI_ATTID_userParameters, "DRSUAPI_ATTID_userParameters" },
+       { DRSUAPI_ATTID_profilePath, "DRSUAPI_ATTID_profilePath" },
+       { DRSUAPI_ATTID_objectSid, "DRSUAPI_ATTID_objectSid" },
+       { DRSUAPI_ATTID_schemaIDGUID, "DRSUAPI_ATTID_schemaIDGUID" },
+       { DRSUAPI_ATTID_comment, "DRSUAPI_ATTID_comment" },
+       { DRSUAPI_ATTID_accountExpires, "DRSUAPI_ATTID_accountExpires" },
+       { DRSUAPI_ATTID_lmPwdHistory, "DRSUAPI_ATTID_lmPwdHistory" },
+       { DRSUAPI_ATTID_logonCount, "DRSUAPI_ATTID_logonCount" },
+       { DRSUAPI_ATTID_systemPossSuperiors, "DRSUAPI_ATTID_systemPossSuperiors" },
+       { DRSUAPI_ATTID_systemMayContain, "DRSUAPI_ATTID_systemMayContain" },
+       { DRSUAPI_ATTID_systemMustContain, "DRSUAPI_ATTID_systemMustContain" },
+       { DRSUAPI_ATTID_systemAuxiliaryClass, "DRSUAPI_ATTID_systemAuxiliaryClass" },
+       { DRSUAPI_ATTID_sAMAccountName, "DRSUAPI_ATTID_sAMAccountName" },
+       { DRSUAPI_ATTID_sAMAccountType, "DRSUAPI_ATTID_sAMAccountType" },
+       { DRSUAPI_ATTID_options, "DRSUAPI_ATTID_options" },
+       { DRSUAPI_ATTID_fSMORoleOwner, "DRSUAPI_ATTID_fSMORoleOwner" },
+       { DRSUAPI_ATTID_systemFlags, "DRSUAPI_ATTID_systemFlags" },
+       { DRSUAPI_ATTID_serverReference, "DRSUAPI_ATTID_serverReference" },
+       { DRSUAPI_ATTID_serverReferenceBL, "DRSUAPI_ATTID_serverReferenceBL" },
+       { DRSUAPI_ATTID_initialAuthIncoming, "DRSUAPI_ATTID_initialAuthIncoming" },
+       { DRSUAPI_ATTID_initialAuthOutgoing, "DRSUAPI_ATTID_initialAuthOutgoing" },
+       { DRSUAPI_ATTID_wellKnownObjects, "DRSUAPI_ATTID_wellKnownObjects" },
+       { DRSUAPI_ATTID_dNSHostName, "DRSUAPI_ATTID_dNSHostName" },
+       { DRSUAPI_ATTID_isMemberOfPartialAttributeSet, "DRSUAPI_ATTID_isMemberOfPartialAttributeSet" },
+       { DRSUAPI_ATTID_userPrincipalName, "DRSUAPI_ATTID_userPrincipalName" },
+       { DRSUAPI_ATTID_groupType, "DRSUAPI_ATTID_groupType" },
+       { DRSUAPI_ATTID_servicePrincipalName, "DRSUAPI_ATTID_servicePrincipalName" },
+       { DRSUAPI_ATTID_lastKnownParent, "DRSUAPI_ATTID_lastKnownParent" },
+       { DRSUAPI_ATTID_objectCategory, "DRSUAPI_ATTID_objectCategory" },
+       { DRSUAPI_ATTID_gPLink, "DRSUAPI_ATTID_gPLink" },
+       { DRSUAPI_ATTID_transportAddressAttribute, "DRSUAPI_ATTID_transportAddressAttribute" },
+       { DRSUAPI_ATTID_msDS_Behavior_Version, "DRSUAPI_ATTID_msDS_Behavior_Version" },
+       { DRSUAPI_ATTID_msDS_KeyVersionNumber, "DRSUAPI_ATTID_msDS_KeyVersionNumber" },
+       { DRSUAPI_ATTID_msDS_HasDomainNCs, "DRSUAPI_ATTID_msDS_HasDomainNCs" },
+       { DRSUAPI_ATTID_msDS_hasMasterNCs, "DRSUAPI_ATTID_msDS_hasMasterNCs" },
+       { DRSUAPI_ATTID_isRecycled, "DRSUAPI_ATTID_isRecycled" },
+       { DRSUAPI_ATTID_INVALID, "DRSUAPI_ATTID_INVALID" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsPartialAttributeSet_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsPartialAttributeSet_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsPartialAttributeSet_num_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsPartialAttributeSet_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsPartialAttributeSet_attids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest8_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest10_more_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest_req5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest_req8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesRequest_req10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValue___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValue_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValueCtr_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValueCtr_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValueCtr_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAttributeValueCtr_values__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttribute_value_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttributeCtr_num_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttributeCtr_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttributeCtr_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttributeCtr_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER_tfs = {
+   "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER is SET",
+   "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER is NOT SET",
+};
+static const true_false_string drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC_tfs = {
+   "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC is SET",
+   "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC is NOT SET",
+};
+static const true_false_string drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY_tfs = {
+   "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY is SET",
+   "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY is NOT SET",
+};
+static int drsuapi_dissect_element_DsReplicaObject_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObject_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObject_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObject_attribute_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_is_nc_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE_tfs = {
+   "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE is SET",
+   "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE is NOT SET",
+};
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_originating_add_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaLinkedAttribute_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_nc_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_nc_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6_drs_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsGetNCChangesCompressionType_vals[] = {
+       { DRSUAPI_COMPRESSION_TYPE_MSZIP, "DRSUAPI_COMPRESSION_TYPE_MSZIP" },
+       { DRSUAPI_COMPRESSION_TYPE_XPRESS, "DRSUAPI_COMPRESSION_TYPE_XPRESS" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr2_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr7_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int drsuapi_dissect_element_DsGetNCChangesCtr7_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
+static int drsuapi_dissect_element_DsGetNCChangesCtr7_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChangesCtr_ctr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest2_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAddRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDelRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDelRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDelRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDelRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaModRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsMembershipType_vals[] = {
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS" },
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS" },
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS" },
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2" },
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS, "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS" },
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS, "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS" },
+       { DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2, "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_num_memberships(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr1_sids___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest1_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMembershipsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG_tfs = {
+   "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG is SET",
+   "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG is NOT SET",
+};
+static const true_false_string drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS_tfs = {
+   "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS is SET",
+   "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS is NOT SET",
+};
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsNameStatus_vals[] = {
+       { DRSUAPI_DS_NAME_STATUS_OK, "DRSUAPI_DS_NAME_STATUS_OK" },
+       { DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR, "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR" },
+       { DRSUAPI_DS_NAME_STATUS_NOT_FOUND, "DRSUAPI_DS_NAME_STATUS_NOT_FOUND" },
+       { DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE, "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE" },
+       { DRSUAPI_DS_NAME_STATUS_NO_MAPPING, "DRSUAPI_DS_NAME_STATUS_NO_MAPPING" },
+       { DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY, "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY" },
+       { DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING, "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING" },
+       { DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL, "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL" },
+{ 0, NULL }
+};
+const value_string drsuapi_drsuapi_DsNameFlags_vals[] = {
+       { DRSUAPI_DS_NAME_FLAG_NO_FLAGS, "DRSUAPI_DS_NAME_FLAG_NO_FLAGS" },
+       { DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY, "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY" },
+       { DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC, "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC" },
+       { DRSUAPI_DS_NAME_FLAG_GCVERIFY, "DRSUAPI_DS_NAME_FLAG_GCVERIFY" },
+       { DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL, "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL" },
+{ 0, NULL }
+};
+const value_string drsuapi_drsuapi_DsNameFormat_vals[] = {
+       { DRSUAPI_DS_NAME_FORMAT_UNKNOWN, "DRSUAPI_DS_NAME_FORMAT_UNKNOWN" },
+       { DRSUAPI_DS_NAME_FORMAT_FQDN_1779, "DRSUAPI_DS_NAME_FORMAT_FQDN_1779" },
+       { DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT, "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT" },
+       { DRSUAPI_DS_NAME_FORMAT_DISPLAY, "DRSUAPI_DS_NAME_FORMAT_DISPLAY" },
+       { DRSUAPI_DS_NAME_FORMAT_GUID, "DRSUAPI_DS_NAME_FORMAT_GUID" },
+       { DRSUAPI_DS_NAME_FORMAT_CANONICAL, "DRSUAPI_DS_NAME_FORMAT_CANONICAL" },
+       { DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL, "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL" },
+       { DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX, "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX" },
+       { DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL, "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL" },
+       { DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY, "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY" },
+       { DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN, "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN" },
+       { DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID, "DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID" },
+       { DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX, "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS, "DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS" },
+       { DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON, "DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE" },
+       { DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME, "DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME" },
+       { DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME, "DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_NCS, "DRSUAPI_DS_NAME_FORMAT_LIST_NCS" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS, "DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS" },
+       { DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID, "DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID" },
+       { DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN, "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_ROLES, "DRSUAPI_DS_NAME_FORMAT_LIST_ROLES" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER, "DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE, "DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE" },
+       { DRSUAPI_DS_NAME_FORMAT_LIST_SITES, "DRSUAPI_DS_NAME_FORMAT_LIST_SITES" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsNameString_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameString_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_format_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_format_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_format_desired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest1_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameInfo1_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameInfo1_dns_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameInfo1_result_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameInfo1_result_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsNameCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsSpnOperation_vals[] = {
+       { DRSUAPI_DS_SPN_OPERATION_ADD, "DRSUAPI_DS_SPN_OPERATION_ADD" },
+       { DRSUAPI_DS_SPN_OPERATION_REPLACE, "DRSUAPI_DS_SPN_OPERATION_REPLACE" },
+       { DRSUAPI_DS_SPN_OPERATION_DELETE, "DRSUAPI_DS_SPN_OPERATION_DELETE" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnResult1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpnResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerRequest1_commit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerResult1_last_dc_in_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServerResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals[] = {
+       { DRSUAPI_DC_INFO_CTR_1, "DRSUAPI_DC_INFO_CTR_1" },
+       { DRSUAPI_DC_INFO_CTR_2, "DRSUAPI_DC_INFO_CTR_2" },
+       { DRSUAPI_DC_INFO_CTR_3, "DRSUAPI_DC_INFO_CTR_3" },
+       { DRSUAPI_DC_CONNECTION_CTR_01, "DRSUAPI_DC_CONNECTION_CTR_01" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoRequest1_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo1_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo2_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_is_rodc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfo3_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_connection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_client_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnection01_client_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnectionCtr01_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnectionCtr01_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnectionCtr01_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCConnectionCtr01_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDCInfoCtr_ctr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItem_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItem_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectListItem_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsAddEntry_DirErr_vals[] = {
+       { DRSUAPI_DIRERR_OK, "DRSUAPI_DIRERR_OK" },
+       { DRSUAPI_DIRERR_ATTRIBUTE, "DRSUAPI_DIRERR_ATTRIBUTE" },
+       { DRSUAPI_DIRERR_NAME, "DRSUAPI_DIRERR_NAME" },
+       { DRSUAPI_DIRERR_REFERRAL, "DRSUAPI_DIRERR_REFERRAL" },
+       { DRSUAPI_DIRERR_SECURITY, "DRSUAPI_DIRERR_SECURITY" },
+       { DRSUAPI_DIRERR_SERVICE, "DRSUAPI_DIRERR_SERVICE" },
+       { DRSUAPI_DIRERR_UPDATE, "DRSUAPI_DIRERR_UPDATE" },
+       { DRSUAPI_DIRERR_SYSTEM, "DRSUAPI_DIRERR_SYSTEM" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsAddEntryRequest2_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_SecBufferType_vals[] = {
+       { DRSUAPI_SECBUFFER_EMPTY, "DRSUAPI_SECBUFFER_EMPTY" },
+       { DRSUAPI_SECBUFFER_DATA, "DRSUAPI_SECBUFFER_DATA" },
+       { DRSUAPI_SECBUFFER_TOKEN, "DRSUAPI_SECBUFFER_TOKEN" },
+       { DRSUAPI_SECBUFFER_PKG_PARAMS, "DRSUAPI_SECBUFFER_PKG_PARAMS" },
+       { DRSUAPI_SECBUFFER_MISSING, "DRSUAPI_SECBUFFER_MISSING" },
+       { DRSUAPI_SECBUFFER_EXTRA, "DRSUAPI_SECBUFFER_EXTRA" },
+       { DRSUAPI_SECBUFFER_STREAM_TRAILER, "DRSUAPI_SECBUFFER_STREAM_TRAILER" },
+       { DRSUAPI_SECBUFFER_STREAM_HEADER, "DRSUAPI_SECBUFFER_STREAM_HEADER" },
+       { DRSUAPI_SECBUFFER_READONLY, "DRSUAPI_SECBUFFER_READONLY" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_SecBuffer_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBuffer_buf_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBuffer_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBuffer_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBufferDesc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBufferDesc_buff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBufferDesc_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBufferDesc_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_SecBufferDesc_buffers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryRequest3_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryRequest3_client_creds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryRequest3_client_creds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryRequest_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfoX_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfoX_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_is_val_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attr_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_first(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_NameResOp_V1_name_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_NameResOp_V1_unused_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_NameResOp_V1_next_rdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsAddEntry_RefType_vals[] = {
+       { DRSUAPI_CH_REFTYPE_SUPERIOR, "DRSUAPI_CH_REFTYPE_SUPERIOR" },
+       { DRSUAPI_CH_REFTYPE_SUBORDINATE, "DRSUAPI_CH_REFTYPE_SUBORDINATE" },
+       { DRSUAPI_CH_REFTYPE_NSSR, "DRSUAPI_CH_REFTYPE_NSSR" },
+       { DRSUAPI_CH_REFTYPE_CROSS, "DRSUAPI_CH_REFTYPE_CROSS" },
+{ 0, NULL }
+};
+const value_string drsuapi_drsuapi_DsAddEntry_ChoiceType_vals[] = {
+       { DRSUAPI_SE_CHOICE_BASE_ONLY, "DRSUAPI_SE_CHOICE_BASE_ONLY" },
+       { DRSUAPI_SE_CHOICE_IMMED_CHLDRN, "DRSUAPI_SE_CHOICE_IMMED_CHLDRN" },
+       { DRSUAPI_SE_CHOICE_WHOLE_SUBTREE, "DRSUAPI_SE_CHOICE_WHOLE_SUBTREE" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsaAddressListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsaAddressListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsaAddressListItem_V1_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsaAddressListItem_V1_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_op_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_ref_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_is_choice_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_choice(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_refer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_attr_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_name_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_referral_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_security_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_service_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_update_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryErrorInfo_system_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *dir_err);
+static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *dir_err);
+static int drsuapi_dissect_element_DsAddEntry_ErrData_V1_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *dir_err);
+static int drsuapi_dissect_element_DsAddEntry_ErrData_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier2_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjectIdentifier2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr2_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr3_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr3_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr3_err_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *err_ver);
+static int drsuapi_dissect_element_DsAddEntryCtr3_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *err_ver);
+static int drsuapi_dissect_element_DsAddEntryCtr3_err_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *err_ver);
+static int drsuapi_dissect_element_DsAddEntryCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr3_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr3_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr3_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntryCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION_tfs = {
+   "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION is SET",
+   "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION is NOT SET",
+};
+static const true_false_string drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED_tfs = {
+   "DRSUAPI_DS_EXECUTE_KCC_DAMPED is SET",
+   "DRSUAPI_DS_EXECUTE_KCC_DAMPED is NOT SET",
+};
+static int drsuapi_dissect_element_DsExecuteKCC1_taskID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCC1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCCRequest_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsReplicaGetInfoLevel_vals[] = {
+       { DRSUAPI_DS_REPLICA_GET_INFO, "DRSUAPI_DS_REPLICA_GET_INFO" },
+       { DRSUAPI_DS_REPLICA_GET_INFO2, "DRSUAPI_DS_REPLICA_GET_INFO2" },
+{ 0, NULL }
+};
+const value_string drsuapi_drsuapi_DsReplicaInfoType_vals[] = {
+       { DRSUAPI_DS_REPLICA_INFO_NEIGHBORS, "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS" },
+       { DRSUAPI_DS_REPLICA_INFO_CURSORS, "DRSUAPI_DS_REPLICA_INFO_CURSORS" },
+       { DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA, "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA" },
+       { DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES, "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES" },
+       { DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES, "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES" },
+       { DRSUAPI_DS_REPLICA_INFO_PENDING_OPS, "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS" },
+       { DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA, "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA" },
+       { DRSUAPI_DS_REPLICA_INFO_CURSORS2, "DRSUAPI_DS_REPLICA_INFO_CURSORS2" },
+       { DRSUAPI_DS_REPLICA_INFO_CURSORS3, "DRSUAPI_DS_REPLICA_INFO_CURSORS3" },
+       { DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2, "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2" },
+       { DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2, "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2" },
+       { DRSUAPI_DS_REPLICA_INFO_REPSTO, "DRSUAPI_DS_REPLICA_INFO_REPSTO" },
+       { DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS, "DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS" },
+       { DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1, "DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1" },
+       { DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS, "DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest2_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfoRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_naming_context_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbour_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbourCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbourCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbourCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaNeighbourCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursorCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailure_first_failure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailure_num_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailure_last_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string drsuapi_drsuapi_DsReplicaOpType_vals[] = {
+       { DRSUAPI_DS_REPLICA_OP_TYPE_SYNC, "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC" },
+       { DRSUAPI_DS_REPLICA_OP_TYPE_ADD, "DRSUAPI_DS_REPLICA_OP_TYPE_ADD" },
+       { DRSUAPI_DS_REPLICA_OP_TYPE_DELETE, "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE" },
+       { DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY, "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY" },
+       { DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS, "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS" },
+{ 0, NULL }
+};
+static int drsuapi_dissect_element_DsReplicaOp_operation_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_serial_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_operation_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_nc_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_nc_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_nc_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOpCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOpCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOpCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaOpCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaCursor3Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_bind_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaConnection04Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_str1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_str1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06_u7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplica06Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_neighbours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_neighbours_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_objmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_objmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_connectfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_connectfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_linkfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_linkfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_pendingops(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_pendingops_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_cursors2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_cursors2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_cursors3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_cursors3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_objmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_objmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_repsto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_repsto_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_clientctx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_clientctx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_udv1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_udv1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Ctr1_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Ctr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Request1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Request1_req_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2Request_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsSiteCostInfo_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsSiteCostInfo_site_cost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostCtr1_num_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostCtr1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostCtr1_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostCtr1_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostCtr1_flags_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_from_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_site_to___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCostRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBind_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBind_bind_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBind_bind_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBind_bind_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsBind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsUnbind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsUnbind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSync_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSync_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSync_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSync_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaSync_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNCChanges_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaUpdateRefs_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAdd_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAdd_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaAdd_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDel_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDel_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDel_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaDel_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMod_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMod_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMod_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaMod_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetNT4ChangeLog_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsCrackNames_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsWriteAccountSpn_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsRemoveDSServer_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetDomainControllerInfo_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsAddEntry_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCC_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCC_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCC_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCC_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsExecuteKCC_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_info_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsReplicaGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_DsGetMemberships2_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int drsuapi_dissect_element_QuerySitesByCost_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_samr_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_samr_GroupAttrs);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_DRS_ASYNC_OP =  0x00000001 , */
+/* IDL:        DRSUAPI_DRS_GETCHG_CHECK =  0x00000002 , */
+/* IDL:        DRSUAPI_DRS_UPDATE_NOTIFICATION =  0x00000002 , */
+/* IDL:        DRSUAPI_DRS_ADD_REF =  0x00000004 , */
+/* IDL:        DRSUAPI_DRS_SYNC_ALL =  0x00000008 , */
+/* IDL:        DRSUAPI_DRS_DEL_REF =  0x00000008 , */
+/* IDL:        DRSUAPI_DRS_WRIT_REP =  0x00000010 , */
+/* IDL:        DRSUAPI_DRS_INIT_SYNC =  0x00000020 , */
+/* IDL:        DRSUAPI_DRS_PER_SYNC =  0x00000040 , */
+/* IDL:        DRSUAPI_DRS_MAIL_REP =  0x00000080 , */
+/* IDL:        DRSUAPI_DRS_ASYNC_REP =  0x00000100 , */
+/* IDL:        DRSUAPI_DRS_IGNORE_ERROR =  0x00000100 , */
+/* IDL:        DRSUAPI_DRS_TWOWAY_SYNC =  0x00000200 , */
+/* IDL:        DRSUAPI_DRS_CRITICAL_ONLY =  0x00000400 , */
+/* IDL:        DRSUAPI_DRS_GET_ANC =  0x00000800 , */
+/* IDL:        DRSUAPI_DRS_GET_NC_SIZE =  0x00001000 , */
+/* IDL:        DRSUAPI_DRS_LOCAL_ONLY =  0x00001000 , */
+/* IDL:        DRSUAPI_DRS_NONGC_RO_REP =  0x00002000 , */
+/* IDL:        DRSUAPI_DRS_SYNC_BYNAME =  0x00004000 , */
+/* IDL:        DRSUAPI_DRS_REF_OK =  0x00004000 , */
+/* IDL:        DRSUAPI_DRS_FULL_SYNC_NOW =  0x00008000 , */
+/* IDL:        DRSUAPI_DRS_NO_SOURCE =  0x00008000 , */
+/* IDL:        DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS =  0x00010000 , */
+/* IDL:        DRSUAPI_DRS_FULL_SYNC_PACKET =  0x00020000 , */
+/* IDL:        DRSUAPI_DRS_SYNC_REQUEUE =  0x00040000 , */
+/* IDL:        DRSUAPI_DRS_SYNC_URGENT =  0x00080000 , */
+/* IDL:        DRSUAPI_DRS_REF_GCSPN =  0x00100000 , */
+/* IDL:        DRSUAPI_DRS_NO_DISCARD =  0x00100000 , */
+/* IDL:        DRSUAPI_DRS_NEVER_SYNCED =  0x00200000 , */
+/* IDL:        DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING =  0x00400000 , */
+/* IDL:        DRSUAPI_DRS_INIT_SYNC_NOW =  0x00800000 , */
+/* IDL:        DRSUAPI_DRS_PREEMPTED =  0x01000000 , */
+/* IDL:        DRSUAPI_DRS_SYNC_FORCED =  0x02000000 , */
+/* IDL:        DRSUAPI_DRS_DISABLE_AUTO_SYNC =  0x04000000 , */
+/* IDL:        DRSUAPI_DRS_DISABLE_PERIODIC_SYNC =  0x08000000 , */
+/* IDL:        DRSUAPI_DRS_USE_COMPRESSION =  0x10000000 , */
+/* IDL:        DRSUAPI_DRS_NEVER_NOTIFY =  0x20000000 , */
+/* IDL:        DRSUAPI_DRS_SYNC_PAS =  0x40000000 , */
+/* IDL:        DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP =  0x80000000 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_DrsOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_DrsOptions);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_ASYNC_OP");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_GETCHG_CHECK");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_UPDATE_NOTIFICATION");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_ADD_REF");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SYNC_ALL");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_DEL_REF");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_WRIT_REP");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_INIT_SYNC");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_PER_SYNC");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_MAIL_REP");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_ASYNC_REP");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_IGNORE_ERROR");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_TWOWAY_SYNC");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_CRITICAL_ONLY");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_GET_ANC");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_GET_NC_SIZE");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_LOCAL_ONLY");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_NONGC_RO_REP");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SYNC_BYNAME");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_REF_OK");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_FULL_SYNC_NOW");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_NO_SOURCE");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_FULL_SYNC_PACKET");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SYNC_REQUEUE");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SYNC_URGENT");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_REF_GCSPN");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_NO_DISCARD");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_NEVER_SYNCED");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_INIT_SYNC_NOW");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_PREEMPTED");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SYNC_FORCED");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x04000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_DISABLE_AUTO_SYNC");
+               if (flags & (~( 0x04000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_DISABLE_PERIODIC_SYNC");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_USE_COMPRESSION");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_NEVER_NOTIFY");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_SYNC_PAS");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_DRS_UPDATE_FLAGS =  0x00000001 , */
+/* IDL:        DRSUAPI_DRS_UPDATE_ADDRESS =  0x00000002 , */
+/* IDL:        DRSUAPI_DRS_UPDATE_SCHEDULE =  0x00000004 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_DrsUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_DrsUpdate);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_UPDATE_FLAGS");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_UPDATE_ADDRESS");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DRSUAPI_DRS_UPDATE_SCHEDULE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_BASE =  0x00000001 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION =  0x00000002 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI =  0x00000004 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2 =  0x00000008 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS =  0x00000010 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 =  0x00000020 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION =  0x00000040 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY =  0x00000080 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE =  0x00000100 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 =  0x00000200 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION =  0x00000400 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2 =  0x00000800 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD =  0x00001000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND =  0x00002000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO =  0x00004000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION =  0x00008000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01 =  0x00010000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP =  0x00020000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY =  0x00040000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 =  0x00080000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 =  0x00100000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 =  0x00200000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 =  0x00400000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS =  0x00800000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8 =  0x01000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5 =  0x02000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6 =  0x04000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3 =  0x08000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7 =  0x08000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT =  0x08000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS =  0x10000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 =  0x20000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 =  0x40000000 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 =  0x80000000 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_SupportedExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_SupportedExtensions);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_BASE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, tvb, offset-4, 4, flags);
+       if (flags&( 0x04000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6");
+               if (flags & (~( 0x04000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_ADAM =  0x00000001 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 =  0x00000002 , */
+/* IDL:        DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN =  0x00000004 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_SupportedExtensionsExt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_SupportedExtensionsExt);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_ADAM");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_SupportedExtensions supported_extensions; */
+/* IDL:        GUID site_guid; */
+/* IDL:        uint32 pid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsBindInfo24_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo24_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo24_site_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo24_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo24_pid, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsBindInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo24);
+       }
+       
+       offset = drsuapi_dissect_element_DsBindInfo24_supported_extensions(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo24_site_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo24_pid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_SupportedExtensions supported_extensions; */
+/* IDL:        GUID site_guid; */
+/* IDL:        uint32 pid; */
+/* IDL:        uint32 repl_epoch; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsBindInfo28_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo28_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo28_site_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo28_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo28_pid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo28_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsBindInfo28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo28);
+       }
+       
+       offset = drsuapi_dissect_element_DsBindInfo28_supported_extensions(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo28_site_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo28_pid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo28_repl_epoch(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_SupportedExtensions supported_extensions; */
+/* IDL:        GUID site_guid; */
+/* IDL:        uint32 pid; */
+/* IDL:        uint32 repl_epoch; */
+/* IDL:        drsuapi_SupportedExtensionsExt supported_extensions_ext; */
+/* IDL:        GUID config_dn_guid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsBindInfo48_supported_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_SupportedExtensions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo48_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo48_site_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo48_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo48_pid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo48_repl_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo48_supported_extensions_ext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_SupportedExtensionsExt(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo48_config_dn_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsBindInfo48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo48);
+       }
+       
+       offset = drsuapi_dissect_element_DsBindInfo48_supported_extensions(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo48_site_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo48_pid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo48_repl_epoch(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo48_supported_extensions_ext(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfo48_config_dn_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB info; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsBindInfoFallBack_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfoFallBack_info, 1);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsBindInfoFallBack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfoFallBack);
+       }
+       
+       offset = drsuapi_dissect_element_DsBindInfoFallBack_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [noprint(1)] [nodiscriminant(1)] [nopull(1)] [nopush(1)] union { */
+/* IDL: [case(24)] [subcontext_size(24)] [subcontext(0)] [case(24)] drsuapi_DsBindInfo24 info24; */
+/* IDL: [case(28)] [subcontext_size(28)] [subcontext(0)] [case(28)] drsuapi_DsBindInfo28 info28; */
+/* IDL: [case(48)] [subcontext_size(48)] [subcontext(0)] [case(48)] drsuapi_DsBindInfo48 info48; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsBindInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo_info24_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsBindInfo_info24_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_info24_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsBindInfo24(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsBindInfo_info24,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_info28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo_info28_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsBindInfo_info28_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_info28_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsBindInfo28(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsBindInfo_info28,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_info48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo_info48_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsBindInfo_info48_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_info48_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsBindInfo48(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsBindInfo_info48,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_Fallback(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfo_Fallback_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsBindInfo_Fallback_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfo_Fallback_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsBindInfoFallBack(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsBindInfo_Fallback,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsBindInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsBindInfo");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfo);
+       }
+
+       switch(level) {
+               case 24:
+                       offset = drsuapi_dissect_element_DsBindInfo_info24(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 28:
+                       offset = drsuapi_dissect_element_DsBindInfo_info28(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 48:
+                       offset = drsuapi_dissect_element_DsBindInfo_info48(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = drsuapi_dissect_element_DsBindInfo_Fallback(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [range(1,10000)] uint3264 length; */
+/* IDL:        [value(length)] uint32 __ndr_length; */
+/* IDL:        [switch_is(length)] drsuapi_DsBindInfo info; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsBindInfoCtr_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *length)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfoCtr_length, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfoCtr___ndr_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfoCtr___ndr_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBindInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *length)
+{
+       offset = drsuapi_dissect_DsBindInfo(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBindInfoCtr_info, *length);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsBindInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g length;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsBindInfoCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsBindInfoCtr_length(tvb, offset, pinfo, tree, drep, &length);
+
+       offset = drsuapi_dissect_element_DsBindInfoCtr___ndr_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsBindInfoCtr_info(tvb, offset, pinfo, tree, drep, &length);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r,ndr->flags)-4)] uint32 __ndr_size; */
+/* IDL:        [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; */
+/* IDL:        GUID guid; */
+/* IDL:        dom_sid28 sid; */
+/* IDL:        [value(strlen_m(dn))] uint32 __ndr_size_dn; */
+/* IDL:        [charset(UTF16)] [size_is(__ndr_size_dn+1)] uint16 dn[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_dom_sid28(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjectIdentifier_dn_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier___ndr_size_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier_dn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        GUID source_dsa_guid; */
+/* IDL:        [unique(1)] [charset(DOS)] uint8 *source_dsa_dns; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Dns (uint8)",hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaSyncRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaSyncRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaSyncRequest1_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaSyncRequest1_source_dsa_dns(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaSyncRequest1_options(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaSyncRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaSyncRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaSyncRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaSyncRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaSyncRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsReplicaSyncRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        hyper tmp_highest_usn; */
+/* IDL:        hyper reserved_usn; */
+/* IDL:        hyper highest_usn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaHighWaterMark_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaHighWaterMark_reserved_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaHighWaterMark_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaHighWaterMark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaHighWaterMark);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaHighWaterMark_tmp_highest_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaHighWaterMark_reserved_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaHighWaterMark_highest_usn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        hyper highest_usn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursor_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursor_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor_highest_usn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(1)] uint32 version; */
+/* IDL:        [value(0)] uint32 reserved1; */
+/* IDL:        [range(0,0x100000)] uint32 count; */
+/* IDL:        [value(0)] uint32 reserved2; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaCursor cursors[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursorCtrEx);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursorCtrEx_cursors(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_EXOP_NONE=0x00000000, */
+/* IDL:        DRSUAPI_EXOP_FSMO_REQ_ROLE=0x00000001, */
+/* IDL:        DRSUAPI_EXOP_FSMO_RID_ALLOC=0x00000002, */
+/* IDL:        DRSUAPI_EXOP_FSMO_RID_REQ_ROLE=0x00000003, */
+/* IDL:        DRSUAPI_EXOP_FSMO_REQ_PDC=0x00000004, */
+/* IDL:        DRSUAPI_EXOP_FSMO_ABANDON_ROLE=0x00000005, */
+/* IDL:        DRSUAPI_EXOP_REPL_OBJ=0x00000006, */
+/* IDL:        DRSUAPI_EXOP_REPL_SECRET=0x00000007, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsExtendedOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_EXOP_ERR_NONE=0x00000000, */
+/* IDL:        DRSUAPI_EXOP_ERR_SUCCESS=0x00000001, */
+/* IDL:        DRSUAPI_EXOP_ERR_UNKNOWN_OP=0x00000002, */
+/* IDL:        DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER=0x00000003, */
+/* IDL:        DRSUAPI_EXOP_ERR_UPDATE_ERR=0x00000004, */
+/* IDL:        DRSUAPI_EXOP_ERR_EXCEPTION=0x00000005, */
+/* IDL:        DRSUAPI_EXOP_ERR_UNKNOWN_CALLER=0x00000006, */
+/* IDL:        DRSUAPI_EXOP_ERR_RID_ALLOC=0x00000007, */
+/* IDL:        DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED=0x00000008, */
+/* IDL:        DRSUAPI_EXOP_ERR_FMSO_PENDING_OP=0x00000009, */
+/* IDL:        DRSUAPI_EXOP_ERR_MISMATCH=0x0000000A, */
+/* IDL:        DRSUAPI_EXOP_ERR_COULDNT_CONTACT=0x0000000B, */
+/* IDL:        DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES=0x0000000C, */
+/* IDL:        DRSUAPI_EXOP_ERR_DIR_ERROR=0x0000000D, */
+/* IDL:        DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS=0x0000000E, */
+/* IDL:        DRSUAPI_EXOP_ERR_ACCESS_DENIED=0x0000000F, */
+/* IDL:        DRSUAPI_EXOP_ERR_PARAM_ERROR=0x00000010, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsExtendedError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID destination_dsa_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark highwatermark; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint32 max_object_count; */
+/* IDL:        uint32 max_ndr_size; */
+/* IDL:        drsuapi_DsExtendedOperation extended_op; */
+/* IDL:        hyper fsmo_info; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsExtendedOperation(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesRequest5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest5);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_destination_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_uptodateness_vector(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_max_object_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_max_ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_extended_op(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest5_fsmo_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *binary_oid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaOID_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOID_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOID_binary_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOID_binary_oid_, NDR_POINTER_UNIQUE, "Pointer to Binary Oid (uint8)",hf_drsuapi_drsuapi_DsReplicaOID_binary_oid);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOID_binary_oid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOID_binary_oid__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOID_binary_oid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOID_binary_oid, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaOID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOID);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaOID_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOID_binary_oid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 id_prefix; */
+/* IDL:        drsuapi_DsReplicaOID oid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOID(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaOIDMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOIDMapping);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaOIDMapping_id_prefix(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOIDMapping_oid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,0x100000)] uint32 num_mappings; */
+/* IDL:        [unique(1)] [size_is(num_mappings)] drsuapi_DsReplicaOIDMapping *mappings; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings_, NDR_POINTER_UNIQUE, "Pointer to Mappings (drsuapi_DsReplicaOIDMapping)",hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOIDMapping(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_num_mappings(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOIDMapping_Ctr_mappings(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_OBJECTCLASS_top=0x00010000, */
+/* IDL:        DRSUAPI_OBJECTCLASS_classSchema=0x0003000d, */
+/* IDL:        DRSUAPI_OBJECTCLASS_attributeSchema=0x0003000e, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsObjectClassId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_ATTID_objectClass=0x00000000, */
+/* IDL:        DRSUAPI_ATTID_cn=0x00000003, */
+/* IDL:        DRSUAPI_ATTID_ou=0x0000000b, */
+/* IDL:        DRSUAPI_ATTID_description=0x0000000d, */
+/* IDL:        DRSUAPI_ATTID_member=0x0000001f, */
+/* IDL:        DRSUAPI_ATTID_instanceType=0x00020001, */
+/* IDL:        DRSUAPI_ATTID_whenCreated=0x00020002, */
+/* IDL:        DRSUAPI_ATTID_possSuperiors=0x00020008, */
+/* IDL:        DRSUAPI_ATTID_displayName=0x0002000d, */
+/* IDL:        DRSUAPI_ATTID_hasMasterNCs=0x0002000e, */
+/* IDL:        DRSUAPI_ATTID_nCName=0x00020010, */
+/* IDL:        DRSUAPI_ATTID_subClassOf=0x00020015, */
+/* IDL:        DRSUAPI_ATTID_governsID=0x00020016, */
+/* IDL:        DRSUAPI_ATTID_mustContain=0x00020018, */
+/* IDL:        DRSUAPI_ATTID_mayContain=0x00020019, */
+/* IDL:        DRSUAPI_ATTID_rDNAttId=0x0002001A, */
+/* IDL:        DRSUAPI_ATTID_attributeID=0x0002001e, */
+/* IDL:        DRSUAPI_ATTID_attributeSyntax=0x00020020, */
+/* IDL:        DRSUAPI_ATTID_isSingleValued=0x00020021, */
+/* IDL:        DRSUAPI_ATTID_rangeLower=0x00020022, */
+/* IDL:        DRSUAPI_ATTID_rangeUpper=0x00020023, */
+/* IDL:        DRSUAPI_ATTID_dMDLocation=0x00020024, */
+/* IDL:        DRSUAPI_ATTID_isDeleted=0x00020030, */
+/* IDL:        DRSUAPI_ATTID_objectVersion=0x0002004c, */
+/* IDL:        DRSUAPI_ATTID_invocationId=0x00020073, */
+/* IDL:        DRSUAPI_ATTID_showInAdvancedViewOnly=0x000200a9, */
+/* IDL:        DRSUAPI_ATTID_adminDisplayName=0x000200c2, */
+/* IDL:        DRSUAPI_ATTID_adminDescription=0x000200e2, */
+/* IDL:        DRSUAPI_ATTID_oMSyntax=0x000200e7, */
+/* IDL:        DRSUAPI_ATTID_ntSecurityDescriptor=0x00020119, */
+/* IDL:        DRSUAPI_ATTID_searchFlags=0x0002014e, */
+/* IDL:        DRSUAPI_ATTID_auxiliaryClass=0x0002015f, */
+/* IDL:        DRSUAPI_ATTID_lDAPDisplayName=0x000201cc, */
+/* IDL:        DRSUAPI_ATTID_name=0x00090001, */
+/* IDL:        DRSUAPI_ATTID_userAccountControl=0x00090008, */
+/* IDL:        DRSUAPI_ATTID_badPwdCount=0x0009000c, */
+/* IDL:        DRSUAPI_ATTID_codePage=0x00090010, */
+/* IDL:        DRSUAPI_ATTID_countryCode=0x00090019, */
+/* IDL:        DRSUAPI_ATTID_currentValue=0x0009001b, */
+/* IDL:        DRSUAPI_ATTID_homeDirectory=0x0009002c, */
+/* IDL:        DRSUAPI_ATTID_homeDrive=0x0009002d, */
+/* IDL:        DRSUAPI_ATTID_lastLogoff=0x00090033, */
+/* IDL:        DRSUAPI_ATTID_lastLogon=0x00090034, */
+/* IDL:        DRSUAPI_ATTID_dBCSPwd=0x00090037, */
+/* IDL:        DRSUAPI_ATTID_scriptPath=0x0009003e, */
+/* IDL:        DRSUAPI_ATTID_logonHours=0x00090040, */
+/* IDL:        DRSUAPI_ATTID_userWorkstations=0x00090056, */
+/* IDL:        DRSUAPI_ATTID_unicodePwd=0x0009005a, */
+/* IDL:        DRSUAPI_ATTID_ntPwdHistory=0x0009005e, */
+/* IDL:        DRSUAPI_ATTID_pwdLastSet=0x00090060, */
+/* IDL:        DRSUAPI_ATTID_primaryGroupID=0x00090062, */
+/* IDL:        DRSUAPI_ATTID_priorValue=0x00090064, */
+/* IDL:        DRSUAPI_ATTID_supplementalCredentials=0x0009007d, */
+/* IDL:        DRSUAPI_ATTID_trustAuthIncoming=0x00090081, */
+/* IDL:        DRSUAPI_ATTID_trustAuthOutgoing=0x00090087, */
+/* IDL:        DRSUAPI_ATTID_userParameters=0x0009008a, */
+/* IDL:        DRSUAPI_ATTID_profilePath=0x0009008b, */
+/* IDL:        DRSUAPI_ATTID_objectSid=0x00090092, */
+/* IDL:        DRSUAPI_ATTID_schemaIDGUID=0x00090094, */
+/* IDL:        DRSUAPI_ATTID_comment=0x0009009C, */
+/* IDL:        DRSUAPI_ATTID_accountExpires=0x0009009f, */
+/* IDL:        DRSUAPI_ATTID_lmPwdHistory=0x000900a0, */
+/* IDL:        DRSUAPI_ATTID_logonCount=0x000900a9, */
+/* IDL:        DRSUAPI_ATTID_systemPossSuperiors=0x000900c3, */
+/* IDL:        DRSUAPI_ATTID_systemMayContain=0x000900c4, */
+/* IDL:        DRSUAPI_ATTID_systemMustContain=0x000900c5, */
+/* IDL:        DRSUAPI_ATTID_systemAuxiliaryClass=0x000900c6, */
+/* IDL:        DRSUAPI_ATTID_sAMAccountName=0x000900dd, */
+/* IDL:        DRSUAPI_ATTID_sAMAccountType=0x0009012e, */
+/* IDL:        DRSUAPI_ATTID_options=0x00090133, */
+/* IDL:        DRSUAPI_ATTID_fSMORoleOwner=0x00090171, */
+/* IDL:        DRSUAPI_ATTID_systemFlags=0x00090177, */
+/* IDL:        DRSUAPI_ATTID_serverReference=0x00090203, */
+/* IDL:        DRSUAPI_ATTID_serverReferenceBL=0x00090204, */
+/* IDL:        DRSUAPI_ATTID_initialAuthIncoming=0x0009021b, */
+/* IDL:        DRSUAPI_ATTID_initialAuthOutgoing=0x0009021c, */
+/* IDL:        DRSUAPI_ATTID_wellKnownObjects=0x0009026a, */
+/* IDL:        DRSUAPI_ATTID_dNSHostName=0x0009026b, */
+/* IDL:        DRSUAPI_ATTID_isMemberOfPartialAttributeSet=0x0009027f, */
+/* IDL:        DRSUAPI_ATTID_userPrincipalName=0x00090290, */
+/* IDL:        DRSUAPI_ATTID_groupType=0x000902ee, */
+/* IDL:        DRSUAPI_ATTID_servicePrincipalName=0x00090303, */
+/* IDL:        DRSUAPI_ATTID_lastKnownParent=0x0009030d, */
+/* IDL:        DRSUAPI_ATTID_objectCategory=0x0009030e, */
+/* IDL:        DRSUAPI_ATTID_gPLink=0x0009037b, */
+/* IDL:        DRSUAPI_ATTID_transportAddressAttribute=0x0009037f, */
+/* IDL:        DRSUAPI_ATTID_msDS_Behavior_Version=0x000905b3, */
+/* IDL:        DRSUAPI_ATTID_msDS_KeyVersionNumber=0x000906f6, */
+/* IDL:        DRSUAPI_ATTID_msDS_HasDomainNCs=0x0009071c, */
+/* IDL:        DRSUAPI_ATTID_msDS_hasMasterNCs=0x0009072c, */
+/* IDL:        DRSUAPI_ATTID_isRecycled=0x0009080a, */
+/* IDL:        DRSUAPI_ATTID_INVALID=0xFFFFFFFF, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsAttributeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(1)] uint32 version; */
+/* IDL:        [value(0)] uint32 reserved1; */
+/* IDL:        [range(1,0x100000)] uint32 num_attids; */
+/* IDL:        [size_is(num_attids)] drsuapi_DsAttributeId attids[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsPartialAttributeSet_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsPartialAttributeSet_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsPartialAttributeSet_num_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsPartialAttributeSet_attids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsPartialAttributeSet_attids_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsPartialAttributeSet_attids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsPartialAttributeSet_attids, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsPartialAttributeSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsPartialAttributeSet);
+       }
+       
+       offset = drsuapi_dissect_element_DsPartialAttributeSet_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsPartialAttributeSet_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsPartialAttributeSet_num_attids(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsPartialAttributeSet_attids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID destination_dsa_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark highwatermark; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint32 max_object_count; */
+/* IDL:        uint32 max_ndr_size; */
+/* IDL:        drsuapi_DsExtendedOperation extended_op; */
+/* IDL:        hyper fsmo_info; */
+/* IDL:        [unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set; */
+/* IDL:        [unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; */
+/* IDL:        drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsExtendedOperation(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set Ex (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest8_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesRequest8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest8);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_destination_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_uptodateness_vector(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_max_object_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_max_ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_extended_op(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_fsmo_info(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_partial_attribute_set_ex(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest8_mapping_ctr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID destination_dsa_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark highwatermark; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint32 max_object_count; */
+/* IDL:        uint32 max_ndr_size; */
+/* IDL:        drsuapi_DsExtendedOperation extended_op; */
+/* IDL:        hyper fsmo_info; */
+/* IDL:        [unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set; */
+/* IDL:        [unique(1)] drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; */
+/* IDL:        drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
+/* IDL:        uint32 more_flags; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_destination_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_max_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_max_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_extended_op(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsExtendedOperation(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_fsmo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex_, NDR_POINTER_UNIQUE, "Pointer to Partial Attribute Set Ex (drsuapi_DsPartialAttributeSet)",hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsPartialAttributeSet(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest10_more_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesRequest10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest10);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_destination_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_uptodateness_vector(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_max_object_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_max_ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_extended_op(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_fsmo_info(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_partial_attribute_set_ex(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_mapping_ctr(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesRequest10_more_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(5)] [case(5)] drsuapi_DsGetNCChangesRequest5 req5; */
+/* IDL: [case(8)] [case(8)] drsuapi_DsGetNCChangesRequest8 req8; */
+/* IDL: [case(10)] [case(10)] drsuapi_DsGetNCChangesRequest10 req10; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest_req5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesRequest5(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest_req8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesRequest8(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesRequest_req10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesRequest10(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNCChangesRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetNCChangesRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 5:
+                       offset = drsuapi_dissect_element_DsGetNCChangesRequest_req5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = drsuapi_dissect_element_DsGetNCChangesRequest_req8(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 10:
+                       offset = drsuapi_dissect_element_DsGetNCChangesRequest_req10(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        hyper highest_usn; */
+/* IDL:        NTTIME last_sync_success; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursor2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor2);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursor2_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2_highest_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2_last_sync_success(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2)] uint32 version; */
+/* IDL:        [value(0)] uint32 reserved1; */
+/* IDL:        [range(0,0x100000)] uint32 count; */
+/* IDL:        [value(0)] uint32 reserved2; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaCursor2 cursors[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2CtrEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2CtrEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursor2CtrEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2CtrEx_cursors(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_DATA_BLOB(0,blob,0))] [range(0,26214400)] uint32 __ndr_size; */
+/* IDL:        [unique(1)] DATA_BLOB *blob; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAttributeValue___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAttributeValue___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAttributeValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAttributeValue_blob_, NDR_POINTER_UNIQUE, "Pointer to Blob (DATA_BLOB)",hf_drsuapi_drsuapi_DsAttributeValue_blob);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAttributeValue_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAttributeValue_blob, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAttributeValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAttributeValue);
+       }
+       
+       offset = drsuapi_dissect_element_DsAttributeValue___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAttributeValue_blob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10485760)] uint32 num_values; */
+/* IDL:        [unique(1)] [size_is(num_values)] drsuapi_DsAttributeValue *values; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAttributeValueCtr_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAttributeValueCtr_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAttributeValueCtr_values_, NDR_POINTER_UNIQUE, "Pointer to Values (drsuapi_DsAttributeValue)",hf_drsuapi_drsuapi_DsAttributeValueCtr_values);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAttributeValueCtr_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAttributeValueCtr_values__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAttributeValueCtr_values__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAttributeValue(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAttributeValueCtr_values,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAttributeValueCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAttributeValueCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsAttributeValueCtr_num_values(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAttributeValueCtr_values(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r,ndr->flags))] uint32 __ndr_size; */
+/* IDL:        [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; */
+/* IDL:        GUID guid; */
+/* IDL:        dom_sid28 sid; */
+/* IDL:        [value(strlen_m(dn))] uint32 __ndr_size_dn; */
+/* IDL:        [charset(UTF16)] uint16 dn[__ndr_size_dn+1]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_dom_sid28(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjectIdentifier3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3___ndr_size_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3_dn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r,ndr->flags))] uint32 __ndr_size; */
+/* IDL:        [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; */
+/* IDL:        GUID guid; */
+/* IDL:        dom_sid28 sid; */
+/* IDL:        [value(strlen_m(dn))] uint32 __ndr_size_dn; */
+/* IDL:        [charset(UTF16)] uint16 dn[__ndr_size_dn+1]; */
+/* IDL:        [value(binary.length+4)] uint32 __ndr_size_binary; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB binary; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_dom_sid28(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary, 1);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjectIdentifier3Binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary___ndr_size_binary(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier3Binary_binary(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsAttributeId attid; */
+/* IDL:        drsuapi_DsAttributeValueCtr value_ctr; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttribute_attid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttribute_value_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAttributeValueCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttribute);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAttribute_attid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttribute_value_ctr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1048576)] uint32 num_attributes; */
+/* IDL:        [unique(1)] [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAttributeCtr_num_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttributeCtr_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttributeCtr_attributes_, NDR_POINTER_UNIQUE, "Pointer to Attributes (drsuapi_DsReplicaAttribute)",hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttributeCtr_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttributeCtr_attributes__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttributeCtr_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAttribute(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAttributeCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttributeCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAttributeCtr_num_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttributeCtr_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER =  0x00000001 , */
+/* IDL:        DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC =  0x00000002 , */
+/* IDL:        DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY =  0x00010000 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_DsReplicaObjectFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_DsReplicaObjectFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *identifier; */
+/* IDL:        drsuapi_DsReplicaObjectFlags flags; */
+/* IDL:        drsuapi_DsReplicaAttributeCtr attribute_ctr; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObject_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObject_identifier_, NDR_POINTER_UNIQUE, "Pointer to Identifier (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaObject_identifier);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObject_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObject_identifier,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObject_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DsReplicaObjectFlags(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObject_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObject_attribute_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAttributeCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObject);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObject_identifier(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObject_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObject_attribute_ctr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        NTTIME_1sec originating_change_time; */
+/* IDL:        GUID originating_invocation_id; */
+/* IDL:        hyper originating_usn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaMetaData);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaMetaData_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaMetaData_originating_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaMetaData_originating_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaMetaData_originating_usn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1048576)] uint32 count; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaMetaData meta_data[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaMetaData(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaMetaDataCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaMetaDataCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaMetaDataCtr_meta_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectListItemEx *next_object; */
+/* IDL:        drsuapi_DsReplicaObject object; */
+/* IDL:        uint32 is_nc_prefix; */
+/* IDL:        [unique(1)] GUID *parent_object_guid; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object_, NDR_POINTER_UNIQUE, "Pointer to Next Object (drsuapi_DsReplicaObjectListItemEx)",hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_drsuapi_DsReplicaObjectListItemEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObject(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_is_nc_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid_, NDR_POINTER_UNIQUE, "Pointer to Parent Object Guid (GUID)",hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr_, NDR_POINTER_UNIQUE, "Pointer to Meta Data Ctr (drsuapi_DsReplicaMetaDataCtr)",hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaMetaDataCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectListItemEx);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_next_object(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_object(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_is_nc_prefix(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_parent_object_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectListItemEx_meta_data_ctr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID source_dsa_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark old_highwatermark; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark new_highwatermark; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; */
+/* IDL:        drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
+/* IDL:        drsuapi_DsExtendedError extended_ret; */
+/* IDL:        uint32 object_count; */
+/* IDL:        [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectListItemEx *first_object; */
+/* IDL:        uint32 more_data; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context_, NDR_POINTER_UNIQUE, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsExtendedError(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr1_first_object_, NDR_POINTER_UNIQUE, "Pointer to First Object (drsuapi_DsReplicaObjectListItemEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_old_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_new_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_uptodateness_vector(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_mapping_ctr(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_extended_ret(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_object_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_first_object(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1_more_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE =  0x00000001 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_DsLinkedAttributeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_DsLinkedAttributeFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *identifier; */
+/* IDL:        drsuapi_DsAttributeId attid; */
+/* IDL:        drsuapi_DsAttributeValue value; */
+/* IDL:        drsuapi_DsLinkedAttributeFlags flags; */
+/* IDL:        NTTIME_1sec originating_add_time; */
+/* IDL:        drsuapi_DsReplicaMetaData meta_data; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier_, NDR_POINTER_UNIQUE, "Pointer to Identifier (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAttributeValue(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DsLinkedAttributeFlags(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_originating_add_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaLinkedAttribute_meta_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaMetaData(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaLinkedAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaLinkedAttribute);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_identifier(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_attid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_value(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_originating_add_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaLinkedAttribute_meta_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID source_dsa_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark old_highwatermark; */
+/* IDL:        drsuapi_DsReplicaHighWaterMark new_highwatermark; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector; */
+/* IDL:        drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; */
+/* IDL:        drsuapi_DsExtendedError extended_ret; */
+/* IDL:        uint32 object_count; */
+/* IDL:        [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectListItemEx *first_object; */
+/* IDL:        uint32 more_data; */
+/* IDL:        uint32 nc_object_count; */
+/* IDL:        uint32 nc_linked_attributes_count; */
+/* IDL:        [range(0,1048576)] uint32 linked_attributes_count; */
+/* IDL:        [unique(1)] [size_is(linked_attributes_count)] drsuapi_DsReplicaLinkedAttribute *linked_attributes; */
+/* IDL:        WERROR drs_error; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context_, NDR_POINTER_UNIQUE, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_old_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_new_highwatermark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaHighWaterMark(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector_, NDR_POINTER_UNIQUE, "Pointer to Uptodateness Vector (drsuapi_DsReplicaCursor2CtrEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor2CtrEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_mapping_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_extended_ret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsExtendedError(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6___ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_first_object_, NDR_POINTER_UNIQUE, "Pointer to First Object (drsuapi_DsReplicaObjectListItemEx)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_first_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_more_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_nc_object_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_nc_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_, NDR_POINTER_UNIQUE, "Pointer to Linked Attributes (drsuapi_DsReplicaLinkedAttribute)",hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaLinkedAttribute(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6_drs_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr6);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_old_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_new_highwatermark(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_uptodateness_vector(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_mapping_ctr(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_extended_ret(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_object_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6___ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_first_object(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_more_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_nc_object_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_nc_linked_attributes_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_linked_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6_drs_error(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [subcontext(0xFFFFFC01)] drsuapi_DsGetNCChangesCtr1 ctr1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr1TS_ctr1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [subcontext(0xFFFFFC01)] drsuapi_DsGetNCChangesCtr6 ctr6; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr6(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr6TS_ctr6(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 decompressed_length; */
+/* IDL:        uint32 compressed_length; */
+/* IDL:        [unique(1)] [compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] [subcontext_size(compressed_length)] [subcontext(4)] drsuapi_DsGetNCChangesCtr1TS *ts; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr1TS)",hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_decompressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_compressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr1_ts(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 decompressed_length; */
+/* IDL:        uint32 compressed_length; */
+/* IDL:        [unique(1)] [compression(NDR_COMPRESSION_MSZIP,compressed_length,decompressed_length)] [subcontext_size(compressed_length)] [subcontext(4)] drsuapi_DsGetNCChangesCtr6TS *ts; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr6TS)",hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_decompressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_compressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesMSZIPCtr6_ts(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 decompressed_length; */
+/* IDL:        uint32 compressed_length; */
+/* IDL:        [unique(1)] [compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] [subcontext_size(compressed_length)] [subcontext(4)] drsuapi_DsGetNCChangesCtr1TS *ts; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_decompressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_compressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr1TS)",hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesXPRESSCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_decompressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_compressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesXPRESSCtr1_ts(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 decompressed_length; */
+/* IDL:        uint32 compressed_length; */
+/* IDL:        [unique(1)] [compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] [subcontext_size(compressed_length)] [subcontext(4)] drsuapi_DsGetNCChangesCtr6TS *ts; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_decompressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_decompressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_compressed_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_compressed_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts_, NDR_POINTER_UNIQUE, "Pointer to Ts (drsuapi_DsGetNCChangesCtr6TS)",hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesXPRESSCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_decompressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_compressed_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesXPRESSCtr6_ts(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_COMPRESSION_TYPE_MSZIP=2, */
+/* IDL:        DRSUAPI_COMPRESSION_TYPE_XPRESS=3, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsGetNCChangesCompressionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] [flag(LIBNDR_PRINT_ARRAY_HEX)] union { */
+/* IDL: [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] [case(1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; */
+/* IDL: [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] [case(6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16))] drsuapi_DsGetNCChangesMSZIPCtr6 mszip6; */
+/* IDL: [case(1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] [case(1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] drsuapi_DsGetNCChangesXPRESSCtr1 xpress1; */
+/* IDL: [case(6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] [case(6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16))] drsuapi_DsGetNCChangesXPRESSCtr6 xpress6; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr6(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesXPRESSCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesXPRESSCtr6(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNCChangesCompressedCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetNCChangesCompressedCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr);
+       }
+
+       switch(level) {
+               case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
+                       offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
+                       offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_mszip6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
+                       offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
+                       offset = drsuapi_dissect_element_DsGetNCChangesCompressedCtr_xpress6(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsGetNCChangesMSZIPCtr1 mszip1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr2_mszip1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr2);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr2_mszip1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,6)] uint32 level; */
+/* IDL:        [range(2,3)] drsuapi_DsGetNCChangesCompressionType type; */
+/* IDL:        [switch_is(level|(type<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr7_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level, level);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr7_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
+{
+       offset = drsuapi_dissect_enum_DsGetNCChangesCompressionType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type, type);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr7_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = drsuapi_dissect_DsGetNCChangesCompressedCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr, *);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNCChangesCtr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       guint16 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr7);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr7_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr7_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = drsuapi_dissect_element_DsGetNCChangesCtr7_ctr(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetNCChangesCtr1 ctr1; */
+/* IDL: [case(2)] [case(2)] drsuapi_DsGetNCChangesCtr2 ctr2; */
+/* IDL: [case(6)] [case(6)] drsuapi_DsGetNCChangesCtr6 ctr6; */
+/* IDL: [case(7)] [case(7)] drsuapi_DsGetNCChangesCtr7 ctr7; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr_ctr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr6(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChangesCtr_ctr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNCChangesCtr7(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNCChangesCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetNCChangesCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNCChangesCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = drsuapi_dissect_element_DsGetNCChangesCtr_ctr7(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        [ref] [charset(DOS)] uint8 *dest_dsa_dns_name; */
+/* IDL:        GUID dest_dsa_guid; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name_, NDR_POINTER_REF, "Pointer to Dest Dsa Dns Name (uint8)",hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaUpdateRefsRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_dest_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest1_options(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaUpdateRefsRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaUpdateRefsRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaUpdateRefsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaUpdateRefsRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsReplicaUpdateRefsRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *source_dsa_address; */
+/* IDL:        uint8 schedule[84]; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 84; i++)
+               offset = drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest1_options, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAddRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAddRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAddRequest1_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest1_source_dsa_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest1_schedule(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest1_options(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *source_dsa_dn; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *transport_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *source_dsa_address; */
+/* IDL:        uint8 schedule[84]; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Dn (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_, NDR_POINTER_UNIQUE, "Pointer to Transport Dn (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 84; i++)
+               offset = drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest2_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAddRequest2_options, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAddRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAddRequest2);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAddRequest2_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest2_transport_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest2_source_dsa_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest2_schedule(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAddRequest2_options(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaAddRequest1 req1; */
+/* IDL: [case(2)] [case(2)] drsuapi_DsReplicaAddRequest2 req2; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAddRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAddRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAddRequest2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAddRequest_req2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaAddRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaAddRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAddRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsReplicaAddRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = drsuapi_dissect_element_DsReplicaAddRequest_req2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *source_dsa_address; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaDelRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaDelRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDelRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint8)",hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDelRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaDelRequest1_options, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaDelRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaDelRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaDelRequest1_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaDelRequest1_source_dsa_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaDelRequest1_options(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaDelRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaDelRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaDelRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaDelRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaDelRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaDelRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaDelRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsReplicaDelRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; */
+/* IDL:        GUID source_dra; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *source_dra_address; */
+/* IDL:        uint8 schedule[84]; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint32 modify_fields; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_naming_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaModRequest1_naming_context_, NDR_POINTER_REF, "Pointer to Naming Context (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_naming_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dra Address (uint16)",hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 84; i++)
+               offset = drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_schedule_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest1_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaModRequest1_options, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaModRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaModRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_naming_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_source_dra(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_source_dra_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_schedule(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_modify_fields(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaModRequest1_options(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsReplicaModRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaModRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaModRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaModRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaModRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaModRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaModRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsReplicaModRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS=1, */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS=2, */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS=3, */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2=4, */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS=5, */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS=6, */
+/* IDL:        DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2=7, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsMembershipType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTSTATUS status; */
+/* IDL:        [range(0,10000)] uint32 num_memberships; */
+/* IDL:        [range(0,10000)] uint32 num_sids; */
+/* IDL:        [unique(1)] [size_is(num_memberships)] drsuapi_DsReplicaObjectIdentifier **info_array; */
+/* IDL:        [unique(1)] [size_is(num_memberships)] samr_GroupAttrs *group_attrs; */
+/* IDL:        [unique(1)] [size_is(num_sids)] dom_sid28 **sids; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_num_memberships(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_info_array_, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_info_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_info_array___, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs_, NDR_POINTER_UNIQUE, "Pointer to Group Attrs (samr_GroupAttrs)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_samr_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (dom_sid28)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_sids__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsCtr1_sids___, NDR_POINTER_UNIQUE, "Pointer to Sids (dom_sid28)",hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr1_sids___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_dom_sid28(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetMembershipsCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMembershipsCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetMembershipsCtr1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsCtr1_num_memberships(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsCtr1_num_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsCtr1_info_array(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsCtr1_group_attrs(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsCtr1_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMembershipsCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetMembershipsCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetMembershipsCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetMembershipsCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMembershipsCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetMembershipsCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [range(1,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsReplicaObjectIdentifier **info_array; */
+/* IDL:        uint32 flags; */
+/* IDL:        [range(1,7)] drsuapi_DsMembershipType type; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *domain; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_info_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_info_array_, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_info_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_info_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_info_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_info_array___, NDR_POINTER_UNIQUE, "Pointer to Info Array (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_info_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsMembershipType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMembershipsRequest1_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest1_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetMembershipsRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMembershipsRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetMembershipsRequest1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsRequest1_info_array(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsRequest1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsRequest1_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMembershipsRequest1_domain(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetMembershipsRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMembershipsRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetMembershipsRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetMembershipsRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetMembershipsRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMembershipsRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetMembershipsRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG =  0x00000001 , */
+/* IDL:        DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS =  0x00000002 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_DsGetNT4ChangeLogFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsGetNT4ChangeLogFlags flags; */
+/* IDL:        uint32 preferred_maximum_length; */
+/* IDL:        [range(0,0x00A00000)] uint32 restart_length; */
+/* IDL:        [unique(1)] [size_is(restart_length)] uint8 *restart_data; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DsGetNT4ChangeLogFlags(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_, NDR_POINTER_UNIQUE, "Pointer to Restart Data (uint8)",hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNT4ChangeLogRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_preferred_maximum_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest1_restart_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetNT4ChangeLogRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNT4ChangeLogRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNT4ChangeLogRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetNT4ChangeLogRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetNT4ChangeLogRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [range(0,0x00A00000)] uint32 restart_length; */
+/* IDL:        [range(0,0x00A00000)] uint32 log_length; */
+/* IDL:        hyper sam_serial_number; */
+/* IDL:        NTTIME sam_creation_time; */
+/* IDL:        hyper builtin_serial_number; */
+/* IDL:        NTTIME builtin_creation_time; */
+/* IDL:        hyper lsa_serial_number; */
+/* IDL:        NTTIME lsa_creation_time; */
+/* IDL:        NTSTATUS status; */
+/* IDL:        [unique(1)] [size_is(restart_length)] uint8 *restart_data; */
+/* IDL:        [unique(1)] [size_is(log_length)] uint8 *log_data; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_, NDR_POINTER_UNIQUE, "Pointer to Restart Data (uint8)",hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_, NDR_POINTER_UNIQUE, "Pointer to Log Data (uint8)",hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetNT4ChangeLogInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_length(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_serial_number(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_sam_creation_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_serial_number(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_builtin_creation_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_serial_number(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_lsa_creation_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_restart_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo1_log_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetNT4ChangeLogInfo1 info1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetNT4ChangeLogInfo1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNT4ChangeLogInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetNT4ChangeLogInfo");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetNT4ChangeLogInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_OK=0, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR=1, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_NOT_FOUND=2, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE=3, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_NO_MAPPING=4, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY=5, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING=6, */
+/* IDL:        DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL=7, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsNameStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_NAME_FLAG_NO_FLAGS=0x0, */
+/* IDL:        DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY=0x1, */
+/* IDL:        DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC=0x2, */
+/* IDL:        DRSUAPI_DS_NAME_FLAG_GCVERIFY=0x4, */
+/* IDL:        DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL=0x8, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsNameFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_UNKNOWN=0x00000000, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_FQDN_1779=0x00000001, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT=0x00000002, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_DISPLAY=0x00000003, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_GUID=0x00000006, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_CANONICAL=0x00000007, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL=0x00000008, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX=0x00000009, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL=0x0000000A, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY=0x0000000B, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN=0x0000000C, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID=0xFFFFFFEF, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX=0xFFFFFFF0, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS=0xFFFFFFF1, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON=0xFFFFFFF2, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE=0xFFFFFFF3, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME=0xFFFFFFF4, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME=0xFFFFFFF5, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_NCS=0xFFFFFFF6, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS=0xFFFFFFF7, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID=0xFFFFFFF8, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN=0xFFFFFFF9, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_ROLES=0xFFFFFFFA, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER=0xFFFFFFFB, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE=0xFFFFFFFC, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE=0xFFFFFFFD, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE=0xFFFFFFFE, */
+/* IDL:        DRSUAPI_DS_NAME_FORMAT_LIST_SITES=0xFFFFFFFF, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsNameFormat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *str; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsNameString_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameString_str_, NDR_POINTER_UNIQUE, "Pointer to Str (uint16)",hf_drsuapi_drsuapi_DsNameString_str);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameString_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsNameString_str, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsNameString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameString);
+       }
+       
+       offset = drsuapi_dissect_element_DsNameString_str(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 codepage; */
+/* IDL:        uint32 language; */
+/* IDL:        drsuapi_DsNameFlags format_flags; */
+/* IDL:        drsuapi_DsNameFormat format_offered; */
+/* IDL:        drsuapi_DsNameFormat format_desired; */
+/* IDL:        [range(1,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsNameString *names; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsNameRequest1_codepage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameRequest1_codepage, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameRequest1_language, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_format_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsNameFlags(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameRequest1_format_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_format_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsNameFormat(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameRequest1_format_offered, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_format_desired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsNameFormat(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameRequest1_format_desired, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameRequest1_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameRequest1_names_, NDR_POINTER_UNIQUE, "Pointer to Names (drsuapi_DsNameString)",hf_drsuapi_drsuapi_DsNameRequest1_names);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameRequest1_names__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameRequest1_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsNameString(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsNameRequest1_names,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsNameRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsNameRequest1_codepage(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameRequest1_language(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameRequest1_format_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameRequest1_format_offered(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameRequest1_format_desired(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameRequest1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameRequest1_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsNameRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsNameRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsNameRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsNameRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsNameRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsNameRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsNameRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsNameStatus status; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_domain_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *result_name; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsNameInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsNameStatus(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameInfo1_status, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameInfo1_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameInfo1_dns_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Domain Name (uint16)",hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameInfo1_dns_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameInfo1_result_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameInfo1_result_name_, NDR_POINTER_UNIQUE, "Pointer to Result Name (uint16)",hf_drsuapi_drsuapi_DsNameInfo1_result_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameInfo1_result_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsNameInfo1_result_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsNameInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameInfo1);
+       }
+       
+       offset = drsuapi_dissect_element_DsNameInfo1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameInfo1_dns_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameInfo1_result_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsNameInfo1 *array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsNameCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsNameCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsNameInfo1)",hf_drsuapi_drsuapi_DsNameCtr1_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameCtr1_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsNameInfo1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsNameCtr1_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsNameCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsNameCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsNameCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] drsuapi_DsNameCtr1 *ctr1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsNameCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsNameCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (drsuapi_DsNameCtr1)",hf_drsuapi_drsuapi_DsNameCtr_ctr1);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsNameCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsNameCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsNameCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsNameCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsNameCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsNameCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsNameCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_SPN_OPERATION_ADD=0, */
+/* IDL:        DRSUAPI_DS_SPN_OPERATION_REPLACE=1, */
+/* IDL:        DRSUAPI_DS_SPN_OPERATION_DELETE=2, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsSpnOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsSpnOperation operation; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *object_dn; */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsNameString *spn_names; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsSpnOperation(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names_, NDR_POINTER_UNIQUE, "Pointer to Spn Names (drsuapi_DsNameString)",hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsNameString(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsWriteAccountSpnRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_operation(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_object_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsWriteAccountSpnRequest1_spn_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsWriteAccountSpnRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsWriteAccountSpnRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsWriteAccountSpnRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsWriteAccountSpnRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsWriteAccountSpnRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        WERROR status; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnResult1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsWriteAccountSpnResult1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsWriteAccountSpnResult1);
+       }
+       
+       offset = drsuapi_dissect_element_DsWriteAccountSpnResult1_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpnResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsWriteAccountSpnResult1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsWriteAccountSpnResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsWriteAccountSpnResult");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsWriteAccountSpnResult);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsWriteAccountSpnResult_res1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_dn; */
+/* IDL:        uint32 commit; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn_, NDR_POINTER_UNIQUE, "Pointer to Domain Dn (uint16)",hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerRequest1_commit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsRemoveDSServerRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsRemoveDSServerRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsRemoveDSServerRequest1_server_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsRemoveDSServerRequest1_domain_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsRemoveDSServerRequest1_commit(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsRemoveDSServerRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsRemoveDSServerRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsRemoveDSServerRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsRemoveDSServerRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsRemoveDSServerRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsRemoveDSServerRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 last_dc_in_domain; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerResult1_last_dc_in_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsRemoveDSServerResult1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsRemoveDSServerResult1);
+       }
+       
+       offset = drsuapi_dissect_element_DsRemoveDSServerResult1_last_dc_in_domain(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsRemoveDSServerResult1 res1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsRemoveDSServerResult_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsRemoveDSServerResult1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsRemoveDSServerResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsRemoveDSServerResult");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsRemoveDSServerResult);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsRemoveDSServerResult_res1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DC_INFO_CTR_1=1, */
+/* IDL:        DRSUAPI_DC_INFO_CTR_2=2, */
+/* IDL:        DRSUAPI_DC_INFO_CTR_3=3, */
+/* IDL:        DRSUAPI_DC_CONNECTION_CTR_01=0xFFFFFFFF, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_name; */
+/* IDL:        drsuapi_DsGetDCInfoCtrLevels level; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoRequest1_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfoRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfoRequest1_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfoRequest1_level(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetDCInfoRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfoRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetDCInfoRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetDCInfoRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetDCInfoRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *netbios_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *site_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *computer_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_dn; */
+/* IDL:        uint32 is_pdc; */
+/* IDL:        uint32 is_enabled; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo1_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo1_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo1_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_site_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo1_computer_dn_, NDR_POINTER_UNIQUE, "Pointer to Computer Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo1_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo1_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfo1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfo1_netbios_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo1_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo1_site_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo1_computer_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo1_server_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo1_is_pdc(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo1_is_enabled(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsGetDCInfo1 *array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCInfo1)",hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoCtr1_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfo1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfoCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfoCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfoCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *netbios_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *site_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *site_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *computer_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *ntds_dn; */
+/* IDL:        uint32 is_pdc; */
+/* IDL:        uint32 is_enabled; */
+/* IDL:        uint32 is_gc; */
+/* IDL:        GUID site_guid; */
+/* IDL:        GUID computer_guid; */
+/* IDL:        GUID server_guid; */
+/* IDL:        GUID ntds_guid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_site_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_site_dn_, NDR_POINTER_UNIQUE, "Pointer to Site Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_computer_dn_, NDR_POINTER_UNIQUE, "Pointer to Computer Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo2_ntds_dn_, NDR_POINTER_UNIQUE, "Pointer to Ntds Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo2_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfo2);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfo2_netbios_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_site_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_site_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_computer_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_server_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_ntds_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_is_pdc(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_is_enabled(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_is_gc(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_site_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_computer_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_server_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo2_ntds_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsGetDCInfo2 *array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCInfo2)",hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoCtr2_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfo2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfoCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr2);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfoCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfoCtr2_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *netbios_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *site_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *site_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *computer_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *ntds_dn; */
+/* IDL:        uint32 is_pdc; */
+/* IDL:        uint32 is_enabled; */
+/* IDL:        uint32 is_gc; */
+/* IDL:        uint32 is_rodc; */
+/* IDL:        GUID site_guid; */
+/* IDL:        GUID computer_guid; */
+/* IDL:        GUID server_guid; */
+/* IDL:        GUID ntds_guid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_site_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_site_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_site_dn_, NDR_POINTER_UNIQUE, "Pointer to Site Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_site_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_computer_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_computer_dn_, NDR_POINTER_UNIQUE, "Pointer to Computer Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_computer_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_server_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_server_dn_, NDR_POINTER_UNIQUE, "Pointer to Server Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_server_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_ntds_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfo3_ntds_dn_, NDR_POINTER_UNIQUE, "Pointer to Ntds Dn (uint16)",hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_ntds_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_is_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_is_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_is_gc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_is_rodc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_computer_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_server_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfo3_ntds_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfo3);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfo3_netbios_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_site_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_site_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_computer_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_server_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_ntds_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_is_pdc(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_is_enabled(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_is_gc(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_is_rodc(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_site_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_computer_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_server_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfo3_ntds_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsGetDCInfo3 *array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoCtr3_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCInfo3)",hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCInfoCtr3_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfo3(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCInfoCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr3);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCInfoCtr3_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCInfoCtr3_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_BIGENDIAN)] ipv4address client_ip_address; */
+/* IDL:        uint32 unknown2; */
+/* IDL:        uint32 connection_time; */
+/* IDL:        uint32 unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client_account; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_connection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_client_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCConnection01_client_account_, NDR_POINTER_UNIQUE, "Pointer to Client Account (uint16)",hf_drsuapi_drsuapi_DsGetDCConnection01_client_account);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnection01_client_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsGetDCConnection01_client_account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCConnection01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCConnection01);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCConnection01_client_ip_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnection01_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnection01_connection_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnection01_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnection01_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnection01_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnection01_client_account(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsGetDCConnection01 *array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCConnectionCtr01_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnectionCtr01_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCConnectionCtr01_array_, NDR_POINTER_UNIQUE, "Pointer to Array (drsuapi_DsGetDCConnection01)",hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnectionCtr01_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDCConnectionCtr01_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCConnectionCtr01_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCConnection01(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetDCConnectionCtr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCConnectionCtr01);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetDCConnectionCtr01_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetDCConnectionCtr01_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(drsuapi_DsGetDCInfoCtrLevels)] union { */
+/* IDL: [case(DRSUAPI_DC_INFO_CTR_1)] [case(DRSUAPI_DC_INFO_CTR_1)] drsuapi_DsGetDCInfoCtr1 ctr1; */
+/* IDL: [case(DRSUAPI_DC_INFO_CTR_2)] [case(DRSUAPI_DC_INFO_CTR_2)] drsuapi_DsGetDCInfoCtr2 ctr2; */
+/* IDL: [case(DRSUAPI_DC_INFO_CTR_3)] [case(DRSUAPI_DC_INFO_CTR_3)] drsuapi_DsGetDCInfoCtr3 ctr3; */
+/* IDL: [case(DRSUAPI_DC_CONNECTION_CTR_01)] [case(DRSUAPI_DC_CONNECTION_CTR_01)] drsuapi_DsGetDCConnectionCtr01 ctr01; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfoCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfoCtr2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCInfoCtr3(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDCInfoCtr_ctr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetDCConnectionCtr01(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetDCInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetDCInfoCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetDCInfoCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case DRSUAPI_DC_INFO_CTR_1:
+                       offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DC_INFO_CTR_2:
+                       offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DC_INFO_CTR_3:
+                       offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DC_CONNECTION_CTR_01:
+                       offset = drsuapi_dissect_element_DsGetDCInfoCtr_ctr01(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectListItem *next_object; */
+/* IDL:        drsuapi_DsReplicaObject object; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItem_next_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjectListItem_next_object_, NDR_POINTER_UNIQUE, "Pointer to Next Object (drsuapi_DsReplicaObjectListItem)",hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItem_next_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_drsuapi_DsReplicaObjectListItem(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectListItem_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObject(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectListItem_object,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjectListItem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectListItem);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjectListItem_next_object(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectListItem_object(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DIRERR_OK=0, */
+/* IDL:        DRSUAPI_DIRERR_ATTRIBUTE=1, */
+/* IDL:        DRSUAPI_DIRERR_NAME=2, */
+/* IDL:        DRSUAPI_DIRERR_REFERRAL=3, */
+/* IDL:        DRSUAPI_DIRERR_SECURITY=4, */
+/* IDL:        DRSUAPI_DIRERR_SERVICE=5, */
+/* IDL:        DRSUAPI_DIRERR_UPDATE=6, */
+/* IDL:        DRSUAPI_DIRERR_SYSTEM=7, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsAddEntry_DirErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsReplicaObjectListItem first_object; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryRequest2_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectListItem(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryRequest2);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryRequest2_first_object(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_SECBUFFER_EMPTY=0x00000000, */
+/* IDL:        DRSUAPI_SECBUFFER_DATA=0x00000001, */
+/* IDL:        DRSUAPI_SECBUFFER_TOKEN=0x00000002, */
+/* IDL:        DRSUAPI_SECBUFFER_PKG_PARAMS=0x00000003, */
+/* IDL:        DRSUAPI_SECBUFFER_MISSING=0x00000004, */
+/* IDL:        DRSUAPI_SECBUFFER_EXTRA=0x00000005, */
+/* IDL:        DRSUAPI_SECBUFFER_STREAM_TRAILER=0x00000006, */
+/* IDL:        DRSUAPI_SECBUFFER_STREAM_HEADER=0x00000007, */
+/* IDL:        DRSUAPI_SECBUFFER_READONLY=0x80000000, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_SecBufferType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 buf_size; */
+/* IDL:        drsuapi_SecBufferType buf_type; */
+/* IDL:        [unique(1)] [size_is(buf_size)] uint8 *buffer; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_SecBuffer_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_SecBuffer_buf_size, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBuffer_buf_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_SecBufferType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_SecBuffer_buf_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBuffer_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_SecBuffer_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_drsuapi_drsuapi_SecBuffer_buffer);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBuffer_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_SecBuffer_buffer__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBuffer_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_SecBuffer_buffer, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_SecBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_SecBuffer);
+       }
+       
+       offset = drsuapi_dissect_element_SecBuffer_buf_size(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_SecBuffer_buf_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_SecBuffer_buffer(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 version; */
+/* IDL:        [range(0,10000)] uint32 buff_count; */
+/* IDL:        [unique(1)] [size_is(buff_count)] drsuapi_SecBuffer *buffers; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_SecBufferDesc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_SecBufferDesc_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBufferDesc_buff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_SecBufferDesc_buff_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBufferDesc_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_SecBufferDesc_buffers_, NDR_POINTER_UNIQUE, "Pointer to Buffers (drsuapi_SecBuffer)",hf_drsuapi_drsuapi_SecBufferDesc_buffers);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBufferDesc_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_SecBufferDesc_buffers__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_SecBufferDesc_buffers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_SecBuffer(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_SecBufferDesc_buffers,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_SecBufferDesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_SecBufferDesc);
+       }
+       
+       offset = drsuapi_dissect_element_SecBufferDesc_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_SecBufferDesc_buff_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_SecBufferDesc_buffers(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsReplicaObjectListItem first_object; */
+/* IDL:        [unique(1)] drsuapi_SecBufferDesc *client_creds; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryRequest3_first_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectListItem(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryRequest3_client_creds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryRequest3_client_creds_, NDR_POINTER_UNIQUE, "Pointer to Client Creds (drsuapi_SecBufferDesc)",hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryRequest3_client_creds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_SecBufferDesc(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryRequest3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryRequest3);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryRequest3_first_object(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryRequest3_client_creds(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(2)] [case(2)] drsuapi_DsAddEntryRequest2 req2; */
+/* IDL: [case(3)] [case(3)] drsuapi_DsAddEntryRequest3 req3; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryRequest2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryRequest_req2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryRequest_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryRequest3(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryRequest_req3,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsAddEntryRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsAddEntryRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 2:
+                       offset = drsuapi_dissect_element_DsAddEntryRequest_req2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = drsuapi_dissect_element_DsAddEntryRequest_req3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 dsid; */
+/* IDL:        WERROR extended_err; */
+/* IDL:        uint32 extended_data; */
+/* IDL:        uint16 problem; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfoX_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfoX_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfoX);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_dsid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_err(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_extended_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfoX_problem(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dsid; */
+/* IDL:        WERROR extended_err; */
+/* IDL:        uint32 extended_data; */
+/* IDL:        uint16 problem; */
+/* IDL:        drsuapi_DsAttributeId attid; */
+/* IDL:        uint32 is_val_returned; */
+/* IDL:        drsuapi_DsAttributeValue attr_val; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAttributeId(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_is_val_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attr_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAttributeValue(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntry_AttrErr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_dsid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_err(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_extended_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_problem(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_is_val_returned(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErr_V1_attr_val(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsAddEntry_AttrErrListItem_V1 *next; */
+/* IDL:        drsuapi_DsAddEntry_AttrErr_V1 err_data; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next_, NDR_POINTER_UNIQUE, "Pointer to Next (drsuapi_DsAddEntry_AttrErrListItem_V1)",hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_drsuapi_DsAddEntry_AttrErrListItem_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntry_AttrErr_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntry_AttrErrListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_next(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_AttrErrListItem_V1_err_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *id; */
+/* IDL:        uint32 count; */
+/* IDL:        drsuapi_DsAddEntry_AttrErrListItem_V1 first; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id_, NDR_POINTER_UNIQUE, "Pointer to Id (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_first(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntry_AttrErrListItem_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryErrorInfo_Attr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Attr_V1_first(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dsid; */
+/* IDL:        WERROR extended_err; */
+/* IDL:        uint32 extended_data; */
+/* IDL:        uint16 problem; */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *id_matched; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched_, NDR_POINTER_UNIQUE, "Pointer to Id Matched (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryErrorInfo_Name_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_dsid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_err(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_extended_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_problem(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Name_V1_id_matched(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(83)] uint8 name_res; */
+/* IDL:        [value(0)] uint8 unused_pad; */
+/* IDL:        [value(0)] uint16 next_rdn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_NameResOp_V1_name_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_NameResOp_V1_name_res, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_NameResOp_V1_unused_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_NameResOp_V1_unused_pad, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_NameResOp_V1_next_rdn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_NameResOp_V1_next_rdn, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_NameResOp_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_NameResOp_V1);
+       }
+       
+       offset = drsuapi_dissect_element_NameResOp_V1_name_res(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_NameResOp_V1_unused_pad(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_NameResOp_V1_next_rdn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_CH_REFTYPE_SUPERIOR=0x0000, */
+/* IDL:        DRSUAPI_CH_REFTYPE_SUBORDINATE=0x0001, */
+/* IDL:        DRSUAPI_CH_REFTYPE_NSSR=0x0002, */
+/* IDL:        DRSUAPI_CH_REFTYPE_CROSS=0x0003, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsAddEntry_RefType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_SE_CHOICE_BASE_ONLY=0x00, */
+/* IDL:        DRSUAPI_SE_CHOICE_IMMED_CHLDRN=0x01, */
+/* IDL:        DRSUAPI_SE_CHOICE_WHOLE_SUBTREE=0x02, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsAddEntry_ChoiceType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsaAddressListItem_V1 *next; */
+/* IDL:        [unique(1)] lsa_String *address; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsaAddressListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsaAddressListItem_V1_next_, NDR_POINTER_UNIQUE, "Pointer to Next (drsuapi_DsaAddressListItem_V1)",hf_drsuapi_drsuapi_DsaAddressListItem_V1_next);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsaAddressListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_drsuapi_DsaAddressListItem_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsaAddressListItem_V1_next,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsaAddressListItem_V1_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsaAddressListItem_V1_address_, NDR_POINTER_UNIQUE, "Pointer to Address (lsa_String)",hf_drsuapi_drsuapi_DsaAddressListItem_V1_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsaAddressListItem_V1_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsaAddressListItem_V1_address,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsaAddressListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsaAddressListItem_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsaAddressListItem_V1_next(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsaAddressListItem_V1_address(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *id_target; */
+/* IDL:        drsuapi_NameResOp_V1 op_state; */
+/* IDL:        [value(0)] uint16 rdn_alias; */
+/* IDL:        [value(0)] uint16 rdn_internal; */
+/* IDL:        drsuapi_DsAddEntry_RefType ref_type; */
+/* IDL:        uint16 addr_list_count; */
+/* IDL:        [unique(1)] drsuapi_DsaAddressListItem_V1 *addr_list; */
+/* IDL:        [unique(1)] drsuapi_DsAddEntry_RefErrListItem_V1 *next; */
+/* IDL:        uint32 is_choice_set; */
+/* IDL:        drsuapi_DsAddEntry_ChoiceType choice; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target_, NDR_POINTER_UNIQUE, "Pointer to Id Target (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_op_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_NameResOp_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_ref_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAddEntry_RefType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_, NDR_POINTER_UNIQUE, "Pointer to Addr List (drsuapi_DsaAddressListItem_V1)",hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsaAddressListItem_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next_, NDR_POINTER_UNIQUE, "Pointer to Next (drsuapi_DsAddEntry_RefErrListItem_V1)",hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_drsuapi_DsAddEntry_RefErrListItem_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_is_choice_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_choice(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAddEntry_ChoiceType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntry_RefErrListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_id_target(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_op_state(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_alias(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_rdn_internal(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_ref_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_addr_list(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_next(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_is_choice_set(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_RefErrListItem_V1_choice(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dsid; */
+/* IDL:        WERROR extended_err; */
+/* IDL:        uint32 extended_data; */
+/* IDL:        drsuapi_DsAddEntry_RefErrListItem_V1 refer; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_refer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntry_RefErrListItem_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryErrorInfo_Referr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_dsid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_err(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_extended_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_Referr_V1_refer(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsAddEntryErrorInfo_Attr_V1 attr_err; */
+/* IDL: [case(2)] [case(2)] drsuapi_DsAddEntryErrorInfo_Name_V1 name_err; */
+/* IDL: [case(3)] [case(3)] drsuapi_DsAddEntryErrorInfo_Referr_V1 referral_err; */
+/* IDL: [case(4)] [case(4)] drsuapi_DsAddEntryErrorInfoX security_err; */
+/* IDL: [case(5)] [case(5)] drsuapi_DsAddEntryErrorInfoX service_err; */
+/* IDL: [case(6)] [case(6)] drsuapi_DsAddEntryErrorInfoX update_err; */
+/* IDL: [case(7)] [case(7)] drsuapi_DsAddEntryErrorInfoX system_err; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_attr_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfo_Attr_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_name_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfo_Name_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_referral_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfo_Referr_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_security_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_service_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_update_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryErrorInfo_system_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsAddEntryErrorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsAddEntryErrorInfo");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryErrorInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_attr_err(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_name_err(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_referral_err(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_security_err(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_service_err(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_update_err(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = drsuapi_dissect_element_DsAddEntryErrorInfo_system_err(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        WERROR status; */
+/* IDL:        drsuapi_DsAddEntry_DirErr dir_err; */
+/* IDL:        [unique(1)] [switch_is(dir_err)] drsuapi_DsAddEntryErrorInfo *info; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntry_ErrData_V1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_ErrData_V1_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *dir_err)
+{
+       offset = drsuapi_dissect_enum_DsAddEntry_DirErr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err, dir_err);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_ErrData_V1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *dir_err)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_ErrData_V1_info_, NDR_POINTER_UNIQUE, "Pointer to Info (drsuapi_DsAddEntryErrorInfo)",hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_ErrData_V1_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *dir_err)
+{
+       offset = drsuapi_dissect_DsAddEntryErrorInfo(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info, *dir_err);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntry_ErrData_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 dir_err;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntry_ErrData_V1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_ErrData_V1_dir_err(tvb, offset, pinfo, tree, drep, &dir_err);
+
+       offset = drsuapi_dissect_element_DsAddEntry_ErrData_V1_info(tvb, offset, pinfo, tree, drep, &dir_err);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsAddEntry_ErrData_V1 v1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntry_ErrData_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntry_ErrData_V1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsAddEntry_ErrData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsAddEntry_ErrData");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntry_ErrData);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsAddEntry_ErrData_v1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        GUID guid; */
+/* IDL:        dom_sid28 sid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier2_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjectIdentifier2_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_dom_sid28(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier2_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjectIdentifier2_sid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *id; */
+/* IDL:        drsuapi_DsAddEntry_DirErr dir_err; */
+/* IDL:        uint32 dsid; */
+/* IDL:        WERROR extended_err; */
+/* IDL:        uint32 extended_data; */
+/* IDL:        uint16 problem; */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr2_id_, NDR_POINTER_UNIQUE, "Pointer to Id (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryCtr2_id);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryCtr2_id,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_dir_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsAddEntry_DirErr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_dsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_extended_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_extended_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_problem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_problem, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr2_objects_, NDR_POINTER_UNIQUE, "Pointer to Objects (drsuapi_DsReplicaObjectIdentifier2)",hf_drsuapi_drsuapi_DsAddEntryCtr2_objects);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr2_objects__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr2_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryCtr2_objects,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryCtr2);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_dir_err(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_dsid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_extended_err(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_extended_data(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_problem(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr2_objects(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] drsuapi_DsReplicaObjectIdentifier *id; */
+/* IDL:        uint32 err_ver; */
+/* IDL:        [unique(1)] [switch_is(err_ver)] drsuapi_DsAddEntry_ErrData *err_data; */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr3_id_, NDR_POINTER_UNIQUE, "Pointer to Id (drsuapi_DsReplicaObjectIdentifier)",hf_drsuapi_drsuapi_DsAddEntryCtr3_id);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryCtr3_id,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_err_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *err_ver)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver, err_ver);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_err_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *err_ver)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr3_err_data_, NDR_POINTER_UNIQUE, "Pointer to Err Data (drsuapi_DsAddEntry_ErrData)",hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_err_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *err_ver)
+{
+       offset = drsuapi_dissect_DsAddEntry_ErrData(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data, *err_ver);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntryCtr3_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr3_objects_, NDR_POINTER_UNIQUE, "Pointer to Objects (drsuapi_DsReplicaObjectIdentifier2)",hf_drsuapi_drsuapi_DsAddEntryCtr3_objects);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntryCtr3_objects__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr3_objects__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryCtr3_objects,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsAddEntryCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g err_ver;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryCtr3);
+       }
+       
+       offset = drsuapi_dissect_element_DsAddEntryCtr3_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr3_err_ver(tvb, offset, pinfo, tree, drep, &err_ver);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr3_err_data(tvb, offset, pinfo, tree, drep, &err_ver);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr3_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntryCtr3_objects(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(2)] [case(2)] drsuapi_DsAddEntryCtr2 ctr2; */
+/* IDL: [case(3)] [case(3)] drsuapi_DsAddEntryCtr3 ctr3; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryCtr2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntryCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsAddEntryCtr3(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsAddEntryCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsAddEntryCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsAddEntryCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 2:
+                       offset = drsuapi_dissect_element_DsAddEntryCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = drsuapi_dissect_element_DsAddEntryCtr_ctr3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION =  0x00000001 , */
+/* IDL:        DRSUAPI_DS_EXECUTE_KCC_DAMPED =  0x00000002 , */
+/* IDL: } */
+
+int
+drsuapi_dissect_bitmap_DsExecuteKCCFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_drsuapi_drsuapi_DsExecuteKCCFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DRSUAPI_DS_EXECUTE_KCC_DAMPED");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 taskID; */
+/* IDL:        drsuapi_DsExecuteKCCFlags flags; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsExecuteKCC1_taskID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsExecuteKCC1_taskID, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsExecuteKCC1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DsExecuteKCCFlags(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsExecuteKCC1_flags, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsExecuteKCC1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsExecuteKCC1);
+       }
+       
+       offset = drsuapi_dissect_element_DsExecuteKCC1_taskID(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsExecuteKCC1_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsExecuteKCC1 ctr1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsExecuteKCCRequest_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsExecuteKCC1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsExecuteKCCRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsExecuteKCCRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsExecuteKCCRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsExecuteKCCRequest_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_REPLICA_GET_INFO=1, */
+/* IDL:        DRSUAPI_DS_REPLICA_GET_INFO2=2, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsReplicaGetInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_NEIGHBORS=0, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_CURSORS=1, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA=2, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES=3, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES=4, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_PENDING_OPS=5, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA=6, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_CURSORS2=7, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_CURSORS3=8, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2=9, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2=10, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_REPSTO=-2, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS=-4, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1=-5, */
+/* IDL:        DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS=-6, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsReplicaInfoType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsReplicaInfoType info_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *object_dn; */
+/* IDL:        GUID source_dsa_guid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest1_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsReplicaInfoType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest1_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaGetInfoRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest1_info_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest1_object_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest1_source_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        drsuapi_DsReplicaInfoType info_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *object_dn; */
+/* IDL:        GUID source_dsa_guid; */
+/* IDL:        uint32 flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *attribute_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *value_dn_str; */
+/* IDL:        uint32 enumeration_context; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsReplicaInfoType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_source_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str_, NDR_POINTER_UNIQUE, "Pointer to Value Dn Str (uint16)",hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest2_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaGetInfoRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_info_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_object_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_source_dsa_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_attribute_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_value_dn_str(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest2_enumeration_context(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { */
+/* IDL: [case(DRSUAPI_DS_REPLICA_GET_INFO)] [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_GET_INFO2)] [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaGetInfoRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfoRequest_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaGetInfoRequest2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaGetInfoRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaGetInfoRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaGetInfoRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case DRSUAPI_DS_REPLICA_GET_INFO:
+                       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_GET_INFO2:
+                       offset = drsuapi_dissect_element_DsReplicaGetInfoRequest_req2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *naming_context_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *source_dsa_obj_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *source_dsa_address; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *transport_obj_dn; */
+/* IDL:        drsuapi_DrsOptions replica_flags; */
+/* IDL:        uint32 reserved; */
+/* IDL:        GUID naming_context_obj_guid; */
+/* IDL:        GUID source_dsa_obj_guid; */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        GUID transport_obj_guid; */
+/* IDL:        hyper tmp_highest_usn; */
+/* IDL:        hyper highest_usn; */
+/* IDL:        NTTIME last_success; */
+/* IDL:        NTTIME last_attempt; */
+/* IDL:        WERROR result_last_attempt; */
+/* IDL:        uint32 consecutive_sync_failures; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn_, NDR_POINTER_UNIQUE, "Pointer to Naming Context Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Transport Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_replica_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_naming_context_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_tmp_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_last_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_result_last_attempt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbour_consecutive_sync_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaNeighbour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaNeighbour);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_naming_context_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_replica_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_naming_context_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_transport_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_tmp_highest_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_highest_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_last_success(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_last_attempt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_result_last_attempt(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbour_consecutive_sync_failures(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaNeighbour array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbourCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbourCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbourCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaNeighbourCtr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaNeighbourCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaNeighbour(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaNeighbourCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaNeighbourCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbourCtr_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaNeighbourCtr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaCursor array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaCursorCtr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursorCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaCursorCtr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursorCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursorCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursorCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursorCtr_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursorCtr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *attribute_name; */
+/* IDL:        uint32 version; */
+/* IDL:        NTTIME originating_change_time; */
+/* IDL:        GUID originating_invocation_id; */
+/* IDL:        hyper originating_usn; */
+/* IDL:        hyper local_usn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaData);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData_attribute_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData_originating_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData_originating_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData_originating_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData_local_usn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaObjMetaData array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaDataCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjMetaData(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjMetaDataCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaDataCtr_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaDataCtr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dsa_obj_dn; */
+/* IDL:        GUID dsa_obj_guid; */
+/* IDL:        NTTIME first_failure; */
+/* IDL:        uint32 num_failures; */
+/* IDL:        WERROR last_result; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailure_first_failure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailure_num_failures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailure_last_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaKccDsaFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaKccDsaFailure);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_dsa_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_first_failure(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_num_failures(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailure_last_result(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaKccDsaFailure array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaKccDsaFailure(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaKccDsaFailuresCtr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DRSUAPI_DS_REPLICA_OP_TYPE_SYNC=0, */
+/* IDL:        DRSUAPI_DS_REPLICA_OP_TYPE_ADD=1, */
+/* IDL:        DRSUAPI_DS_REPLICA_OP_TYPE_DELETE=2, */
+/* IDL:        DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY=3, */
+/* IDL:        DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS=4, */
+/* IDL: } */
+
+int
+drsuapi_dissect_enum_DsReplicaOpType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME operation_start; */
+/* IDL:        uint32 serial_num; */
+/* IDL:        uint32 priority; */
+/* IDL:        drsuapi_DsReplicaOpType operation_type; */
+/* IDL:        drsuapi_DrsOptions options; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *nc_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *remote_dsa_obj_dn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *remote_dsa_address; */
+/* IDL:        GUID nc_obj_guid; */
+/* IDL:        GUID remote_dsa_obj_guid; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaOp_operation_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_operation_start);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_serial_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_serial_num, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_priority, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_operation_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsReplicaOpType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_operation_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_bitmap_DrsOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_options, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_nc_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOp_nc_dn_, NDR_POINTER_UNIQUE, "Pointer to Nc Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaOp_nc_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_nc_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaOp_nc_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Remote Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_remote_dsa_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOp_remote_dsa_address_, NDR_POINTER_UNIQUE, "Pointer to Remote Dsa Address (uint16)",hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_remote_dsa_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_nc_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOp);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaOp_operation_start(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_serial_num(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_operation_type(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_options(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_nc_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_remote_dsa_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_nc_obj_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOp_remote_dsa_obj_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME time; */
+/* IDL:        uint32 count; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaOp array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaOpCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOpCtr_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOpCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaOpCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOpCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaOpCtr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaOpCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOp(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaOpCtr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaOpCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaOpCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaOpCtr_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOpCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaOpCtr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *attribute_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *object_dn; */
+/* IDL:        [value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; */
+/* IDL:        [unique(1)] DATA_BLOB *binary; */
+/* IDL:        NTTIME deleted; */
+/* IDL:        NTTIME created; */
+/* IDL:        uint32 version; */
+/* IDL:        NTTIME originating_change_time; */
+/* IDL:        GUID originating_invocation_id; */
+/* IDL:        hyper originating_usn; */
+/* IDL:        hyper local_usn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData_binary_, NDR_POINTER_UNIQUE, "Pointer to Binary (DATA_BLOB)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn, NULL);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAttrValMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaData);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_attribute_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_object_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData___ndr_size_binary(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_binary(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_deleted(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_created(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_originating_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData_local_usn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 enumeration_context; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAttrValMetaData(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAttrValMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_enumeration_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaDataCtr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 enumeration_context; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaCursor2 array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaCursor2Ctr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursor2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor2Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursor2Ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2Ctr_enumeration_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor2Ctr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID source_dsa_invocation_id; */
+/* IDL:        hyper highest_usn; */
+/* IDL:        NTTIME last_sync_success; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *source_dsa_obj_dn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3_source_dsa_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3_highest_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3_last_sync_success(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn_, NDR_POINTER_UNIQUE, "Pointer to Source Dsa Obj Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursor3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor3);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursor3_source_dsa_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor3_highest_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor3_last_sync_success(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor3_source_dsa_obj_dn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 enumeration_context; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaCursor3 array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaCursor3Ctr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaCursor3Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor3(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaCursor3Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaCursor3Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaCursor3Ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor3Ctr_enumeration_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaCursor3Ctr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *attribute_name; */
+/* IDL:        uint32 version; */
+/* IDL:        NTTIME originating_change_time; */
+/* IDL:        GUID originating_invocation_id; */
+/* IDL:        hyper originating_usn; */
+/* IDL:        hyper local_usn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *originating_dsa_dn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn_, NDR_POINTER_UNIQUE, "Pointer to Originating Dsa Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjMetaData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaData2);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_attribute_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_local_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2_originating_dsa_dn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 enumeration_context; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjMetaData2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaObjMetaData2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_enumeration_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaObjMetaData2Ctr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *attribute_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *object_dn; */
+/* IDL:        [value(ndr_size_DATA_BLOB(0,binary,0))] uint32 __ndr_size_binary; */
+/* IDL:        [unique(1)] DATA_BLOB *binary; */
+/* IDL:        NTTIME deleted; */
+/* IDL:        NTTIME created; */
+/* IDL:        uint32 version; */
+/* IDL:        NTTIME originating_change_time; */
+/* IDL:        GUID originating_invocation_id; */
+/* IDL:        hyper originating_usn; */
+/* IDL:        hyper local_usn; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *originating_dsa_dn; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name_, NDR_POINTER_UNIQUE, "Pointer to Attribute Name (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn_, NDR_POINTER_UNIQUE, "Pointer to Object Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2___ndr_size_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary_, NDR_POINTER_UNIQUE, "Pointer to Binary (DATA_BLOB)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_deleted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_created(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_invocation_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_local_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn_, NDR_POINTER_UNIQUE, "Pointer to Originating Dsa Dn (uint16)",hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAttrValMetaData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_attribute_name(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_object_dn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2___ndr_size_binary(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_binary(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_deleted(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_created(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_version(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_invocation_id(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_local_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2_originating_dsa_dn(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        uint32 enumeration_context; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAttrValMetaData2(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaAttrValMetaData2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_enumeration_context(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaAttrValMetaData2Ctr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper u1; */
+/* IDL:        uint32 u2; */
+/* IDL:        uint32 u3; */
+/* IDL:        GUID bind_guid; */
+/* IDL:        NTTIME_1sec bind_time; */
+/* IDL:        [flag(LIBNDR_FLAG_BIGENDIAN)] ipv4address client_ip_address; */
+/* IDL:        uint32 u5; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u1, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u2, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u3, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_bind_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_client_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04_u5, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaConnection04(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaConnection04);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaConnection04_u1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04_u2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04_u3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04_bind_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04_bind_time(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04_client_ip_address(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04_u5(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 count; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [size_is(count)] drsuapi_DsReplicaConnection04 array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaConnection04Ctr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaConnection04Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaConnection04(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplicaConnection04Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaConnection04Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplicaConnection04Ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04Ctr_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaConnection04Ctr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *str1; */
+/* IDL:        uint32 u1; */
+/* IDL:        uint32 u2; */
+/* IDL:        uint32 u3; */
+/* IDL:        uint32 u4; */
+/* IDL:        uint32 u5; */
+/* IDL:        hyper u6; */
+/* IDL:        uint32 u7; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplica06_str1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplica06_str1_, NDR_POINTER_UNIQUE, "Pointer to Str1 (uint16)",hf_drsuapi_drsuapi_DsReplica06_str1);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_str1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_DsReplica06_str1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u1, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u2, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u3, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u4, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u5, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u6, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06_u7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06_u7, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplica06(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplica06);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplica06_str1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u1(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u2(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u3(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u4(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u5(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u6(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06_u7(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,256)] uint32 count; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [size_is(count)] drsuapi_DsReplica06 array[*]; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplica06Ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06Ctr_count, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06Ctr_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplica06Ctr_reserved, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06Ctr_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplica06Ctr_array_);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplica06Ctr_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplica06(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplica06Ctr_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsReplica06Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplica06Ctr);
+       }
+       
+       offset = drsuapi_dissect_element_DsReplica06Ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06Ctr_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsReplica06Ctr_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(drsuapi_DsReplicaInfoType)] union { */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCursorCtr *cursors; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *connectfailures; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES)] drsuapi_DsReplicaKccDsaFailuresCtr *linkfailures; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_PENDING_OPS)] drsuapi_DsReplicaOpCtr *pendingops; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA)] drsuapi_DsReplicaAttrValMetaDataCtr *attrvalmetadata; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_CURSORS2)] drsuapi_DsReplicaCursor2Ctr *cursors2; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_CURSORS3)] drsuapi_DsReplicaCursor3Ctr *cursors3; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] drsuapi_DsReplicaNeighbourCtr *repsto; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] drsuapi_DsReplicaConnection04Ctr *clientctx; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] drsuapi_DsReplicaCursorCtrEx *udv1; */
+/* IDL: [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] [unique(1)] [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] drsuapi_DsReplica06Ctr *srvoutgoingcalls; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_neighbours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_neighbours_, NDR_POINTER_UNIQUE, "Pointer to Neighbours (drsuapi_DsReplicaNeighbourCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_neighbours);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_neighbours_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_neighbours,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_cursors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_cursors_, NDR_POINTER_UNIQUE, "Pointer to Cursors (drsuapi_DsReplicaCursorCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_cursors);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_cursors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursorCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_cursors,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_objmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_objmetadata_, NDR_POINTER_UNIQUE, "Pointer to Objmetadata (drsuapi_DsReplicaObjMetaDataCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_objmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjMetaDataCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_connectfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_connectfailures_, NDR_POINTER_UNIQUE, "Pointer to Connectfailures (drsuapi_DsReplicaKccDsaFailuresCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_connectfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_linkfailures(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_linkfailures_, NDR_POINTER_UNIQUE, "Pointer to Linkfailures (drsuapi_DsReplicaKccDsaFailuresCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_linkfailures_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_pendingops(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_pendingops_, NDR_POINTER_UNIQUE, "Pointer to Pendingops (drsuapi_DsReplicaOpCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_pendingops);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_pendingops_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaOpCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_pendingops,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata_, NDR_POINTER_UNIQUE, "Pointer to Attrvalmetadata (drsuapi_DsReplicaAttrValMetaDataCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAttrValMetaDataCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_cursors2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_cursors2_, NDR_POINTER_UNIQUE, "Pointer to Cursors2 (drsuapi_DsReplicaCursor2Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_cursors2);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_cursors2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor2Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_cursors2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_cursors3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_cursors3_, NDR_POINTER_UNIQUE, "Pointer to Cursors3 (drsuapi_DsReplicaCursor3Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_cursors3);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_cursors3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursor3Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_cursors3,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_objmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_objmetadata2_, NDR_POINTER_UNIQUE, "Pointer to Objmetadata2 (drsuapi_DsReplicaObjMetaData2Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_objmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaObjMetaData2Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2_, NDR_POINTER_UNIQUE, "Pointer to Attrvalmetadata2 (drsuapi_DsReplicaAttrValMetaData2Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaAttrValMetaData2Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_repsto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_repsto_, NDR_POINTER_UNIQUE, "Pointer to Repsto (drsuapi_DsReplicaNeighbourCtr)",hf_drsuapi_drsuapi_DsReplicaInfo_repsto);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_repsto_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_repsto,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_clientctx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_clientctx_, NDR_POINTER_UNIQUE, "Pointer to Clientctx (drsuapi_DsReplicaConnection04Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_clientctx);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_clientctx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaConnection04Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_clientctx,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_udv1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_udv1_, NDR_POINTER_UNIQUE, "Pointer to Udv1 (drsuapi_DsReplicaCursorCtrEx)",hf_drsuapi_drsuapi_DsReplicaInfo_udv1);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_udv1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_udv1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls_, NDR_POINTER_UNIQUE, "Pointer to Srvoutgoingcalls (drsuapi_DsReplica06Ctr)",hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsReplica06Ctr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsReplicaInfo");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsReplicaInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_neighbours(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_CURSORS:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_cursors(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_objmetadata(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_connectfailures(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_linkfailures(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_pendingops(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_cursors2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_cursors3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_objmetadata2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_attrvalmetadata2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_REPSTO:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_repsto(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_clientctx(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_udv1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS:
+                       offset = drsuapi_dissect_element_DsReplicaInfo_srvoutgoingcalls(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 num_entries; */
+/* IDL:        [unique(1)] [size_is(num_entries)] drsuapi_DsGetMembershipsCtr1 **ctrl_array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Ctr1_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array_, NDR_POINTER_UNIQUE, "Pointer to Ctrl Array (drsuapi_DsGetMembershipsCtr1)",hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array___, NDR_POINTER_UNIQUE, "Pointer to Ctrl Array (drsuapi_DsGetMembershipsCtr1)",hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetMembershipsCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetMemberships2Ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMemberships2Ctr1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetMemberships2Ctr1_num_entries(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMemberships2Ctr1_ctrl_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Ctr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetMembershipsCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetMemberships2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetMemberships2Ctr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMemberships2Ctr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetMemberships2Ctr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [range(1,10000)] uint32 num_req; */
+/* IDL:        [unique(1)] [size_is(num_req)] drsuapi_DsGetMembershipsRequest1 **req_array; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Request1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Request1_req_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2Request1_req_array_, NDR_POINTER_UNIQUE, "Pointer to Req Array (drsuapi_DsGetMembershipsRequest1)",hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Request1_req_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2Request1_req_array__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Request1_req_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2Request1_req_array___, NDR_POINTER_UNIQUE, "Pointer to Req Array (drsuapi_DsGetMembershipsRequest1)",hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Request1_req_array___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetMembershipsRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array,0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsGetMemberships2Request1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMemberships2Request1);
+       }
+       
+       offset = drsuapi_dissect_element_DsGetMemberships2Request1_num_req(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsGetMemberships2Request1_req_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_DsGetMemberships2Request1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsGetMemberships2Request_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsGetMemberships2Request1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsGetMemberships2Request_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetMemberships2Request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_DsGetMemberships2Request");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsGetMemberships2Request);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_DsGetMemberships2Request_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        WERROR error_code; */
+/* IDL:        uint32 site_cost; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_DsSiteCostInfo_error_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsSiteCostInfo_error_code, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsSiteCostInfo_site_cost(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_DsSiteCostInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_DsSiteCostInfo);
+       }
+       
+       offset = drsuapi_dissect_element_DsSiteCostInfo_error_code(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_DsSiteCostInfo_site_cost(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,10000)] uint32 num_info; */
+/* IDL:        [unique(1)] [size_is(num_info)] drsuapi_DsSiteCostInfo *info; */
+/* IDL:        [value(0)] uint32 flags_reserved; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_QuerySitesByCostCtr1_num_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostCtr1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCostCtr1_info_, NDR_POINTER_UNIQUE, "Pointer to Info (drsuapi_DsSiteCostInfo)",hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostCtr1_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCostCtr1_info__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostCtr1_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsSiteCostInfo(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostCtr1_flags_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_QuerySitesByCostCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_QuerySitesByCostCtr1);
+       }
+       
+       offset = drsuapi_dissect_element_QuerySitesByCostCtr1_num_info(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_QuerySitesByCostCtr1_info(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_QuerySitesByCostCtr1_flags_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_QuerySitesByCostCtr1 ctr1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_QuerySitesByCostCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_QuerySitesByCostCtr1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_QuerySitesByCostCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_QuerySitesByCostCtr");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_QuerySitesByCostCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_QuerySitesByCostCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *site_from; */
+/* IDL:        [range(1,10000)] uint32 num_req; */
+/* IDL:        [unique(1)] [charset(UTF16)] [size_is(num_req)] uint16 **site_to; */
+/* IDL:        uint32 flags; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_site_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_from_, NDR_POINTER_UNIQUE, "Pointer to Site From (uint16)",hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_site_from_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_num_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_site_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_to_, NDR_POINTER_UNIQUE, "Pointer to Site To (uint16)",hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_site_to_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_to__);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_site_to__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCostRequest1_site_to___, NDR_POINTER_UNIQUE, "Pointer to Site To (uint16)",hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_site_to___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags, 0);
+
+       return offset;
+}
+
+int
+drsuapi_dissect_struct_QuerySitesByCostRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_QuerySitesByCostRequest1);
+       }
+       
+       offset = drsuapi_dissect_element_QuerySitesByCostRequest1_site_from(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_QuerySitesByCostRequest1_num_req(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_QuerySitesByCostRequest1_site_to(tvb, offset, pinfo, tree, drep);
+
+       offset = drsuapi_dissect_element_QuerySitesByCostRequest1_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] drsuapi_QuerySitesByCostRequest1 req1; */
+/* IDL: } */
+
+static int
+drsuapi_dissect_element_QuerySitesByCostRequest_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_QuerySitesByCostRequest1(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_QuerySitesByCostRequest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "drsuapi_QuerySitesByCostRequest");
+               tree = proto_item_add_subtree(item, ett_drsuapi_drsuapi_QuerySitesByCostRequest);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = drsuapi_dissect_element_QuerySitesByCostRequest_req1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+static int
+drsuapi_dissect_element_DsBind_bind_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsBind_bind_guid_, NDR_POINTER_UNIQUE, "Pointer to Bind Guid (GUID)",hf_drsuapi_drsuapi_DsBind_bind_guid);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBind_bind_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBind_bind_guid, NULL);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBind_bind_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsBind_bind_info_, NDR_POINTER_UNIQUE, "Pointer to Bind Info (drsuapi_DsBindInfoCtr)",hf_drsuapi_drsuapi_DsBind_bind_info);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBind_bind_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_struct_DsBindInfoCtr(tvb,offset,pinfo,tree,drep,hf_drsuapi_drsuapi_DsBind_bind_info,0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsBind_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsBind_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsBind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsBind_bind_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsBind( */
+/* IDL: [unique(1)] [in] GUID *bind_guid, */
+/* IDL: [out] [unique(1)] [in] drsuapi_DsBindInfoCtr *bind_info, */
+/* IDL: [out] [ref] policy_handle *bind_handle */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsBind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsBind";
+       offset = drsuapi_dissect_element_DsBind_bind_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsBind_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsBind_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsBind";
+       offset = drsuapi_dissect_element_DsBind_bind_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsBind_bind_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsUnbind_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsUnbind_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsUnbind_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsUnbind_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsUnbind_bind_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsUnbind( */
+/* IDL: [out] [ref] [in] policy_handle *bind_handle */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsUnbind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsUnbind";
+       offset = drsuapi_dissect_element_DsUnbind_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsUnbind_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsUnbind";
+       offset = drsuapi_dissect_element_DsUnbind_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSync_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaSync_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaSync_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSync_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaSync_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSync_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaSync_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSync_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaSync_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsReplicaSyncRequest)",hf_drsuapi_drsuapi_DsReplicaSync_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaSync_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaSyncRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaSync_req, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsReplicaSync( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsReplicaSyncRequest *req */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsReplicaSync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsReplicaSync";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsReplicaSync";
+       offset = drsuapi_dissect_element_DsReplicaSync_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaSync_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaSync_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChanges_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChanges_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChanges_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetNCChangesRequest)",hf_drsuapi_drsuapi_DsGetNCChanges_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetNCChangesRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChanges_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChanges_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetNCChanges_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChanges_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNCChanges_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetNCChangesCtr)",hf_drsuapi_drsuapi_DsGetNCChanges_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNCChanges_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetNCChangesCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNCChanges_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsGetNCChanges( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsGetNCChangesRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetNCChangesCtr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsGetNCChanges_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsGetNCChanges";
+       offset = drsuapi_dissect_element_DsGetNCChanges_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsGetNCChanges_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNCChanges_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsGetNCChanges";
+       offset = drsuapi_dissect_element_DsGetNCChanges_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetNCChanges_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetNCChanges_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaUpdateRefs_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaUpdateRefsRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsReplicaUpdateRefs( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsReplicaUpdateRefs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsReplicaUpdateRefs";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaUpdateRefs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsReplicaUpdateRefs";
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefs_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefs_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaUpdateRefs_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAdd_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaAdd_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAdd_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAdd_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaAdd_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaAddRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaAdd_req, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsReplicaAdd( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaAddRequest req */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsReplicaAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsReplicaAdd";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsReplicaAdd";
+       offset = drsuapi_dissect_element_DsReplicaAdd_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaAdd_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaAdd_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDel_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaDel_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaDel_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDel_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaDel_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDel_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaDel_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaDel_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaDelRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaDel_req, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsReplicaDel( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaDelRequest req */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsReplicaDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsReplicaDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsReplicaDel";
+       offset = drsuapi_dissect_element_DsReplicaDel_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaDel_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaDel_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMod_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaMod_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaMod_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMod_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMod_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMod_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMod_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaMod_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaModRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaMod_req, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsReplicaMod( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] drsuapi_DsReplicaModRequest req */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsReplicaMod_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsReplicaMod";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaMod_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsReplicaMod";
+       offset = drsuapi_dissect_element_DsReplicaMod_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaMod_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaMod_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR DRSUAPI_VERIFY_NAMES( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DRSUAPI_VERIFY_NAMES_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DRSUAPI_VERIFY_NAMES";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DRSUAPI_VERIFY_NAMES_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DRSUAPI_VERIFY_NAMES";
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetMemberships_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetMembershipsRequest)",hf_drsuapi_drsuapi_DsGetMemberships_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetMembershipsRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetMemberships_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetMembershipsCtr)",hf_drsuapi_drsuapi_DsGetMemberships_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetMembershipsCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsGetMemberships( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetMembershipsCtr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsGetMemberships_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsGetMemberships";
+       offset = drsuapi_dissect_element_DsGetMemberships_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsGetMemberships_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetMemberships_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsGetMemberships";
+       offset = drsuapi_dissect_element_DsGetMemberships_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetMemberships_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetMemberships_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR DRSUAPI_INTER_DOMAIN_MOVE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DRSUAPI_INTER_DOMAIN_MOVE";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DRSUAPI_INTER_DOMAIN_MOVE";
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetNT4ChangeLogRequest)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetNT4ChangeLogRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetNT4ChangeLog_info_, NDR_POINTER_REF, "Pointer to Info (drsuapi_DsGetNT4ChangeLogInfo)",hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetNT4ChangeLog_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetNT4ChangeLogInfo(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsGetNT4ChangeLog( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsGetNT4ChangeLogRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetNT4ChangeLogInfo *info */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsGetNT4ChangeLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsGetNT4ChangeLog";
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLog_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLog_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetNT4ChangeLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsGetNT4ChangeLog";
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLog_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLog_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetNT4ChangeLog_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsCrackNames_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsCrackNames_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsCrackNames_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsCrackNames_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsCrackNames_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsNameRequest)",hf_drsuapi_drsuapi_DsCrackNames_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsNameRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsCrackNames_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsCrackNames_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsCrackNames_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsCrackNames_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsCrackNames_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsNameCtr)",hf_drsuapi_drsuapi_DsCrackNames_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsCrackNames_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsNameCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsCrackNames_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsCrackNames( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsNameRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsNameCtr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsCrackNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsCrackNames";
+       offset = drsuapi_dissect_element_DsCrackNames_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsCrackNames_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsCrackNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsCrackNames";
+       offset = drsuapi_dissect_element_DsCrackNames_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsCrackNames_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsCrackNames_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpn_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpn_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsWriteAccountSpnRequest)",hf_drsuapi_drsuapi_DsWriteAccountSpn_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsWriteAccountSpnRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpn_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsWriteAccountSpn_res_, NDR_POINTER_REF, "Pointer to Res (drsuapi_DsWriteAccountSpnResult)",hf_drsuapi_drsuapi_DsWriteAccountSpn_res);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsWriteAccountSpn_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsWriteAccountSpnResult(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsWriteAccountSpn_res, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsWriteAccountSpn( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsWriteAccountSpnRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsWriteAccountSpnResult *res */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsWriteAccountSpn_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsWriteAccountSpn";
+       offset = drsuapi_dissect_element_DsWriteAccountSpn_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsWriteAccountSpn_res(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsWriteAccountSpn_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsWriteAccountSpn";
+       offset = drsuapi_dissect_element_DsWriteAccountSpn_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsWriteAccountSpn_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsWriteAccountSpn_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsRemoveDSServer_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsRemoveDSServer_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsRemoveDSServerRequest)",hf_drsuapi_drsuapi_DsRemoveDSServer_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsRemoveDSServerRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsRemoveDSServer_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsRemoveDSServer_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsRemoveDSServer_res_, NDR_POINTER_REF, "Pointer to Res (drsuapi_DsRemoveDSServerResult)",hf_drsuapi_drsuapi_DsRemoveDSServer_res);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsRemoveDSServer_res_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsRemoveDSServerResult(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsRemoveDSServer_res, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsRemoveDSServer( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsRemoveDSServerRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsRemoveDSServerResult *res */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsRemoveDSServer_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRemoveDSServer";
+       offset = drsuapi_dissect_element_DsRemoveDSServer_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsRemoveDSServer_res(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsRemoveDSServer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRemoveDSServer";
+       offset = drsuapi_dissect_element_DsRemoveDSServer_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsRemoveDSServer_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsRemoveDSServer_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR DRSUAPI_REMOVE_DS_DOMAIN( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DRSUAPI_REMOVE_DS_DOMAIN";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DRSUAPI_REMOVE_DS_DOMAIN";
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetDCInfoRequest)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetDCInfoRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_level_out_, NDR_POINTER_REF, "Pointer to Level Out (drsuapi_DsGetDCInfoCtrLevels)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetDomainControllerInfo_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetDCInfoCtr)",hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetDomainControllerInfo_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetDCInfoCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsGetDomainControllerInfo( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsGetDCInfoRequest *req, */
+/* IDL: [out] [ref] drsuapi_DsGetDCInfoCtrLevels *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetDCInfoCtr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsGetDomainControllerInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsGetDomainControllerInfo";
+       offset = drsuapi_dissect_element_DsGetDomainControllerInfo_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsGetDomainControllerInfo_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetDomainControllerInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsGetDomainControllerInfo";
+       offset = drsuapi_dissect_element_DsGetDomainControllerInfo_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetDomainControllerInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetDomainControllerInfo_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsAddEntry_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsAddEntryRequest)",hf_drsuapi_drsuapi_DsAddEntry_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsAddEntryRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsAddEntry_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsAddEntry_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsAddEntryCtr)",hf_drsuapi_drsuapi_DsAddEntry_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsAddEntry_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsAddEntryCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsAddEntry_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsAddEntry( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsAddEntryRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsAddEntryCtr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsAddEntry_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsAddEntry";
+       offset = drsuapi_dissect_element_DsAddEntry_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsAddEntry_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsAddEntry_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsAddEntry";
+       offset = drsuapi_dissect_element_DsAddEntry_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsAddEntry_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsAddEntry_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsExecuteKCC_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsExecuteKCC_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsExecuteKCC_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsExecuteKCC_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsExecuteKCC_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsExecuteKCC_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsExecuteKCC_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsExecuteKCCRequest)",hf_drsuapi_drsuapi_DsExecuteKCC_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsExecuteKCC_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsExecuteKCCRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsExecuteKCC_req, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsExecuteKCC( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsExecuteKCCRequest *req */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsExecuteKCC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsExecuteKCC";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsExecuteKCC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsExecuteKCC";
+       offset = drsuapi_dissect_element_DsExecuteKCC_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsExecuteKCC_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsExecuteKCC_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfo_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsReplicaGetInfoLevel(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfo_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsReplicaGetInfoRequest)",hf_drsuapi_drsuapi_DsReplicaGetInfo_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaGetInfoRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfo_info_type_, NDR_POINTER_REF, "Pointer to Info Type (drsuapi_DsReplicaInfoType)",hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_info_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_enum_DsReplicaInfoType(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsReplicaGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (drsuapi_DsReplicaInfo)",hf_drsuapi_drsuapi_DsReplicaGetInfo_info);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsReplicaGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsReplicaInfo(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsReplicaGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsReplicaGetInfo( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] drsuapi_DsReplicaGetInfoLevel level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsReplicaGetInfoRequest *req, */
+/* IDL: [out] [ref] drsuapi_DsReplicaInfoType *info_type, */
+/* IDL: [out] [ref] [switch_is(*info_type)] drsuapi_DsReplicaInfo *info */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsReplicaGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsReplicaGetInfo";
+       offset = drsuapi_dissect_element_DsReplicaGetInfo_info_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsReplicaGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsReplicaGetInfo";
+       offset = drsuapi_dissect_element_DsReplicaGetInfo_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsReplicaGetInfo_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR DRSUAPI_ADD_SID_HISTORY( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DRSUAPI_ADD_SID_HISTORY";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DRSUAPI_ADD_SID_HISTORY";
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_DsGetMemberships2Request)",hf_drsuapi_drsuapi_DsGetMemberships2_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetMemberships2Request(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_DsGetMemberships2_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_DsGetMemberships2_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_DsGetMemberships2Ctr)",hf_drsuapi_drsuapi_DsGetMemberships2_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_DsGetMemberships2_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_DsGetMemberships2Ctr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_DsGetMemberships2_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_DsGetMemberships2( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_DsGetMemberships2Request *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_DsGetMemberships2Ctr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DsGetMemberships2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsGetMemberships2";
+       offset = drsuapi_dissect_element_DsGetMemberships2_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_DsGetMemberships2_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DsGetMemberships2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsGetMemberships2";
+       offset = drsuapi_dissect_element_DsGetMemberships2_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetMemberships2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_DsGetMemberships2_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR DRSUAPI_REPLICA_VERIFY_OBJECTS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DRSUAPI_REPLICA_VERIFY_OBJECTS";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DRSUAPI_REPLICA_VERIFY_OBJECTS";
+       return offset;
+}
+
+/* IDL: WERROR DRSUAPI_GET_OBJECT_EXISTENCE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DRSUAPI_GET_OBJECT_EXISTENCE";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DRSUAPI_GET_OBJECT_EXISTENCE";
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_bind_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCost_bind_handle_, NDR_POINTER_REF, "Pointer to Bind Handle (policy_handle)",hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_bind_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCost_level, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCost_req_, NDR_POINTER_REF, "Pointer to Req (drsuapi_QuerySitesByCostRequest)",hf_drsuapi_drsuapi_QuerySitesByCost_req);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_QuerySitesByCostRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCost_req, *0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCost_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_drsuapi_drsuapi_QuerySitesByCost_level_out);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCost_level_out, 0);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_element_QuerySitesByCost_ctr_, NDR_POINTER_REF, "Pointer to Ctr (drsuapi_QuerySitesByCostCtr)",hf_drsuapi_drsuapi_QuerySitesByCost_ctr);
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_element_QuerySitesByCost_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = drsuapi_dissect_QuerySitesByCostCtr(tvb, offset, pinfo, tree, drep, hf_drsuapi_drsuapi_QuerySitesByCost_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR drsuapi_QuerySitesByCost( */
+/* IDL: [ref] [in] policy_handle *bind_handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] drsuapi_QuerySitesByCostRequest *req, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] drsuapi_QuerySitesByCostCtr *ctr */
+/* IDL: ); */
+
+static int
+drsuapi_dissect_QuerySitesByCost_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QuerySitesByCost";
+       offset = drsuapi_dissect_element_QuerySitesByCost_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = drsuapi_dissect_element_QuerySitesByCost_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+drsuapi_dissect_QuerySitesByCost_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QuerySitesByCost";
+       offset = drsuapi_dissect_element_QuerySitesByCost_bind_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_QuerySitesByCost_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = drsuapi_dissect_element_QuerySitesByCost_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector drsuapi_dissectors[] = {
+       { 0, "DsBind",
+          drsuapi_dissect_DsBind_request, drsuapi_dissect_DsBind_response},
+       { 1, "DsUnbind",
+          drsuapi_dissect_DsUnbind_request, drsuapi_dissect_DsUnbind_response},
+       { 2, "DsReplicaSync",
+          drsuapi_dissect_DsReplicaSync_request, drsuapi_dissect_DsReplicaSync_response},
+       { 3, "DsGetNCChanges",
+          drsuapi_dissect_DsGetNCChanges_request, drsuapi_dissect_DsGetNCChanges_response},
+       { 4, "DsReplicaUpdateRefs",
+          drsuapi_dissect_DsReplicaUpdateRefs_request, drsuapi_dissect_DsReplicaUpdateRefs_response},
+       { 5, "DsReplicaAdd",
+          drsuapi_dissect_DsReplicaAdd_request, drsuapi_dissect_DsReplicaAdd_response},
+       { 6, "DsReplicaDel",
+          drsuapi_dissect_DsReplicaDel_request, drsuapi_dissect_DsReplicaDel_response},
+       { 7, "DsReplicaMod",
+          drsuapi_dissect_DsReplicaMod_request, drsuapi_dissect_DsReplicaMod_response},
+       { 8, "DRSUAPI_VERIFY_NAMES",
+          drsuapi_dissect_DRSUAPI_VERIFY_NAMES_request, drsuapi_dissect_DRSUAPI_VERIFY_NAMES_response},
+       { 9, "DsGetMemberships",
+          drsuapi_dissect_DsGetMemberships_request, drsuapi_dissect_DsGetMemberships_response},
+       { 10, "DRSUAPI_INTER_DOMAIN_MOVE",
+          drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_request, drsuapi_dissect_DRSUAPI_INTER_DOMAIN_MOVE_response},
+       { 11, "DsGetNT4ChangeLog",
+          drsuapi_dissect_DsGetNT4ChangeLog_request, drsuapi_dissect_DsGetNT4ChangeLog_response},
+       { 12, "DsCrackNames",
+          drsuapi_dissect_DsCrackNames_request, drsuapi_dissect_DsCrackNames_response},
+       { 13, "DsWriteAccountSpn",
+          drsuapi_dissect_DsWriteAccountSpn_request, drsuapi_dissect_DsWriteAccountSpn_response},
+       { 14, "DsRemoveDSServer",
+          drsuapi_dissect_DsRemoveDSServer_request, drsuapi_dissect_DsRemoveDSServer_response},
+       { 15, "DRSUAPI_REMOVE_DS_DOMAIN",
+          drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_request, drsuapi_dissect_DRSUAPI_REMOVE_DS_DOMAIN_response},
+       { 16, "DsGetDomainControllerInfo",
+          drsuapi_dissect_DsGetDomainControllerInfo_request, drsuapi_dissect_DsGetDomainControllerInfo_response},
+       { 17, "DsAddEntry",
+          drsuapi_dissect_DsAddEntry_request, drsuapi_dissect_DsAddEntry_response},
+       { 18, "DsExecuteKCC",
+          drsuapi_dissect_DsExecuteKCC_request, drsuapi_dissect_DsExecuteKCC_response},
+       { 19, "DsReplicaGetInfo",
+          drsuapi_dissect_DsReplicaGetInfo_request, drsuapi_dissect_DsReplicaGetInfo_response},
+       { 20, "DRSUAPI_ADD_SID_HISTORY",
+          drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_request, drsuapi_dissect_DRSUAPI_ADD_SID_HISTORY_response},
+       { 21, "DsGetMemberships2",
+          drsuapi_dissect_DsGetMemberships2_request, drsuapi_dissect_DsGetMemberships2_response},
+       { 22, "DRSUAPI_REPLICA_VERIFY_OBJECTS",
+          drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_request, drsuapi_dissect_DRSUAPI_REPLICA_VERIFY_OBJECTS_response},
+       { 23, "DRSUAPI_GET_OBJECT_EXISTENCE",
+          drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_request, drsuapi_dissect_DRSUAPI_GET_OBJECT_EXISTENCE_response},
+       { 24, "QuerySitesByCost",
+          drsuapi_dissect_QuerySitesByCost_request, drsuapi_dissect_QuerySitesByCost_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_drsuapi(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_drsuapi_drsuapi_DsReplica06_u7,
+         { "U7", "drsuapi.drsuapi_DsReplica06.u7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_guid,
+         { "Dest Dsa Guid", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.dest_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr3_count,
+         { "Count", "drsuapi.drsuapi_DsGetDCInfoCtr3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO,
+         { "Drsuapi Supported Extension Get Repl Info", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_serial_num,
+         { "Serial Num", "drsuapi.drsuapi_DsReplicaOp.serial_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_object_dn,
+         { "Object Dn", "drsuapi.drsuapi_DsReplicaGetInfoRequest1.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_neighbours,
+         { "Neighbours", "drsuapi.drsuapi_DsReplicaInfo.neighbours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfoCtr___ndr_length,
+         { "  Ndr Length", "drsuapi.drsuapi_DsBindInfoCtr.__ndr_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_enumeration_context,
+         { "Enumeration Context", "drsuapi.drsuapi_DsReplicaObjMetaData2Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT,
+         { "Drsuapi Drs Sync Urgent", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_URGENT", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_URGENT_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC,
+         { "Drsuapi Drs Disable Auto Sync", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_DISABLE_AUTO_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_AUTO_SYNC_tfs), ( 0x04000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfo_info_type,
+         { "Info Type", "drsuapi.drsuapi_DsReplicaGetInfo.info_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaInfoType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_guid,
+         { "Transport Obj Guid", "drsuapi.drsuapi_DsReplicaNeighbour.transport_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_problem,
+         { "Problem", "drsuapi.drsuapi_DsAddEntryCtr2.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_transport_dn,
+         { "Transport Dn", "drsuapi.drsuapi_DsReplicaAddRequest2.transport_dn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameCtr1_array,
+         { "Array", "drsuapi.drsuapi_DsNameCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_binary,
+         { "Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts_,
+         { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr6.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsAddEntry.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2_highest_usn,
+         { "Highest Usn", "drsuapi.drsuapi_DsReplicaCursor2.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_old_highwatermark,
+         { "Old Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr1.old_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDel_req,
+         { "Req", "drsuapi.drsuapi_DsReplicaDel.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_extended_op,
+         { "Extended Op", "drsuapi.drsuapi_DsGetNCChangesRequest10.extended_op", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedOperation_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest1_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsReplicaAddRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_u4,
+         { "U4", "drsuapi.drsuapi_DsReplica06.u4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_flags,
+         { "Flags", "drsuapi.drsuapi_DsGetMembershipsRequest1.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOIDMapping_oid,
+         { "Oid", "drsuapi.drsuapi_DsReplicaOIDMapping.oid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_werror,
+         { "Windows Error", "drsuapi.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesCtr1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts,
+         { "Ts", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr1.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_meta_data_ctr,
+         { "Meta Data Ctr", "drsuapi.drsuapi_DsReplicaObjectListItemEx.meta_data_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCC_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsExecuteKCC.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaCursor2Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOpCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaOpCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_is_enabled,
+         { "Is Enabled", "drsuapi.drsuapi_DsGetDCInfo3.is_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_site_name,
+         { "Site Name", "drsuapi.drsuapi_DsGetDCInfo1.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_u2,
+         { "U2", "drsuapi.drsuapi_DsReplicaConnection04.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_info_array,
+         { "Info Array", "drsuapi.drsuapi_DsGetMembershipsRequest1.info_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplicaObjMetaDataCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItem_next_object,
+         { "Next Object", "drsuapi.drsuapi_DsReplicaObjectListItem.next_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOpCtr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaOpCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_dns,
+         { "Source Dsa Dns", "drsuapi.drsuapi_DsReplicaSyncRequest1.source_dsa_dns", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved2,
+         { "Reserved2", "drsuapi.drsuapi_DsReplicaCursorCtrEx.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved1,
+         { "Reserved1", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_object_count,
+         { "Max Object Count", "drsuapi.drsuapi_DsGetNCChangesRequest5.max_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefs_level,
+         { "Level", "drsuapi.drsuapi_DsReplicaUpdateRefs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsUnbind_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsUnbind.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo48_repl_epoch,
+         { "Repl Epoch", "drsuapi.drsuapi_DsBindInfo48.repl_epoch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDelRequest1_source_dsa_address,
+         { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaDelRequest1.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6,
+         { "Drsuapi Supported Extension Getchgreq V6", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3_highest_usn,
+         { "Highest Usn", "drsuapi.drsuapi_DsReplicaCursor3.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaAttrValMetaDataCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_server_dn,
+         { "Server Dn", "drsuapi.drsuapi_DsGetDCInfo2.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_obj_guid,
+         { "Naming Context Obj Guid", "drsuapi.drsuapi_DsReplicaNeighbour.naming_context_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_enumeration_context,
+         { "Enumeration Context", "drsuapi.drsuapi_DsReplicaCursor3Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_refer,
+         { "Refer", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.refer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_req,
+         { "Req", "drsuapi.drsuapi_DsAddEntry.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfoCtr_length,
+         { "Length", "drsuapi.drsuapi_DsBindInfoCtr.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_info24,
+         { "Info24", "drsuapi.drsuapi_DsBindInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCC1_taskID,
+         { "Taskid", "drsuapi.drsuapi_DsExecuteKCC1.taskID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_level,
+         { "Level", "drsuapi.drsuapi_DsAddEntry.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_first,
+         { "First", "drsuapi.drsuapi_DsAddEntryErrorInfo_Attr_V1.first", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpn_level,
+         { "Level", "drsuapi.drsuapi_DsWriteAccountSpn.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2,
+         { "Drsuapi Supported Extension Reserved Part2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_mapping_ctr,
+         { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesRequest8.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsGetMemberships.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5,
+         { "Drsuapi Supported Extension Getchgreply V5", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5_tfs), ( 0x02000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOpCtr_time,
+         { "Time", "drsuapi.drsuapi_DsReplicaOpCtr.time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaHighWaterMark_reserved_usn,
+         { "Reserved Usn", "drsuapi.drsuapi_DsReplicaHighWaterMark.reserved_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2Request1_num_req,
+         { "Num Req", "drsuapi.drsuapi_DsGetMemberships2Request1.num_req", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_domain,
+         { "Domain", "drsuapi.drsuapi_DsGetMembershipsRequest1.domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaObjMetaDataCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts_,
+         { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2_req,
+         { "Req", "drsuapi.drsuapi_DsGetMemberships2.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr2_count,
+         { "Count", "drsuapi.drsuapi_DsGetDCInfoCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsReplicaModRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_dn,
+         { "Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.dn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsReplicaGetInfoRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo28_site_guid,
+         { "Site Guid", "drsuapi.drsuapi_DsBindInfo28.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY,
+         { "Drsuapi Ds Replica Object Remote Modify", "drsuapi.drsuapi_DsReplicaObjectFlags.DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", FT_BOOLEAN, 32, TFS(&drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_sids,
+         { "Sids", "drsuapi.drsuapi_DsGetMembershipsCtr1.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_group_attrs,
+         { "Group Attrs", "drsuapi.drsuapi_DsGetMembershipsCtr1.group_attrs", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set_ex,
+         { "Partial Attribute Set Ex", "drsuapi.drsuapi_DsGetNCChangesRequest8.partial_attribute_set_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY,
+         { "Drsuapi Drs Critical Only", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_CRITICAL_ONLY", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_CRITICAL_ONLY_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SecBufferDesc_buffers,
+         { "Buffers", "drsuapi.drsuapi_SecBufferDesc.buffers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsCrackNames_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsCrackNames.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_array,
+         { "Array", "drsuapi.drsuapi_DsGetDCConnectionCtr01.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsCrackNames_req,
+         { "Req", "drsuapi.drsuapi_DsCrackNames.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown4,
+         { "Unknown4", "drsuapi.drsuapi_DsGetDCConnection01.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER,
+         { "Drsuapi Ds Replica Object From Master", "drsuapi.drsuapi_DsReplicaObjectFlags.DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", FT_BOOLEAN, 32, TFS(&drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_guid,
+         { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_server_guid,
+         { "Server Guid", "drsuapi.drsuapi_DsGetDCInfo2.server_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_dsid,
+         { "Dsid", "drsuapi.drsuapi_DsAddEntryErrorInfoX.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo_info1,
+         { "Info1", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnResult1_status,
+         { "Status", "drsuapi.drsuapi_DsWriteAccountSpnResult1.status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaCursor3Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChanges_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsGetNCChanges.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_u1,
+         { "U1", "drsuapi.drsuapi_DsReplicaConnection04.u1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06Ctr_array,
+         { "Array", "drsuapi.drsuapi_DsReplica06Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_sid,
+         { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier2.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE,
+         { "Drsuapi Supported Extension Base", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_BASE", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_BASE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_format_flags,
+         { "Format Flags", "drsuapi.drsuapi_DsNameRequest1.format_flags", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFlags_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo28_supported_extensions,
+         { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo28.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_destination_dsa_guid,
+         { "Destination Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesRequest5.destination_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY,
+         { "Drsuapi Drs Local Only", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_LOCAL_ONLY", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_LOCAL_ONLY_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_obj_dn,
+         { "Source Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaCursor3.source_dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest1_source_dsa_address,
+         { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaAddRequest1.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_sid,
+         { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaCursor.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_modify_fields,
+         { "Modify Fields", "drsuapi.drsuapi_DsReplicaModRequest1.modify_fields", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_ndr_size,
+         { "Max Ndr Size", "drsuapi.drsuapi_DsGetNCChangesRequest8.max_ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_partial_attribute_set,
+         { "Partial Attribute Set", "drsuapi.drsuapi_DsGetNCChangesRequest8.partial_attribute_set", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2Request_req1,
+         { "Req1", "drsuapi.drsuapi_DsGetMemberships2Request.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_site_name,
+         { "Site Name", "drsuapi.drsuapi_DsGetDCInfo3.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_local_usn,
+         { "Local Usn", "drsuapi.drsuapi_DsReplicaObjMetaData2.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_u6,
+         { "U6", "drsuapi.drsuapi_DsReplica06.u6", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameInfo1_status,
+         { "Status", "drsuapi.drsuapi_DsNameInfo1.status", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameStatus_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_consecutive_sync_failures,
+         { "Consecutive Sync Failures", "drsuapi.drsuapi_DsReplicaNeighbour.consecutive_sync_failures", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE,
+         { "Drsuapi Ds Linked Attribute Flag Active", "drsuapi.drsuapi_DsLinkedAttributeFlags.DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", FT_BOOLEAN, 32, TFS(&drsuapi_DsLinkedAttributeFlags_DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_uptodateness_vector,
+         { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesRequest5.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostCtr1_flags_reserved,
+         { "Flags Reserved", "drsuapi.drsuapi_QuerySitesByCostCtr1.flags_reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SecBuffer_buf_type,
+         { "Buf Type", "drsuapi.drsuapi_SecBuffer.buf_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_SecBufferType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS,
+         { "Drsuapi Drs Update Address", "drsuapi.drsuapi_DrsUpdate.DRSUAPI_DRS_UPDATE_ADDRESS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_ADDRESS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaConnection04Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsGetDomainControllerInfo.level_out", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_uptodateness_vector,
+         { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesCtr1.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2_last_sync_success,
+         { "Last Sync Success", "drsuapi.drsuapi_DsReplicaCursor2.last_sync_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_cursors2,
+         { "Cursors2", "drsuapi.drsuapi_DsReplicaInfo.cursors2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_tmp_highest_usn,
+         { "Tmp Highest Usn", "drsuapi.drsuapi_DsReplicaNeighbour.tmp_highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMod_req,
+         { "Req", "drsuapi.drsuapi_DsReplicaMod.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSync_level,
+         { "Level", "drsuapi.drsuapi_DsReplicaSync.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAdd_req,
+         { "Req", "drsuapi.drsuapi_DsReplicaAdd.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsCrackNames_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsCrackNames.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServer_level,
+         { "Level", "drsuapi.drsuapi_DsRemoveDSServer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData_local_usn,
+         { "Local Usn", "drsuapi.drsuapi_DsReplicaObjMetaData.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCost_req,
+         { "Req", "drsuapi.drsuapi_QuerySitesByCost.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_address,
+         { "Remote Dsa Address", "drsuapi.drsuapi_DsReplicaOp.remote_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN,
+         { "Drsuapi Drs Ref Gcspn", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_REF_GCSPN", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_REF_GCSPN_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_site_guid,
+         { "Site Guid", "drsuapi.drsuapi_DsGetDCInfo3.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_extended_ret,
+         { "Extended Ret", "drsuapi.drsuapi_DsGetNCChangesCtr1.extended_ret", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedError_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData___ndr_size_binary,
+         { "  Ndr Size Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData.__ndr_size_binary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr3_id,
+         { "Id", "drsuapi.drsuapi_DsAddEntryCtr3.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_compressed_length,
+         { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServer_req,
+         { "Req", "drsuapi.drsuapi_DsRemoveDSServer.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_attribute_name,
+         { "Attribute Name", "drsuapi.drsuapi_DsReplicaObjMetaData2.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_binary,
+         { "Binary", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest_req10,
+         { "Req10", "drsuapi.drsuapi_DsGetNCChangesRequest.req10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_is_enabled,
+         { "Is Enabled", "drsuapi.drsuapi_DsGetDCInfo2.is_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_guid,
+         { "Source Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesCtr6.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOID_length,
+         { "Length", "drsuapi.drsuapi_DsReplicaOID.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_dn,
+         { "  Ndr Size Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier.__ndr_size_dn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_err_data,
+         { "Err Data", "drsuapi.drsuapi_DsAddEntry_AttrErrListItem_V1.err_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsSiteCostInfo_error_code,
+         { "Error Code", "drsuapi.drsuapi_DsSiteCostInfo.error_code", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_err,
+         { "Extended Err", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaNeighbourCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr3_objects,
+         { "Objects", "drsuapi.drsuapi_DsAddEntryCtr3.objects", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_serial_number,
+         { "Builtin Serial Number", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.builtin_serial_number", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_is_enabled,
+         { "Is Enabled", "drsuapi.drsuapi_DsGetDCInfo1.is_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_referral_err,
+         { "Referral Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.referral_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_highwatermark,
+         { "Highwatermark", "drsuapi.drsuapi_DsGetNCChangesRequest10.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL,
+         { "Drsuapi Drs Sync All", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_ALL", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_ALL_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_replica_flags,
+         { "Replica Flags", "drsuapi.drsuapi_DsReplicaModRequest1.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_highwatermark,
+         { "Highwatermark", "drsuapi.drsuapi_DsGetNCChangesRequest5.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaAttrValMetaData2Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_last_result,
+         { "Last Result", "drsuapi.drsuapi_DsReplicaKccDsaFailure.last_result", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_id_target,
+         { "Id Target", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.id_target", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts_,
+         { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_builtin_creation_time,
+         { "Builtin Creation Time", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.builtin_creation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_creation_time,
+         { "Sam Creation Time", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.sam_creation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_format_offered,
+         { "Format Offered", "drsuapi.drsuapi_DsNameRequest1.format_offered", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFormat_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_schedule,
+         { "Schedule", "drsuapi.drsuapi_DsReplicaModRequest1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest8.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_value,
+         { "Value", "drsuapi.drsuapi_DsReplicaLinkedAttribute.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsAddEntry.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsGetNT4ChangeLog.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_opnum,
+         { "Operation", "drsuapi.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_deleted,
+         { "Deleted", "drsuapi.drsuapi_DsReplicaAttrValMetaData.deleted", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2_level,
+         { "Level", "drsuapi.drsuapi_DsGetMemberships2.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttributeCtr_attributes,
+         { "Attributes", "drsuapi.drsuapi_DsReplicaAttributeCtr.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_repsto,
+         { "Repsto", "drsuapi.drsuapi_DsReplicaInfo.repsto", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_err,
+         { "Extended Err", "drsuapi.drsuapi_DsAddEntryErrorInfoX.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_object_dn,
+         { "Object Dn", "drsuapi.drsuapi_DsReplicaAttrValMetaData.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_computer_guid,
+         { "Computer Guid", "drsuapi.drsuapi_DsGetDCInfo3.computer_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_info,
+         { "Info", "drsuapi.drsuapi_DsGetNT4ChangeLog.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown5,
+         { "Unknown5", "drsuapi.drsuapi_DsGetDCConnection01.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC,
+         { "Drsuapi Drs Per Sync", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_PER_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_PER_SYNC_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaHighWaterMark_highest_usn,
+         { "Highest Usn", "drsuapi.drsuapi_DsReplicaHighWaterMark.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_num_failures,
+         { "Num Failures", "drsuapi.drsuapi_DsReplicaKccDsaFailure.num_failures", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsCrackNames_level,
+         { "Level", "drsuapi.drsuapi_DsCrackNames.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_usn,
+         { "Originating Usn", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3,
+         { "Drsuapi Supported Extension Addentryreply V3", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_server_dn,
+         { "Server Dn", "drsuapi.drsuapi_DsGetDCInfo3.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaNeighbourCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP,
+         { "Drsuapi Drs Nongc Ro Rep", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NONGC_RO_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NONGC_RO_REP_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoRequest1_level,
+         { "Level", "drsuapi.drsuapi_DsGetDCInfoRequest1.level", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_connectfailures,
+         { "Connectfailures", "drsuapi.drsuapi_DsReplicaInfo.connectfailures", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_info24_,
+         { "Subcontext length", "drsuapi.drsuapi_DsBindInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP,
+         { "Drsuapi Drs Writ Rep", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_WRIT_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_WRIT_REP_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDelRequest1_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaDelRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAdd_level,
+         { "Level", "drsuapi.drsuapi_DsReplicaAdd.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND,
+         { "Drsuapi Supported Extension Crypto Bind", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_computer_guid,
+         { "Computer Guid", "drsuapi.drsuapi_DsGetDCInfo2.computer_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr6,
+         { "Ctr6", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_server_dn,
+         { "Server Dn", "drsuapi.drsuapi_DsGetDCInfo1.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra,
+         { "Source Dra", "drsuapi.drsuapi_DsReplicaModRequest1.source_dra", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_service_err,
+         { "Service Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.service_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostCtr1_num_info,
+         { "Num Info", "drsuapi.drsuapi_QuerySitesByCostCtr1.num_info", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_sid,
+         { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_dn,
+         { "Remote Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaOp.remote_dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list,
+         { "Addr List", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.addr_list", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_transport_obj_dn,
+         { "Transport Obj Dn", "drsuapi.drsuapi_DsReplicaNeighbour.transport_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_guid,
+         { "Ntds Guid", "drsuapi.drsuapi_DsGetDCInfo2.ntds_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_names,
+         { "Names", "drsuapi.drsuapi_DsNameRequest1.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDel_level,
+         { "Level", "drsuapi.drsuapi_DsReplicaDel.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_enumeration_context,
+         { "Enumeration Context", "drsuapi.drsuapi_DsReplicaAttrValMetaDataCtr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryRequest2_first_object,
+         { "First Object", "drsuapi.drsuapi_DsAddEntryRequest2.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier2_guid,
+         { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier2.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData_attribute_name,
+         { "Attribute Name", "drsuapi.drsuapi_DsReplicaObjMetaData.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsPartialAttributeSet_attids,
+         { "Attids", "drsuapi.drsuapi_DsPartialAttributeSet.attids", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS,
+         { "Drsuapi Drs Update Flags", "drsuapi.drsuapi_DrsUpdate.DRSUAPI_DRS_UPDATE_FLAGS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_FLAGS_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_originating_add_time,
+         { "Originating Add Time", "drsuapi.drsuapi_DsReplicaLinkedAttribute.originating_add_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_dsid,
+         { "Dsid", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_old_highwatermark,
+         { "Old Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr6.old_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr2,
+         { "Ctr2", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS,
+         { "Drsuapi Drs Sync Pas", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_PAS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_PAS_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_extended_ret,
+         { "Extended Ret", "drsuapi.drsuapi_DsGetNCChangesCtr6.extended_ret", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedError_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_pendingops,
+         { "Pendingops", "drsuapi.drsuapi_DsReplicaInfo.pendingops", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2,
+         { "Drsuapi Supported Extension Addentry V2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_compressed_length,
+         { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr1.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBind_bind_guid,
+         { "Bind Guid", "drsuapi.drsuapi_DsBind.bind_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesCtr6.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr3_array,
+         { "Array", "drsuapi.drsuapi_DsGetDCInfoCtr3.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr2_mszip1,
+         { "Mszip1", "drsuapi.drsuapi_DsGetNCChangesCtr2.mszip1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK,
+         { "Drsuapi Drs Ref Ok", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_REF_OK", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_REF_OK_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_ndr_size,
+         { "Max Ndr Size", "drsuapi.drsuapi_DsGetNCChangesRequest10.max_ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfo_req,
+         { "Req", "drsuapi.drsuapi_DsReplicaGetInfo.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaAttrValMetaData2Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_memberships,
+         { "Num Memberships", "drsuapi.drsuapi_DsGetMembershipsCtr1.num_memberships", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo24_site_guid,
+         { "Site Guid", "drsuapi.drsuapi_DsBindInfo24.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_meta_data,
+         { "Meta Data", "drsuapi.drsuapi_DsReplicaLinkedAttribute.meta_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaDataCtr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaObjMetaDataCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaCursorCtrEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_dir_err,
+         { "Dir Err", "drsuapi.drsuapi_DsAddEntryCtr2.dir_err", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_DirErr_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_security_err,
+         { "Security Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.security_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCost_level_out,
+         { "Level Out", "drsuapi.drsuapi_QuerySitesByCost.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF,
+         { "Drsuapi Drs Del Ref", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_DEL_REF", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_DEL_REF_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_is_pdc,
+         { "Is Pdc", "drsuapi.drsuapi_DsGetDCInfo3.is_pdc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServer_res,
+         { "Res", "drsuapi.drsuapi_DsRemoveDSServer.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED,
+         { "Drsuapi Drs Preempted", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_PREEMPTED", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_PREEMPTED_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo24_pid,
+         { "Pid", "drsuapi.drsuapi_DsBindInfo24.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr2_array,
+         { "Array", "drsuapi.drsuapi_DsGetDCInfoCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_binary,
+         { "  Ndr Size Binary", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size_binary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_update_err,
+         { "Update Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.update_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC,
+         { "Drsuapi Drs Disable Periodic Sync", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_DISABLE_PERIODIC_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_DISABLE_PERIODIC_SYNC_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_ntds_dn,
+         { "Ntds Dn", "drsuapi.drsuapi_DsGetDCInfo2.ntds_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaObjMetaData.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_ref_type,
+         { "Ref Type", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.ref_type", FT_UINT16, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_RefType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_u2,
+         { "U2", "drsuapi.drsuapi_DsReplica06.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_change_time,
+         { "Originating Change Time", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameCtr1_count,
+         { "Count", "drsuapi.drsuapi_DsNameCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsSiteCostInfo_site_cost,
+         { "Site Cost", "drsuapi.drsuapi_DsSiteCostInfo.site_cost", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServerResult1_last_dc_in_domain,
+         { "Last Dc In Domain", "drsuapi.drsuapi_DsRemoveDSServerResult1.last_dc_in_domain", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtr_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplicaCursorCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING,
+         { "Drsuapi Drs Special Secret Processing", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDelRequest1_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsReplicaDelRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM,
+         { "Drsuapi Supported Extension Adam", "drsuapi.drsuapi_SupportedExtensionsExt.DRSUAPI_SUPPORTED_EXTENSION_ADAM", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_ADAM_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_highwatermark,
+         { "Highwatermark", "drsuapi.drsuapi_DsGetNCChangesRequest8.highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_first_object,
+         { "First Object", "drsuapi.drsuapi_DsGetNCChangesCtr1.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_uptodateness_vector,
+         { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesCtr6.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_site_name,
+         { "Site Name", "drsuapi.drsuapi_DsGetDCInfo2.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsGetDCInfoRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_decompressed_length,
+         { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr6.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_u5,
+         { "U5", "drsuapi.drsuapi_DsReplica06.u5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_fsmo_info,
+         { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest8.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SecBuffer_buffer,
+         { "Buffer", "drsuapi.drsuapi_SecBuffer.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown2,
+         { "Unknown2", "drsuapi.drsuapi_DsGetDCConnection01.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC,
+         { "Drsuapi Drs Get Anc", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GET_ANC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GET_ANC_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_extended_op,
+         { "Extended Op", "drsuapi.drsuapi_DsGetNCChangesRequest8.extended_op", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedOperation_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_source_dsa_guid,
+         { "Source Dsa Guid", "drsuapi.drsuapi_DsReplicaSyncRequest1.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2___ndr_size_binary,
+         { "  Ndr Size Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.__ndr_size_binary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_problem,
+         { "Problem", "drsuapi.drsuapi_DsAddEntryErrorInfoX.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK,
+         { "Drsuapi Drs Getchg Check", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GETCHG_CHECK", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GETCHG_CHECK_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_count,
+         { "Count", "drsuapi.drsuapi_DsAddEntryErrorInfo_Attr_V1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_first_object,
+         { "First Object", "drsuapi.drsuapi_DsGetNCChangesCtr6.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_cursors,
+         { "Cursors", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsReplicaAddRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01,
+         { "Drsuapi Supported Extension Dcinfo V01", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_object_dn,
+         { "Object Dn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_level,
+         { "Level", "drsuapi.drsuapi_DsGetDomainControllerInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_info28_,
+         { "Subcontext length", "drsuapi.drsuapi_DsBindInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_usn,
+         { "Originating Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_err,
+         { "Extended Err", "drsuapi.drsuapi_DsAddEntryCtr2.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_sid,
+         { "  Ndr Size Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.__ndr_size_sid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_local_usn,
+         { "Local Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_bind_guid,
+         { "Bind Guid", "drsuapi.drsuapi_DsReplicaConnection04.bind_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplicaKccDsaFailuresCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_count,
+         { "Count", "drsuapi.drsuapi_DsAddEntryCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_id_matched,
+         { "Id Matched", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.id_matched", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsReplicaAddRequest2.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION,
+         { "Drsuapi Supported Extension Restore Usn Optimization", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBind_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsBind.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06Ctr_count,
+         { "Count", "drsuapi.drsuapi_DsReplica06Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_deleted,
+         { "Deleted", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.deleted", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_info48_,
+         { "Subcontext length", "drsuapi.drsuapi_DsBindInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaAttrValMetaDataCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_value_dn_str,
+         { "Value Dn Str", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.value_dn_str", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObject_identifier,
+         { "Identifier", "drsuapi.drsuapi_DsReplicaObject.identifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6___ndr_size,
+         { "  Ndr Size", "drsuapi.drsuapi_DsGetNCChangesCtr6.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION,
+         { "Drsuapi Ds Execute Kcc Asynchronous Operation", "drsuapi.drsuapi_DsExecuteKCCFlags.DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32, TFS(&drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_computer_dn,
+         { "Computer Dn", "drsuapi.drsuapi_DsGetDCInfo2.computer_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_address,
+         { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaAddRequest2.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_usn,
+         { "Originating Usn", "drsuapi.drsuapi_DsReplicaObjMetaData.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_ts_,
+         { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr1.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress1,
+         { "Xpress1", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.xpress1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6_,
+         { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesCtr6TS.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata2,
+         { "Attrvalmetadata2", "drsuapi.drsuapi_DsReplicaInfo.attrvalmetadata2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfoCtr_info,
+         { "Info", "drsuapi.drsuapi_DsBindInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsaAddressListItem_V1_address,
+         { "Address", "drsuapi.drsuapi_DsaAddressListItem_V1.address", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDel_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsReplicaDel.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_is_gc,
+         { "Is Gc", "drsuapi.drsuapi_DsGetDCInfo3.is_gc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip1,
+         { "Mszip1", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.mszip1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes,
+         { "Linked Attributes", "drsuapi.drsuapi_DsGetNCChangesCtr6.linked_attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_str1,
+         { "Str1", "drsuapi.drsuapi_DsReplica06.str1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaConnection04Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2,
+         { "Drsuapi Supported Extension Lh Beta2", "drsuapi.drsuapi_SupportedExtensionsExt.DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_enumeration_context,
+         { "Enumeration Context", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_info_type,
+         { "Info Type", "drsuapi.drsuapi_DsReplicaGetInfoRequest1.info_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaInfoType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_invocation_id,
+         { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_is_gc,
+         { "Is Gc", "drsuapi.drsuapi_DsGetDCInfo2.is_gc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION,
+         { "Drsuapi Drs Use Compression", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_USE_COMPRESSION", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_USE_COMPRESSION_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE,
+         { "Drsuapi Drs Get Nc Size", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GET_NC_SIZE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GET_NC_SIZE_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_u5,
+         { "U5", "drsuapi.drsuapi_DsReplicaConnection04.u5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_data,
+         { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.restart_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC,
+         { "Drsuapi Drs Init Sync", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_INIT_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCCRequest_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsExecuteKCCRequest.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsGetMembershipsRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpn_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsWriteAccountSpn.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set,
+         { "Partial Attribute Set", "drsuapi.drsuapi_DsGetNCChangesRequest10.partial_attribute_set", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_flags,
+         { "Flags", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE,
+         { "Drsuapi Drs Sync Requeue", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_REQUEUE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_REQUEUE_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo28_repl_epoch,
+         { "Repl Epoch", "drsuapi.drsuapi_DsBindInfo28.repl_epoch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_problem,
+         { "Problem", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_decompressed_length,
+         { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_partial_attribute_set_ex,
+         { "Partial Attribute Set Ex", "drsuapi.drsuapi_DsGetNCChangesRequest10.partial_attribute_set_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_count,
+         { "Count", "drsuapi.drsuapi_DsNameRequest1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN,
+         { "Drsuapi Supported Extension Recycle Bin", "drsuapi.drsuapi_SupportedExtensionsExt.DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensionsExt_DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_operation_start,
+         { "Operation Start", "drsuapi.drsuapi_DsReplicaOp.operation_start", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC,
+         { "Drsuapi Drs Twoway Sync", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_TWOWAY_SYNC", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_TWOWAY_SYNC_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSync_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsReplicaSync.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_object,
+         { "Object", "drsuapi.drsuapi_DsReplicaObjectListItemEx.object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaModRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostCtr1_info,
+         { "Info", "drsuapi.drsuapi_QuerySitesByCostCtr1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbourCtr_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplicaNeighbourCtr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8,
+         { "Drsuapi Supported Extension Getchgreq V8", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_dn,
+         { "Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaKccDsaFailure.dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCC1_flags,
+         { "Flags", "drsuapi.drsuapi_DsExecuteKCC1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsAddEntry.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships_level,
+         { "Level", "drsuapi.drsuapi_DsGetMemberships.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplicaNeighbour.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_nc_obj_guid,
+         { "Nc Obj Guid", "drsuapi.drsuapi_DsReplicaOp.nc_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_language,
+         { "Language", "drsuapi.drsuapi_DsNameRequest1.language", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_more_data,
+         { "More Data", "drsuapi.drsuapi_DsGetNCChangesCtr1.more_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_dn,
+         { "Source Dsa Obj Dn", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_obj_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_req,
+         { "Req", "drsuapi.drsuapi_DsGetDomainControllerInfo.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET,
+         { "Drsuapi Drs Full Sync Packet", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_FULL_SYNC_PACKET", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_PACKET_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW,
+         { "Drsuapi Drs Full Sync Now", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_FULL_SYNC_NOW", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_NOW_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS,
+         { "Drsuapi Supported Extension Getchg Compress", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_mappings,
+         { "Mappings", "drsuapi.drsuapi_DsReplicaOIDMapping_Ctr.mappings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsReplicaModRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_next,
+         { "Next", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAdd_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsReplicaAdd.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_clientctx,
+         { "Clientctx", "drsuapi.drsuapi_DsReplicaInfo.clientctx", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaObjMetaData2.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS,
+         { "Drsuapi Supported Extension Xpress Compress", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3,
+         { "Drsuapi Supported Extension Reserved Part3", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaObjMetaData2Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_mapping_ctr,
+         { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesCtr1.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameString_str,
+         { "Str", "drsuapi.drsuapi_DsNameString.str", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships_req,
+         { "Req", "drsuapi.drsuapi_DsGetMemberships.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_data,
+         { "Log Data", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.log_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_data,
+         { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1___ndr_size,
+         { "  Ndr Size", "drsuapi.drsuapi_DsGetNCChangesCtr1.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpn_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsWriteAccountSpn.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_invocation_id,
+         { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaAttrValMetaData.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_priority,
+         { "Priority", "drsuapi.drsuapi_DsReplicaOp.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2,
+         { "Drsuapi Supported Extension Dcinfo V2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_Fallback,
+         { "Fallback", "drsuapi.drsuapi_DsBindInfo.Fallback", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest10.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_cursors3,
+         { "Cursors3", "drsuapi.drsuapi_DsReplicaInfo.cursors3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_computer_dn,
+         { "Computer Dn", "drsuapi.drsuapi_DsGetDCInfo1.computer_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesRequest8.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_ts,
+         { "Ts", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr6.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2CtrEx_reserved2,
+         { "Reserved2", "drsuapi.drsuapi_DsReplicaCursor2CtrEx.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_system_err,
+         { "System Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.system_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObject_flags,
+         { "Flags", "drsuapi.drsuapi_DsReplicaObject.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_preferred_maximum_length,
+         { "Preferred Maximum Length", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.preferred_maximum_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_length,
+         { "Restart Length", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.restart_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_dns_name,
+         { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo3.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr3,
+         { "Ctr3", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaObjMetaData2Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1,
+         { "Drsuapi Supported Extension Dcinfo V1", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_count,
+         { "Count", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE,
+         { "Drsuapi Drs Update Schedule", "drsuapi.drsuapi_DrsUpdate.DRSUAPI_DRS_UPDATE_SCHEDULE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsUpdate_DRSUAPI_DRS_UPDATE_SCHEDULE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_udv1,
+         { "Udv1", "drsuapi.drsuapi_DsReplicaInfo.udv1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_sam_serial_number,
+         { "Sam Serial Number", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.sam_serial_number", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04Ctr_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplicaConnection04Ctr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_identifier,
+         { "Identifier", "drsuapi.drsuapi_DsReplicaLinkedAttribute.identifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_info_array,
+         { "Info Array", "drsuapi.drsuapi_DsGetMembershipsCtr1.info_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_attribute_name,
+         { "Attribute Name", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3_last_sync_success,
+         { "Last Sync Success", "drsuapi.drsuapi_DsReplicaCursor3.last_sync_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_server_dn,
+         { "Server Dn", "drsuapi.drsuapi_DsRemoveDSServerRequest1.server_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameCtr_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsNameCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnectionCtr01_count,
+         { "Count", "drsuapi.drsuapi_DsGetDCConnectionCtr01.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest_req5,
+         { "Req5", "drsuapi.drsuapi_DsGetNCChangesRequest.req5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_is_pdc,
+         { "Is Pdc", "drsuapi.drsuapi_DsGetDCInfo2.is_pdc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMetaData_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaMetaData.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_is_nc_prefix,
+         { "Is Nc Prefix", "drsuapi.drsuapi_DsReplicaObjectListItemEx.is_nc_prefix", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr_num_mappings,
+         { "Num Mappings", "drsuapi.drsuapi_DsReplicaOIDMapping_Ctr.num_mappings", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr_ctr2,
+         { "Ctr2", "drsuapi.drsuapi_DsAddEntryCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAttributeValue___ndr_size,
+         { "  Ndr Size", "drsuapi.drsuapi_DsAttributeValue.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMod_level,
+         { "Level", "drsuapi.drsuapi_DsReplicaMod.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION,
+         { "Drsuapi Drs Update Notification", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_UPDATE_NOTIFICATION", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_UPDATE_NOTIFICATION_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata2,
+         { "Objmetadata2", "drsuapi.drsuapi_DsReplicaInfo.objmetadata2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_type,
+         { "Type", "drsuapi.drsuapi_DsGetMembershipsRequest1.type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsMembershipType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions_ext,
+         { "Supported Extensions Ext", "drsuapi.drsuapi_DsBindInfo48.supported_extensions_ext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_srvoutgoingcalls,
+         { "Srvoutgoingcalls", "drsuapi.drsuapi_DsReplicaInfo.srvoutgoingcalls", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfo_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsReplicaGetInfo.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAttributeValue_blob,
+         { "Blob", "drsuapi.drsuapi_DsAttributeValue.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_name_err,
+         { "Name Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.name_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaKccDsaFailuresCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_next_object,
+         { "Next Object", "drsuapi.drsuapi_DsReplicaObjectListItemEx.next_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr_ctr3,
+         { "Ctr3", "drsuapi.drsuapi_DsAddEntryCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameInfo1_dns_domain_name,
+         { "Dns Domain Name", "drsuapi.drsuapi_DsNameInfo1.dns_domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_invocation_id,
+         { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest_req2,
+         { "Req2", "drsuapi.drsuapi_DsReplicaAddRequest.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr_enumeration_context,
+         { "Enumeration Context", "drsuapi.drsuapi_DsReplicaAttrValMetaData2Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME,
+         { "Drsuapi Drs Sync Byname", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_BYNAME", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_BYNAME_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_object_count,
+         { "Object Count", "drsuapi.drsuapi_DsGetNCChangesCtr1.object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_guid,
+         { "Source Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesCtr1.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3Ctr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaCursor3Ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_max_object_count,
+         { "Max Object Count", "drsuapi.drsuapi_DsGetNCChangesRequest10.max_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefs_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsReplicaUpdateRefs.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_u1,
+         { "U1", "drsuapi.drsuapi_DsReplica06.u1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_netbios_name,
+         { "Netbios Name", "drsuapi.drsuapi_DsGetDCInfo3.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_replica_flags,
+         { "Replica Flags", "drsuapi.drsuapi_DsReplicaNeighbour.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaCursorCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_dest_dsa_dns_name,
+         { "Dest Dsa Dns Name", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.dest_dsa_dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_domain_dn,
+         { "Domain Dn", "drsuapi.drsuapi_DsRemoveDSServerRequest1.domain_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_dns_name,
+         { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo2.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_dn,
+         { "Ntds Dn", "drsuapi.drsuapi_DsGetDCInfo3.ntds_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD,
+         { "Drsuapi Supported Extension Instance Type Not Req On Mod", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnResult_res1,
+         { "Res1", "drsuapi.drsuapi_DsWriteAccountSpnResult.res1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_cursors,
+         { "Cursors", "drsuapi.drsuapi_DsReplicaCursorCtrEx.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCost_ctr,
+         { "Ctr", "drsuapi.drsuapi_QuerySitesByCost.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_usn,
+         { "Originating Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size,
+         { "  Ndr Size", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY,
+         { "Drsuapi Supported Extension Add Sid History", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsGetMemberships.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attid,
+         { "Attid", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.attid", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC,
+         { "Drsuapi Ds Replica Object Dynamic", "drsuapi.drsuapi_DsReplicaObjectFlags.DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", FT_BOOLEAN, 32, TFS(&drsuapi_DsReplicaObjectFlags_DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2Request1_req_array,
+         { "Req Array", "drsuapi.drsuapi_DsGetMemberships2Request1.req_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsGetMemberships2.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_last_attempt,
+         { "Last Attempt", "drsuapi.drsuapi_DsReplicaNeighbour.last_attempt", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_attid,
+         { "Attid", "drsuapi.drsuapi_DsReplicaLinkedAttribute.attid", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6_ts,
+         { "Ts", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr6.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10,
+         { "Drsuapi Supported Extension Getchgreq V10", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI,
+         { "Drsuapi Supported Extension Removeapi", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesCtr1.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_ts,
+         { "Ts", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.ts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr7_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsGetNCChangesCtr7.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsGetNCChangesCtr1TS.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_computer_dn,
+         { "Computer Dn", "drsuapi.drsuapi_DsGetDCInfo3.computer_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_level,
+         { "Level", "drsuapi.drsuapi_DsGetNT4ChangeLog.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsGetMemberships2.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_is_rodc,
+         { "Is Rodc", "drsuapi.drsuapi_DsGetDCInfo3.is_rodc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryRequest3_first_object,
+         { "First Object", "drsuapi.drsuapi_DsAddEntryRequest3.first_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_obj_guid,
+         { "Source Dsa Obj Guid", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr7,
+         { "Ctr7", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsaAddressListItem_V1_next,
+         { "Next", "drsuapi.drsuapi_DsaAddressListItem_V1.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaCursor2Ctr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_extended_err,
+         { "Extended Err", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP,
+         { "Drsuapi Drs Mail Rep", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_MAIL_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_MAIL_REP_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsGetNCChangesRequest5.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_highest_usn,
+         { "Highest Usn", "drsuapi.drsuapi_DsReplicaNeighbour.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsPartialAttributeSet_num_attids,
+         { "Num Attids", "drsuapi.drsuapi_DsPartialAttributeSet.num_attids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_change_time,
+         { "Originating Change Time", "drsuapi.drsuapi_DsReplicaObjMetaData.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_attrvalmetadata,
+         { "Attrvalmetadata", "drsuapi.drsuapi_DsReplicaInfo.attrvalmetadata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_sid,
+         { "  Ndr Size Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size_sid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_uptodateness_vector,
+         { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesRequest10.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsWriteAccountSpnRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServerRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsRemoveDSServerRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_destination_dsa_guid,
+         { "Destination Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesRequest10.destination_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3,
+         { "Drsuapi Supported Extension Post Beta3", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_extended_op,
+         { "Extended Op", "drsuapi.drsuapi_DsGetNCChangesRequest5.extended_op", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsExtendedOperation_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_objects,
+         { "Objects", "drsuapi.drsuapi_DsAddEntryCtr2.objects", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_originating_change_time,
+         { "Originating Change Time", "drsuapi.drsuapi_DsReplicaAttrValMetaData.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3___ndr_size_dn,
+         { "  Ndr Size Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.__ndr_size_dn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_drs_error,
+         { "Drs Error", "drsuapi.drsuapi_DsGetNCChangesCtr6.drs_error", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED,
+         { "Drsuapi Ds Execute Kcc Damped", "drsuapi.drsuapi_DsExecuteKCCFlags.DRSUAPI_DS_EXECUTE_KCC_DAMPED", FT_BOOLEAN, 32, TFS(&drsuapi_DsExecuteKCCFlags_DRSUAPI_DS_EXECUTE_KCC_DAMPED_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest_req2,
+         { "Req2", "drsuapi.drsuapi_DsReplicaGetInfoRequest.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_err,
+         { "Extended Err", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.extended_err", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo48_supported_extensions,
+         { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo48.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChanges_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsGetNCChanges.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_attribute_name,
+         { "Attribute Name", "drsuapi.drsuapi_DsReplicaAttrValMetaData.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_extended_data,
+         { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor3_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaCursor3.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_operation_type,
+         { "Operation Type", "drsuapi.drsuapi_DsReplicaOp.operation_type", FT_UINT1632, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaOpType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoRequest1_domain_name,
+         { "Domain Name", "drsuapi.drsuapi_DsGetDCInfoRequest1.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest1_schedule,
+         { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest1.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryRequest3_client_creds,
+         { "Client Creds", "drsuapi.drsuapi_DsAddEntryRequest3.client_creds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsGetNT4ChangeLog.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_operation,
+         { "Operation", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.operation", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsSpnOperation_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_server_guid,
+         { "Server Guid", "drsuapi.drsuapi_DsGetDCInfo3.server_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_local_usn,
+         { "Local Usn", "drsuapi.drsuapi_DsReplicaAttrValMetaData.local_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr3_err_ver,
+         { "Err Ver", "drsuapi.drsuapi_DsAddEntryCtr3.err_ver", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR,
+         { "Drsuapi Drs Ignore Error", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_IGNORE_ERROR", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_IGNORE_ERROR_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_linkfailures,
+         { "Linkfailures", "drsuapi.drsuapi_DsReplicaInfo.linkfailures", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_info_type,
+         { "Info Type", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.info_type", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaInfoType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaHighWaterMark_tmp_highest_usn,
+         { "Tmp Highest Usn", "drsuapi.drsuapi_DsReplicaHighWaterMark.tmp_highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_info48,
+         { "Info48", "drsuapi.drsuapi_DsBindInfo.info48", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_is_pdc,
+         { "Is Pdc", "drsuapi.drsuapi_DsGetDCInfo1.is_pdc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_dsid,
+         { "Dsid", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_dsa_dn,
+         { "Originating Dsa Dn", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_dsa_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_created,
+         { "Created", "drsuapi.drsuapi_DsReplicaAttrValMetaData.created", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_flags,
+         { "Flags", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_unknown1,
+         { "Unknown1", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_dsa_obj_guid,
+         { "Dsa Obj Guid", "drsuapi.drsuapi_DsReplicaKccDsaFailure.dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_info28,
+         { "Info28", "drsuapi.drsuapi_DsBindInfo.info28", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG,
+         { "Drsuapi Nt4 Changelog Get Changelog", "drsuapi.drsuapi_DsGetNT4ChangeLogFlags.DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG", FT_BOOLEAN, 32, TFS(&drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfoX_extended_data,
+         { "Extended Data", "drsuapi.drsuapi_DsAddEntryErrorInfoX.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2,
+         { "Drsuapi Supported Extension Movereq V2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCC_req,
+         { "Req", "drsuapi.drsuapi_DsExecuteKCC.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_naming_context_dn,
+         { "Naming Context Dn", "drsuapi.drsuapi_DsReplicaNeighbour.naming_context_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2,
+         { "Drsuapi Supported Extension Get Memberships2", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1_decompressed_length,
+         { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr1.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_cursors,
+         { "Cursors", "drsuapi.drsuapi_DsReplicaInfo.cursors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION,
+         { "Drsuapi Supported Extension Async Replication", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_mapping_ctr,
+         { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesRequest10.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailure_first_failure,
+         { "First Failure", "drsuapi.drsuapi_DsReplicaKccDsaFailure.first_failure", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_fsmo_info,
+         { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest10.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo_Fallback_,
+         { "Subcontext length", "drsuapi.drsuapi_DsBindInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_status,
+         { "Status", "drsuapi.drsuapi_DsAddEntry_ErrData_V1.status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLog_req,
+         { "Req", "drsuapi.drsuapi_DsGetNT4ChangeLog.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_address,
+         { "Source Dsa Address", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_created,
+         { "Created", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.created", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY,
+         { "Drsuapi Drs Never Notify", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NEVER_NOTIFY", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_NOTIFY_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo24_supported_extensions,
+         { "Supported Extensions", "drsuapi.drsuapi_DsBindInfo24.supported_extensions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaCursorCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_replica_flags,
+         { "Replica Flags", "drsuapi.drsuapi_DsGetNCChangesRequest5.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_format_desired,
+         { "Format Desired", "drsuapi.drsuapi_DsNameRequest1.format_desired", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsNameFormat_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfoFallBack_info,
+         { "Info", "drsuapi.drsuapi_DsBindInfoFallBack.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAttributeValueCtr_values,
+         { "Values", "drsuapi.drsuapi_DsAttributeValueCtr.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_object_dn,
+         { "Object Dn", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_sid,
+         { "Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_extended_data,
+         { "Extended Data", "drsuapi.drsuapi_DsAddEntryCtr2.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfo_level,
+         { "Level", "drsuapi.drsuapi_DsReplicaGetInfo.level", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsReplicaGetInfoLevel_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_xpress6,
+         { "Xpress6", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.xpress6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsReplicaSyncRequest1.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_netbios_name,
+         { "Netbios Name", "drsuapi.drsuapi_DsGetDCInfo2.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06_u3,
+         { "U3", "drsuapi.drsuapi_DsReplica06.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaLinkedAttribute_flags,
+         { "Flags", "drsuapi.drsuapi_DsReplicaLinkedAttribute.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_spn_names,
+         { "Spn Names", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.spn_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostRequest_req1,
+         { "Req1", "drsuapi.drsuapi_QuerySitesByCostRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAttributeValueCtr_num_values,
+         { "Num Values", "drsuapi.drsuapi_DsAttributeValueCtr.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServerRequest1_commit,
+         { "Commit", "drsuapi.drsuapi_DsRemoveDSServerRequest1.commit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED,
+         { "Drsuapi Drs Sync Forced", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_SYNC_FORCED", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_SYNC_FORCED_tfs), ( 0x02000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItemEx_parent_object_guid,
+         { "Parent Object Guid", "drsuapi.drsuapi_DsReplicaObjectListItemEx.parent_object_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaDelRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsReplicaDelRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsGetDomainControllerInfo.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo48_site_guid,
+         { "Site Guid", "drsuapi.drsuapi_DsBindInfo48.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttribute_value_ctr,
+         { "Value Ctr", "drsuapi.drsuapi_DsReplicaAttribute.value_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr7_level,
+         { "Level", "drsuapi.drsuapi_DsGetNCChangesCtr7.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED,
+         { "Drsuapi Drs Never Synced", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NEVER_SYNCED", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NEVER_SYNCED_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size_sid,
+         { "  Ndr Size Sid", "drsuapi.drsuapi_DsReplicaObjectIdentifier.__ndr_size_sid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_more_data,
+         { "More Data", "drsuapi.drsuapi_DsGetNCChangesCtr6.more_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_NameResOp_V1_name_res,
+         { "Name Res", "drsuapi.drsuapi_NameResOp_V1.name_res", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY,
+         { "Drsuapi Supported Extension Addentry", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_ntds_guid,
+         { "Ntds Guid", "drsuapi.drsuapi_DsGetDCInfo3.ntds_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr_array,
+         { "Array", "drsuapi.drsuapi_DsReplicaKccDsaFailuresCtr.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_meta_data,
+         { "Meta Data", "drsuapi.drsuapi_DsReplicaMetaDataCtr.meta_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_schedule,
+         { "Schedule", "drsuapi.drsuapi_DsReplicaAddRequest2.schedule", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsExecuteKCC_level,
+         { "Level", "drsuapi.drsuapi_DsExecuteKCC.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr_ctr2,
+         { "Ctr2", "drsuapi.drsuapi_DsGetNCChangesCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_client_account,
+         { "Client Account", "drsuapi.drsuapi_DsGetDCConnection01.client_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsCrackNames_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsCrackNames.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SecBufferDesc_buff_count,
+         { "Buff Count", "drsuapi.drsuapi_SecBufferDesc.buff_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSync_req,
+         { "Req", "drsuapi.drsuapi_DsReplicaSync.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplica06Ctr_reserved,
+         { "Reserved", "drsuapi.drsuapi_DsReplica06Ctr.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1_problem,
+         { "Problem", "drsuapi.drsuapi_DsAddEntryErrorInfo_Name_V1.problem", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaCursor2.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION,
+         { "Drsuapi Supported Extension Strong Encryption", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_site_guid,
+         { "Site Guid", "drsuapi.drsuapi_DsGetDCInfo2.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_linked_attributes_count,
+         { "Nc Linked Attributes Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.nc_linked_attributes_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size_dn,
+         { "  Ndr Size Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size_dn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1_id,
+         { "Id", "drsuapi.drsuapi_DsAddEntryErrorInfo_Attr_V1.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpn_req,
+         { "Req", "drsuapi.drsuapi_DsWriteAccountSpn.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsPartialAttributeSet_reserved1,
+         { "Reserved1", "drsuapi.drsuapi_DsPartialAttributeSet.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1_next,
+         { "Next", "drsuapi.drsuapi_DsAddEntry_AttrErrListItem_V1.next", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_restart_length,
+         { "Restart Length", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.restart_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_dir_err,
+         { "Dir Err", "drsuapi.drsuapi_DsAddEntry_ErrData_V1.dir_err", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_DirErr_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfo_info,
+         { "Info", "drsuapi.drsuapi_DsReplicaGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr3_err_data,
+         { "Err Data", "drsuapi.drsuapi_DsAddEntryCtr3.err_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_connection_time,
+         { "Connection Time", "drsuapi.drsuapi_DsGetDCConnection01.connection_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_attr_err,
+         { "Attr Err", "drsuapi.drsuapi_DsAddEntryErrorInfo.attr_err", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_NameResOp_V1_next_rdn,
+         { "Next Rdn", "drsuapi.drsuapi_NameResOp_V1.next_rdn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesRequest5.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2_ctr,
+         { "Ctr", "drsuapi.drsuapi_DsGetMemberships2.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsRequest1_count,
+         { "Count", "drsuapi.drsuapi_DsGetMembershipsRequest1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE,
+         { "Drsuapi Drs No Source", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NO_SOURCE", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NO_SOURCE_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_netbios_name,
+         { "Netbios Name", "drsuapi.drsuapi_DsGetDCInfo1.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_internal,
+         { "Rdn Internal", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.rdn_internal", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_ctrl_array,
+         { "Ctrl Array", "drsuapi.drsuapi_DsGetMemberships2Ctr1.ctrl_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSyncRequest1_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaSyncRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_guid,
+         { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_attr_val,
+         { "Attr Val", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.attr_val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaInfo_objmetadata,
+         { "Objmetadata", "drsuapi.drsuapi_DsReplicaInfo.objmetadata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_bind_time,
+         { "Bind Time", "drsuapi.drsuapi_DsReplicaConnection04.bind_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1_restart_data,
+         { "Restart Data", "drsuapi.drsuapi_DsGetNT4ChangeLogRequest1.restart_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo1_dns_name,
+         { "Dns Name", "drsuapi.drsuapi_DsGetDCInfo1.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_new_highwatermark,
+         { "New Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr6.new_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMetaData_originating_invocation_id,
+         { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaMetaData.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaCursorCtrEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD,
+         { "Drsuapi Drs No Discard", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_NO_DISCARD", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_NO_DISCARD_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_binary,
+         { "Binary", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor_highest_usn,
+         { "Highest Usn", "drsuapi.drsuapi_DsReplicaCursor.highest_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE,
+         { "Drsuapi Supported Extension Kcc Execute", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_u3,
+         { "U3", "drsuapi.drsuapi_DsReplicaConnection04.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData_originating_invocation_id,
+         { "Originating Invocation Id", "drsuapi.drsuapi_DsReplicaObjMetaData.originating_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChanges_req,
+         { "Req", "drsuapi.drsuapi_DsGetNCChanges.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_creation_time,
+         { "Lsa Creation Time", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.lsa_creation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefs_req,
+         { "Req", "drsuapi.drsuapi_DsReplicaUpdateRefs.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_is_choice_set,
+         { "Is Choice Set", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.is_choice_set", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_linked_attributes_count,
+         { "Linked Attributes Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.linked_attributes_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServerResult_res1,
+         { "Res1", "drsuapi.drsuapi_DsRemoveDSServerResult.res1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaSyncRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsReplicaSyncRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo48_config_dn_guid,
+         { "Config Dn Guid", "drsuapi.drsuapi_DsBindInfo48.config_dn_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryRequest_req2,
+         { "Req2", "drsuapi.drsuapi_DsAddEntryRequest.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesRequest10.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_max_ndr_size,
+         { "Max Ndr Size", "drsuapi.drsuapi_DsGetNCChangesRequest5.max_ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttributeCtr_num_attributes,
+         { "Num Attributes", "drsuapi.drsuapi_DsReplicaAttributeCtr.num_attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_mapping_ctr,
+         { "Mapping Ctr", "drsuapi.drsuapi_DsGetNCChangesCtr6.mapping_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpnRequest1_object_dn,
+         { "Object Dn", "drsuapi.drsuapi_DsWriteAccountSpnRequest1.object_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS,
+         { "Drsuapi Supported Extension Nondomain Ncs", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_num_sids,
+         { "Num Sids", "drsuapi.drsuapi_DsGetMembershipsCtr1.num_sids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr7_type,
+         { "Type", "drsuapi.drsuapi_DsGetNCChangesCtr7.type", FT_UINT16, BASE_DEC, VALS(drsuapi_drsuapi_DsGetNCChangesCompressionType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_ErrData_v1,
+         { "V1", "drsuapi.drsuapi_DsAddEntry_ErrData.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaConnection04_client_ip_address,
+         { "Client Ip Address", "drsuapi.drsuapi_DsReplicaConnection04.client_ip_address", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS,
+         { "Drsuapi Drs Full Sync In Progress", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION,
+         { "Drsuapi Supported Extension Linked Value Replication", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP,
+         { "Drsuapi Supported Extension Transitive Membership", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChanges_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsGetNCChanges.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP,
+         { "Drsuapi Drs Get All Group Membership", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_object_count,
+         { "Object Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_to,
+         { "Site To", "drsuapi.drsuapi_QuerySitesByCostRequest1.site_to", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr1_count,
+         { "Count", "drsuapi.drsuapi_DsGetDCInfoCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_extended_data,
+         { "Extended Data", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.extended_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_choice,
+         { "Choice", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.choice", FT_UINT8, BASE_DEC, VALS(drsuapi_drsuapi_DsAddEntry_ChoiceType_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest5_fsmo_info,
+         { "Fsmo Info", "drsuapi.drsuapi_DsGetNCChangesRequest5.fsmo_info", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMetaData_originating_usn,
+         { "Originating Usn", "drsuapi.drsuapi_DsReplicaMetaData.originating_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaModRequest1_source_dra_address,
+         { "Source Dra Address", "drsuapi.drsuapi_DsReplicaModRequest1.source_dra_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_lsa_serial_number,
+         { "Lsa Serial Number", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.lsa_serial_number", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SecBufferDesc_version,
+         { "Version", "drsuapi.drsuapi_SecBufferDesc.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsPartialAttributeSet_version,
+         { "Version", "drsuapi.drsuapi_DsPartialAttributeSet.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary_guid,
+         { "Guid", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_uptodateness_vector,
+         { "Uptodateness Vector", "drsuapi.drsuapi_DsGetNCChangesRequest8.uptodateness_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier___ndr_size,
+         { "  Ndr Size", "drsuapi.drsuapi_DsReplicaObjectIdentifier.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6TS_ctr6,
+         { "Ctr6", "drsuapi.drsuapi_DsGetNCChangesCtr6TS.ctr6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_addr_list_count,
+         { "Addr List Count", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.addr_list_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMetaDataCtr_count,
+         { "Count", "drsuapi.drsuapi_DsReplicaMetaDataCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaOp.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectListItem_object,
+         { "Object", "drsuapi.drsuapi_DsReplicaObjectListItem.object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3_dn,
+         { "Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier3.dn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_replica_flags,
+         { "Replica Flags", "drsuapi.drsuapi_DsGetNCChangesRequest8.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_client_ip_address,
+         { "Client Ip Address", "drsuapi.drsuapi_DsGetDCConnection01.client_ip_address", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCost_level,
+         { "Level", "drsuapi.drsuapi_QuerySitesByCost.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjMetaData2_originating_change_time,
+         { "Originating Change Time", "drsuapi.drsuapi_DsReplicaObjMetaData2.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsWriteAccountSpn_res,
+         { "Res", "drsuapi.drsuapi_DsWriteAccountSpn.res", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest1_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaAddRequest1.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_AttrErr_V1_is_val_returned,
+         { "Is Val Returned", "drsuapi.drsuapi_DsAddEntry_AttrErr_V1.is_val_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObject_attribute_ctr,
+         { "Attribute Ctr", "drsuapi.drsuapi_DsReplicaObject.attribute_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_naming_context,
+         { "Naming Context", "drsuapi.drsuapi_DsGetNCChangesCtr6.naming_context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_attribute_name,
+         { "Attribute Name", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.attribute_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_num_req,
+         { "Num Req", "drsuapi.drsuapi_QuerySitesByCostRequest1.num_req", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_source_dsa_invocation_id,
+         { "Source Dsa Invocation Id", "drsuapi.drsuapi_DsReplicaNeighbour.source_dsa_invocation_id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_options,
+         { "Options", "drsuapi.drsuapi_DsReplicaAddRequest2.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOID_binary_oid,
+         { "Binary Oid", "drsuapi.drsuapi_DsReplicaOID.binary_oid", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr1_status,
+         { "Status", "drsuapi.drsuapi_DsGetMembershipsCtr1.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOIDMapping_id_prefix,
+         { "Id Prefix", "drsuapi.drsuapi_DsReplicaOIDMapping.id_prefix", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP,
+         { "Drsuapi Drs Async Rep", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_ASYNC_REP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_REP_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_flags,
+         { "Flags", "drsuapi.drsuapi_QuerySitesByCostRequest1.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest1_codepage,
+         { "Codepage", "drsuapi.drsuapi_DsNameRequest1.codepage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServer_level_out,
+         { "Level Out", "drsuapi.drsuapi_DsRemoveDSServer.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData_version,
+         { "Version", "drsuapi.drsuapi_DsReplicaAttrValMetaData.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6_compressed_length,
+         { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesXPRESSCtr6.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_op_state,
+         { "Op State", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.op_state", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6,
+         { "Drsuapi Supported Extension Getchgreply V6", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6_tfs), ( 0x04000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary___ndr_size,
+         { "  Ndr Size", "drsuapi.drsuapi_DsReplicaObjectIdentifier3Binary.__ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW,
+         { "Drsuapi Drs Init Sync Now", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_INIT_SYNC_NOW", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_INIT_SYNC_NOW_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo28_pid,
+         { "Pid", "drsuapi.drsuapi_DsBindInfo28.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SecBuffer_buf_size,
+         { "Buf Size", "drsuapi.drsuapi_SecBuffer.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_destination_dsa_guid,
+         { "Destination Dsa Guid", "drsuapi.drsuapi_DsGetNCChangesRequest8.destination_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_remote_dsa_obj_guid,
+         { "Remote Dsa Obj Guid", "drsuapi.drsuapi_DsReplicaOp.remote_dsa_obj_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr6_nc_object_count,
+         { "Nc Object Count", "drsuapi.drsuapi_DsGetNCChangesCtr6.nc_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest_req8,
+         { "Req8", "drsuapi.drsuapi_DsGetNCChangesRequest.req8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_ErrData_V1_info,
+         { "Info", "drsuapi.drsuapi_DsAddEntry_ErrData_V1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest1_source_dsa_guid,
+         { "Source Dsa Guid", "drsuapi.drsuapi_DsReplicaGetInfoRequest1.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttrValMetaData2_originating_dsa_dn,
+         { "Originating Dsa Dn", "drsuapi.drsuapi_DsReplicaAttrValMetaData2.originating_dsa_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameInfo1_result_name,
+         { "Result Name", "drsuapi.drsuapi_DsNameInfo1.result_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBindInfo48_pid,
+         { "Pid", "drsuapi.drsuapi_DsBindInfo48.pid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsRemoveDSServer_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsRemoveDSServer.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1_rdn_alias,
+         { "Rdn Alias", "drsuapi.drsuapi_DsAddEntry_RefErrListItem_V1.rdn_alias", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2Ctr_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsGetMemberships2Ctr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS,
+         { "Drsuapi Nt4 Changelog Get Serial Numbers", "drsuapi.drsuapi_DsGetNT4ChangeLogFlags.DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS", FT_BOOLEAN, 32, TFS(&drsuapi_DsGetNT4ChangeLogFlags_DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaObjectIdentifier_dn,
+         { "Dn", "drsuapi.drsuapi_DsReplicaObjectIdentifier.dn", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5,
+         { "Drsuapi Supported Extension Getchgreq V5", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_result_last_attempt,
+         { "Result Last Attempt", "drsuapi.drsuapi_DsReplicaNeighbour.result_last_attempt", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1_new_highwatermark,
+         { "New Highwatermark", "drsuapi.drsuapi_DsGetNCChangesCtr1.new_highwatermark", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_log_length,
+         { "Log Length", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.log_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1_status,
+         { "Status", "drsuapi.drsuapi_DsGetNT4ChangeLogInfo1.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP,
+         { "Drsuapi Drs Async Op", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_ASYNC_OP", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_ASYNC_OP_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryRequest_req3,
+         { "Req3", "drsuapi.drsuapi_DsAddEntryRequest.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest8_max_object_count,
+         { "Max Object Count", "drsuapi.drsuapi_DsGetNCChangesRequest8.max_object_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo2_site_dn,
+         { "Site Dn", "drsuapi.drsuapi_DsGetDCInfo2.site_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_more_flags,
+         { "More Flags", "drsuapi.drsuapi_DsGetNCChangesRequest10.more_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_compressed_length,
+         { "Compressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.compressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT,
+         { "Drsuapi Supported Extension Verify Object", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCompressedCtr_mszip6,
+         { "Mszip6", "drsuapi.drsuapi_DsGetNCChangesCompressedCtr.mszip6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursorCtrEx_reserved1,
+         { "Reserved1", "drsuapi.drsuapi_DsReplicaCursorCtrEx.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr1_array,
+         { "Array", "drsuapi.drsuapi_DsGetDCInfoCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsNameRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsNameRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesCtr1TS_ctr1_,
+         { "Subcontext length", "drsuapi.drsuapi_DsGetNCChangesCtr1TS.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfoCtr_ctr01,
+         { "Ctr01", "drsuapi.drsuapi_DsGetDCInfoCtr.ctr01", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMod_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsReplicaMod.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaGetInfoRequest2_source_dsa_guid,
+         { "Source Dsa Guid", "drsuapi.drsuapi_DsReplicaGetInfoRequest2.source_dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostCtr_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_QuerySitesByCostCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships2Ctr1_num_entries,
+         { "Num Entries", "drsuapi.drsuapi_DsGetMemberships2Ctr1.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaUpdateRefsRequest_req1,
+         { "Req1", "drsuapi.drsuapi_DsReplicaUpdateRefsRequest.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCInfo3_site_dn,
+         { "Site Dn", "drsuapi.drsuapi_DsGetDCInfo3.site_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_NameResOp_V1_unused_pad,
+         { "Unused Pad", "drsuapi.drsuapi_NameResOp_V1.unused_pad", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMemberships_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsGetMemberships.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr3_count,
+         { "Count", "drsuapi.drsuapi_DsAddEntryCtr3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesRequest10_replica_flags,
+         { "Replica Flags", "drsuapi.drsuapi_DsGetNCChangesRequest10.replica_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAddRequest2_source_dsa_dn,
+         { "Source Dsa Dn", "drsuapi.drsuapi_DsReplicaAddRequest2.source_dsa_dn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1_dsid,
+         { "Dsid", "drsuapi.drsuapi_DsAddEntryErrorInfo_Referr_V1.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_id,
+         { "Id", "drsuapi.drsuapi_DsAddEntryCtr2.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDCConnection01_unknown6,
+         { "Unknown6", "drsuapi.drsuapi_DsGetDCConnection01.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCost_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_QuerySitesByCost.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaOp_nc_dn,
+         { "Nc Dn", "drsuapi.drsuapi_DsReplicaOp.nc_dn", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_QuerySitesByCostRequest1_site_from,
+         { "Site From", "drsuapi.drsuapi_QuerySitesByCostRequest1.site_from", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaMetaData_originating_change_time,
+         { "Originating Change Time", "drsuapi.drsuapi_DsReplicaMetaData.originating_change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetMembershipsCtr_ctr1,
+         { "Ctr1", "drsuapi.drsuapi_DsGetMembershipsCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF,
+         { "Drsuapi Drs Add Ref", "drsuapi.drsuapi_DrsOptions.DRSUAPI_DRS_ADD_REF", FT_BOOLEAN, 32, TFS(&drsuapi_DrsOptions_DRSUAPI_DRS_ADD_REF_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7,
+         { "Drsuapi Supported Extension Getchgreply V7", "drsuapi.drsuapi_SupportedExtensions.DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", FT_BOOLEAN, 32, TFS(&drsuapi_SupportedExtensions_DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaNeighbour_last_success,
+         { "Last Success", "drsuapi.drsuapi_DsReplicaNeighbour.last_success", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1_decompressed_length,
+         { "Decompressed Length", "drsuapi.drsuapi_DsGetNCChangesMSZIPCtr1.decompressed_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsAddEntryCtr2_dsid,
+         { "Dsid", "drsuapi.drsuapi_DsAddEntryCtr2.dsid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetNCChanges_level,
+         { "Level", "drsuapi.drsuapi_DsGetNCChanges.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaAttribute_attid,
+         { "Attid", "drsuapi.drsuapi_DsReplicaAttribute.attid", FT_UINT32, BASE_DEC, VALS(drsuapi_drsuapi_DsAttributeId_vals), 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsGetDomainControllerInfo_bind_handle,
+         { "Bind Handle", "drsuapi.drsuapi_DsGetDomainControllerInfo.bind_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsBind_bind_info,
+         { "Bind Info", "drsuapi.drsuapi_DsBind.bind_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_drsuapi_drsuapi_DsReplicaCursor2Ctr_enumeration_context,
+         { "Enumeration Context", "drsuapi.drsuapi_DsReplicaCursor2Ctr.enumeration_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_drsuapi,
+               &ett_drsuapi_samr_GroupAttrs,
+               &ett_drsuapi_drsuapi_DrsOptions,
+               &ett_drsuapi_drsuapi_DrsUpdate,
+               &ett_drsuapi_drsuapi_SupportedExtensions,
+               &ett_drsuapi_drsuapi_SupportedExtensionsExt,
+               &ett_drsuapi_drsuapi_DsBindInfo24,
+               &ett_drsuapi_drsuapi_DsBindInfo28,
+               &ett_drsuapi_drsuapi_DsBindInfo48,
+               &ett_drsuapi_drsuapi_DsBindInfoFallBack,
+               &ett_drsuapi_drsuapi_DsBindInfo,
+               &ett_drsuapi_drsuapi_DsBindInfoCtr,
+               &ett_drsuapi_drsuapi_DsReplicaObjectIdentifier,
+               &ett_drsuapi_drsuapi_DsReplicaSyncRequest1,
+               &ett_drsuapi_drsuapi_DsReplicaSyncRequest,
+               &ett_drsuapi_drsuapi_DsReplicaHighWaterMark,
+               &ett_drsuapi_drsuapi_DsReplicaCursor,
+               &ett_drsuapi_drsuapi_DsReplicaCursorCtrEx,
+               &ett_drsuapi_drsuapi_DsGetNCChangesRequest5,
+               &ett_drsuapi_drsuapi_DsReplicaOID,
+               &ett_drsuapi_drsuapi_DsReplicaOIDMapping,
+               &ett_drsuapi_drsuapi_DsReplicaOIDMapping_Ctr,
+               &ett_drsuapi_drsuapi_DsPartialAttributeSet,
+               &ett_drsuapi_drsuapi_DsGetNCChangesRequest8,
+               &ett_drsuapi_drsuapi_DsGetNCChangesRequest10,
+               &ett_drsuapi_drsuapi_DsGetNCChangesRequest,
+               &ett_drsuapi_drsuapi_DsReplicaCursor2,
+               &ett_drsuapi_drsuapi_DsReplicaCursor2CtrEx,
+               &ett_drsuapi_drsuapi_DsAttributeValue,
+               &ett_drsuapi_drsuapi_DsAttributeValueCtr,
+               &ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3,
+               &ett_drsuapi_drsuapi_DsReplicaObjectIdentifier3Binary,
+               &ett_drsuapi_drsuapi_DsReplicaAttribute,
+               &ett_drsuapi_drsuapi_DsReplicaAttributeCtr,
+               &ett_drsuapi_drsuapi_DsReplicaObjectFlags,
+               &ett_drsuapi_drsuapi_DsReplicaObject,
+               &ett_drsuapi_drsuapi_DsReplicaMetaData,
+               &ett_drsuapi_drsuapi_DsReplicaMetaDataCtr,
+               &ett_drsuapi_drsuapi_DsReplicaObjectListItemEx,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr1,
+               &ett_drsuapi_drsuapi_DsLinkedAttributeFlags,
+               &ett_drsuapi_drsuapi_DsReplicaLinkedAttribute,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr6,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr1TS,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr6TS,
+               &ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr1,
+               &ett_drsuapi_drsuapi_DsGetNCChangesMSZIPCtr6,
+               &ett_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr1,
+               &ett_drsuapi_drsuapi_DsGetNCChangesXPRESSCtr6,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCompressedCtr,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr2,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr7,
+               &ett_drsuapi_drsuapi_DsGetNCChangesCtr,
+               &ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest1,
+               &ett_drsuapi_drsuapi_DsReplicaUpdateRefsRequest,
+               &ett_drsuapi_drsuapi_DsReplicaAddRequest1,
+               &ett_drsuapi_drsuapi_DsReplicaAddRequest2,
+               &ett_drsuapi_drsuapi_DsReplicaAddRequest,
+               &ett_drsuapi_drsuapi_DsReplicaDelRequest1,
+               &ett_drsuapi_drsuapi_DsReplicaDelRequest,
+               &ett_drsuapi_drsuapi_DsReplicaModRequest1,
+               &ett_drsuapi_drsuapi_DsReplicaModRequest,
+               &ett_drsuapi_drsuapi_DsGetMembershipsCtr1,
+               &ett_drsuapi_drsuapi_DsGetMembershipsCtr,
+               &ett_drsuapi_drsuapi_DsGetMembershipsRequest1,
+               &ett_drsuapi_drsuapi_DsGetMembershipsRequest,
+               &ett_drsuapi_drsuapi_DsGetNT4ChangeLogFlags,
+               &ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest1,
+               &ett_drsuapi_drsuapi_DsGetNT4ChangeLogRequest,
+               &ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo1,
+               &ett_drsuapi_drsuapi_DsGetNT4ChangeLogInfo,
+               &ett_drsuapi_drsuapi_DsNameString,
+               &ett_drsuapi_drsuapi_DsNameRequest1,
+               &ett_drsuapi_drsuapi_DsNameRequest,
+               &ett_drsuapi_drsuapi_DsNameInfo1,
+               &ett_drsuapi_drsuapi_DsNameCtr1,
+               &ett_drsuapi_drsuapi_DsNameCtr,
+               &ett_drsuapi_drsuapi_DsWriteAccountSpnRequest1,
+               &ett_drsuapi_drsuapi_DsWriteAccountSpnRequest,
+               &ett_drsuapi_drsuapi_DsWriteAccountSpnResult1,
+               &ett_drsuapi_drsuapi_DsWriteAccountSpnResult,
+               &ett_drsuapi_drsuapi_DsRemoveDSServerRequest1,
+               &ett_drsuapi_drsuapi_DsRemoveDSServerRequest,
+               &ett_drsuapi_drsuapi_DsRemoveDSServerResult1,
+               &ett_drsuapi_drsuapi_DsRemoveDSServerResult,
+               &ett_drsuapi_drsuapi_DsGetDCInfoRequest1,
+               &ett_drsuapi_drsuapi_DsGetDCInfoRequest,
+               &ett_drsuapi_drsuapi_DsGetDCInfo1,
+               &ett_drsuapi_drsuapi_DsGetDCInfoCtr1,
+               &ett_drsuapi_drsuapi_DsGetDCInfo2,
+               &ett_drsuapi_drsuapi_DsGetDCInfoCtr2,
+               &ett_drsuapi_drsuapi_DsGetDCInfo3,
+               &ett_drsuapi_drsuapi_DsGetDCInfoCtr3,
+               &ett_drsuapi_drsuapi_DsGetDCConnection01,
+               &ett_drsuapi_drsuapi_DsGetDCConnectionCtr01,
+               &ett_drsuapi_drsuapi_DsGetDCInfoCtr,
+               &ett_drsuapi_drsuapi_DsReplicaObjectListItem,
+               &ett_drsuapi_drsuapi_DsAddEntryRequest2,
+               &ett_drsuapi_drsuapi_SecBuffer,
+               &ett_drsuapi_drsuapi_SecBufferDesc,
+               &ett_drsuapi_drsuapi_DsAddEntryRequest3,
+               &ett_drsuapi_drsuapi_DsAddEntryRequest,
+               &ett_drsuapi_drsuapi_DsAddEntryErrorInfoX,
+               &ett_drsuapi_drsuapi_DsAddEntry_AttrErr_V1,
+               &ett_drsuapi_drsuapi_DsAddEntry_AttrErrListItem_V1,
+               &ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Attr_V1,
+               &ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Name_V1,
+               &ett_drsuapi_drsuapi_NameResOp_V1,
+               &ett_drsuapi_drsuapi_DsaAddressListItem_V1,
+               &ett_drsuapi_drsuapi_DsAddEntry_RefErrListItem_V1,
+               &ett_drsuapi_drsuapi_DsAddEntryErrorInfo_Referr_V1,
+               &ett_drsuapi_drsuapi_DsAddEntryErrorInfo,
+               &ett_drsuapi_drsuapi_DsAddEntry_ErrData_V1,
+               &ett_drsuapi_drsuapi_DsAddEntry_ErrData,
+               &ett_drsuapi_drsuapi_DsReplicaObjectIdentifier2,
+               &ett_drsuapi_drsuapi_DsAddEntryCtr2,
+               &ett_drsuapi_drsuapi_DsAddEntryCtr3,
+               &ett_drsuapi_drsuapi_DsAddEntryCtr,
+               &ett_drsuapi_drsuapi_DsExecuteKCCFlags,
+               &ett_drsuapi_drsuapi_DsExecuteKCC1,
+               &ett_drsuapi_drsuapi_DsExecuteKCCRequest,
+               &ett_drsuapi_drsuapi_DsReplicaGetInfoRequest1,
+               &ett_drsuapi_drsuapi_DsReplicaGetInfoRequest2,
+               &ett_drsuapi_drsuapi_DsReplicaGetInfoRequest,
+               &ett_drsuapi_drsuapi_DsReplicaNeighbour,
+               &ett_drsuapi_drsuapi_DsReplicaNeighbourCtr,
+               &ett_drsuapi_drsuapi_DsReplicaCursorCtr,
+               &ett_drsuapi_drsuapi_DsReplicaObjMetaData,
+               &ett_drsuapi_drsuapi_DsReplicaObjMetaDataCtr,
+               &ett_drsuapi_drsuapi_DsReplicaKccDsaFailure,
+               &ett_drsuapi_drsuapi_DsReplicaKccDsaFailuresCtr,
+               &ett_drsuapi_drsuapi_DsReplicaOp,
+               &ett_drsuapi_drsuapi_DsReplicaOpCtr,
+               &ett_drsuapi_drsuapi_DsReplicaAttrValMetaData,
+               &ett_drsuapi_drsuapi_DsReplicaAttrValMetaDataCtr,
+               &ett_drsuapi_drsuapi_DsReplicaCursor2Ctr,
+               &ett_drsuapi_drsuapi_DsReplicaCursor3,
+               &ett_drsuapi_drsuapi_DsReplicaCursor3Ctr,
+               &ett_drsuapi_drsuapi_DsReplicaObjMetaData2,
+               &ett_drsuapi_drsuapi_DsReplicaObjMetaData2Ctr,
+               &ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2,
+               &ett_drsuapi_drsuapi_DsReplicaAttrValMetaData2Ctr,
+               &ett_drsuapi_drsuapi_DsReplicaConnection04,
+               &ett_drsuapi_drsuapi_DsReplicaConnection04Ctr,
+               &ett_drsuapi_drsuapi_DsReplica06,
+               &ett_drsuapi_drsuapi_DsReplica06Ctr,
+               &ett_drsuapi_drsuapi_DsReplicaInfo,
+               &ett_drsuapi_drsuapi_DsGetMemberships2Ctr1,
+               &ett_drsuapi_drsuapi_DsGetMemberships2Ctr,
+               &ett_drsuapi_drsuapi_DsGetMemberships2Request1,
+               &ett_drsuapi_drsuapi_DsGetMemberships2Request,
+               &ett_drsuapi_drsuapi_DsSiteCostInfo,
+               &ett_drsuapi_drsuapi_QuerySitesByCostCtr1,
+               &ett_drsuapi_drsuapi_QuerySitesByCostCtr,
+               &ett_drsuapi_drsuapi_QuerySitesByCostRequest1,
+               &ett_drsuapi_drsuapi_QuerySitesByCostRequest,
+       };
+
+       proto_dcerpc_drsuapi = proto_register_protocol("Active Directory Replication", "DRSUAPI", "drsuapi");
+       proto_register_field_array(proto_dcerpc_drsuapi, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_drsuapi(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_drsuapi, ett_dcerpc_drsuapi,
+               &uuid_dcerpc_drsuapi, ver_dcerpc_drsuapi,
+               drsuapi_dissectors, hf_drsuapi_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.h b/bin/default/librpc/gen_ndr/packet-dcerpc-drsuapi.h
new file mode 100644 (file)
index 0000000..3997f46
--- /dev/null
@@ -0,0 +1,416 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsuapi.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/drsuapi.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-samr.h"
+
+#ifndef __PACKET_DCERPC_DRSUAPI_H
+#define __PACKET_DCERPC_DRSUAPI_H
+
+#define DRSUAPI_DS_BIND_GUID   ( "e24d201a-4fd6-11d1-a3da-0000f875ae0d" )
+
+#define DRSUAPI_DS_BIND_GUID_W2K       ( "6abec3d1-3054-41c8-a362-5a0c5b7d5d71" )
+
+#define DRSUAPI_DS_BIND_GUID_W2K3      ( "6afab99c-6e26-464a-975f-f58f105218bc" )
+
+#define DRSUAPI_DS_MEMBERSHIP_FLAG_GROUP_ATTR  ( 0x1 )
+
+#define DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID      ( "E3514235-4B06-11D1-AB04-00C04FC2DCD2" )
+
+int drsuapi_dissect_bitmap_samr_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_DrsOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_DrsUpdate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_SupportedExtensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_SupportedExtensionsExt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsBindInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsBindInfo28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsBindInfo48(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsBindInfoFallBack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsBindInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjectIdentifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaSyncRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaHighWaterMark(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursorCtrEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_EXOP_NONE (0x00000000)
+#define DRSUAPI_EXOP_FSMO_REQ_ROLE (0x00000001)
+#define DRSUAPI_EXOP_FSMO_RID_ALLOC (0x00000002)
+#define DRSUAPI_EXOP_FSMO_RID_REQ_ROLE (0x00000003)
+#define DRSUAPI_EXOP_FSMO_REQ_PDC (0x00000004)
+#define DRSUAPI_EXOP_FSMO_ABANDON_ROLE (0x00000005)
+#define DRSUAPI_EXOP_REPL_OBJ (0x00000006)
+#define DRSUAPI_EXOP_REPL_SECRET (0x00000007)
+extern const value_string drsuapi_drsuapi_DsExtendedOperation_vals[];
+int drsuapi_dissect_enum_DsExtendedOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DRSUAPI_EXOP_ERR_NONE (0x00000000)
+#define DRSUAPI_EXOP_ERR_SUCCESS (0x00000001)
+#define DRSUAPI_EXOP_ERR_UNKNOWN_OP (0x00000002)
+#define DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER (0x00000003)
+#define DRSUAPI_EXOP_ERR_UPDATE_ERR (0x00000004)
+#define DRSUAPI_EXOP_ERR_EXCEPTION (0x00000005)
+#define DRSUAPI_EXOP_ERR_UNKNOWN_CALLER (0x00000006)
+#define DRSUAPI_EXOP_ERR_RID_ALLOC (0x00000007)
+#define DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED (0x00000008)
+#define DRSUAPI_EXOP_ERR_FMSO_PENDING_OP (0x00000009)
+#define DRSUAPI_EXOP_ERR_MISMATCH (0x0000000A)
+#define DRSUAPI_EXOP_ERR_COULDNT_CONTACT (0x0000000B)
+#define DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES (0x0000000C)
+#define DRSUAPI_EXOP_ERR_DIR_ERROR (0x0000000D)
+#define DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS (0x0000000E)
+#define DRSUAPI_EXOP_ERR_ACCESS_DENIED (0x0000000F)
+#define DRSUAPI_EXOP_ERR_PARAM_ERROR (0x00000010)
+extern const value_string drsuapi_drsuapi_DsExtendedError_vals[];
+int drsuapi_dissect_enum_DsExtendedError(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesRequest5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaOID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaOIDMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaOIDMapping_Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_OBJECTCLASS_top (0x00010000)
+#define DRSUAPI_OBJECTCLASS_classSchema (0x0003000d)
+#define DRSUAPI_OBJECTCLASS_attributeSchema (0x0003000e)
+extern const value_string drsuapi_drsuapi_DsObjectClassId_vals[];
+int drsuapi_dissect_enum_DsObjectClassId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DRSUAPI_ATTID_objectClass (0x00000000)
+#define DRSUAPI_ATTID_cn (0x00000003)
+#define DRSUAPI_ATTID_ou (0x0000000b)
+#define DRSUAPI_ATTID_description (0x0000000d)
+#define DRSUAPI_ATTID_member (0x0000001f)
+#define DRSUAPI_ATTID_instanceType (0x00020001)
+#define DRSUAPI_ATTID_whenCreated (0x00020002)
+#define DRSUAPI_ATTID_possSuperiors (0x00020008)
+#define DRSUAPI_ATTID_displayName (0x0002000d)
+#define DRSUAPI_ATTID_hasMasterNCs (0x0002000e)
+#define DRSUAPI_ATTID_nCName (0x00020010)
+#define DRSUAPI_ATTID_subClassOf (0x00020015)
+#define DRSUAPI_ATTID_governsID (0x00020016)
+#define DRSUAPI_ATTID_mustContain (0x00020018)
+#define DRSUAPI_ATTID_mayContain (0x00020019)
+#define DRSUAPI_ATTID_rDNAttId (0x0002001A)
+#define DRSUAPI_ATTID_attributeID (0x0002001e)
+#define DRSUAPI_ATTID_attributeSyntax (0x00020020)
+#define DRSUAPI_ATTID_isSingleValued (0x00020021)
+#define DRSUAPI_ATTID_rangeLower (0x00020022)
+#define DRSUAPI_ATTID_rangeUpper (0x00020023)
+#define DRSUAPI_ATTID_dMDLocation (0x00020024)
+#define DRSUAPI_ATTID_isDeleted (0x00020030)
+#define DRSUAPI_ATTID_objectVersion (0x0002004c)
+#define DRSUAPI_ATTID_invocationId (0x00020073)
+#define DRSUAPI_ATTID_showInAdvancedViewOnly (0x000200a9)
+#define DRSUAPI_ATTID_adminDisplayName (0x000200c2)
+#define DRSUAPI_ATTID_adminDescription (0x000200e2)
+#define DRSUAPI_ATTID_oMSyntax (0x000200e7)
+#define DRSUAPI_ATTID_ntSecurityDescriptor (0x00020119)
+#define DRSUAPI_ATTID_searchFlags (0x0002014e)
+#define DRSUAPI_ATTID_auxiliaryClass (0x0002015f)
+#define DRSUAPI_ATTID_lDAPDisplayName (0x000201cc)
+#define DRSUAPI_ATTID_name (0x00090001)
+#define DRSUAPI_ATTID_userAccountControl (0x00090008)
+#define DRSUAPI_ATTID_badPwdCount (0x0009000c)
+#define DRSUAPI_ATTID_codePage (0x00090010)
+#define DRSUAPI_ATTID_countryCode (0x00090019)
+#define DRSUAPI_ATTID_currentValue (0x0009001b)
+#define DRSUAPI_ATTID_homeDirectory (0x0009002c)
+#define DRSUAPI_ATTID_homeDrive (0x0009002d)
+#define DRSUAPI_ATTID_lastLogoff (0x00090033)
+#define DRSUAPI_ATTID_lastLogon (0x00090034)
+#define DRSUAPI_ATTID_dBCSPwd (0x00090037)
+#define DRSUAPI_ATTID_scriptPath (0x0009003e)
+#define DRSUAPI_ATTID_logonHours (0x00090040)
+#define DRSUAPI_ATTID_userWorkstations (0x00090056)
+#define DRSUAPI_ATTID_unicodePwd (0x0009005a)
+#define DRSUAPI_ATTID_ntPwdHistory (0x0009005e)
+#define DRSUAPI_ATTID_pwdLastSet (0x00090060)
+#define DRSUAPI_ATTID_primaryGroupID (0x00090062)
+#define DRSUAPI_ATTID_priorValue (0x00090064)
+#define DRSUAPI_ATTID_supplementalCredentials (0x0009007d)
+#define DRSUAPI_ATTID_trustAuthIncoming (0x00090081)
+#define DRSUAPI_ATTID_trustAuthOutgoing (0x00090087)
+#define DRSUAPI_ATTID_userParameters (0x0009008a)
+#define DRSUAPI_ATTID_profilePath (0x0009008b)
+#define DRSUAPI_ATTID_objectSid (0x00090092)
+#define DRSUAPI_ATTID_schemaIDGUID (0x00090094)
+#define DRSUAPI_ATTID_comment (0x0009009C)
+#define DRSUAPI_ATTID_accountExpires (0x0009009f)
+#define DRSUAPI_ATTID_lmPwdHistory (0x000900a0)
+#define DRSUAPI_ATTID_logonCount (0x000900a9)
+#define DRSUAPI_ATTID_systemPossSuperiors (0x000900c3)
+#define DRSUAPI_ATTID_systemMayContain (0x000900c4)
+#define DRSUAPI_ATTID_systemMustContain (0x000900c5)
+#define DRSUAPI_ATTID_systemAuxiliaryClass (0x000900c6)
+#define DRSUAPI_ATTID_sAMAccountName (0x000900dd)
+#define DRSUAPI_ATTID_sAMAccountType (0x0009012e)
+#define DRSUAPI_ATTID_options (0x00090133)
+#define DRSUAPI_ATTID_fSMORoleOwner (0x00090171)
+#define DRSUAPI_ATTID_systemFlags (0x00090177)
+#define DRSUAPI_ATTID_serverReference (0x00090203)
+#define DRSUAPI_ATTID_serverReferenceBL (0x00090204)
+#define DRSUAPI_ATTID_initialAuthIncoming (0x0009021b)
+#define DRSUAPI_ATTID_initialAuthOutgoing (0x0009021c)
+#define DRSUAPI_ATTID_wellKnownObjects (0x0009026a)
+#define DRSUAPI_ATTID_dNSHostName (0x0009026b)
+#define DRSUAPI_ATTID_isMemberOfPartialAttributeSet (0x0009027f)
+#define DRSUAPI_ATTID_userPrincipalName (0x00090290)
+#define DRSUAPI_ATTID_groupType (0x000902ee)
+#define DRSUAPI_ATTID_servicePrincipalName (0x00090303)
+#define DRSUAPI_ATTID_lastKnownParent (0x0009030d)
+#define DRSUAPI_ATTID_objectCategory (0x0009030e)
+#define DRSUAPI_ATTID_gPLink (0x0009037b)
+#define DRSUAPI_ATTID_transportAddressAttribute (0x0009037f)
+#define DRSUAPI_ATTID_msDS_Behavior_Version (0x000905b3)
+#define DRSUAPI_ATTID_msDS_KeyVersionNumber (0x000906f6)
+#define DRSUAPI_ATTID_msDS_HasDomainNCs (0x0009071c)
+#define DRSUAPI_ATTID_msDS_hasMasterNCs (0x0009072c)
+#define DRSUAPI_ATTID_isRecycled (0x0009080a)
+#define DRSUAPI_ATTID_INVALID (0xFFFFFFFF)
+extern const value_string drsuapi_drsuapi_DsAttributeId_vals[];
+int drsuapi_dissect_enum_DsAttributeId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsPartialAttributeSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesRequest8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesRequest10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursor2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursor2CtrEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAttributeValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAttributeValueCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjectIdentifier3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjectIdentifier3Binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAttributeCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_DsReplicaObjectFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjectListItemEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_DsLinkedAttributeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaLinkedAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesCtr1TS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesCtr6TS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesMSZIPCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesXPRESSCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesXPRESSCtr6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_COMPRESSION_TYPE_MSZIP (2)
+#define DRSUAPI_COMPRESSION_TYPE_XPRESS (3)
+extern const value_string drsuapi_drsuapi_DsGetNCChangesCompressionType_vals[];
+int drsuapi_dissect_enum_DsGetNCChangesCompressionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNCChangesCtr7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaUpdateRefsRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAddRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAddRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaDelRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaModRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS (1)
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS (2)
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS (3)
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2 (4)
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS (5)
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS (6)
+#define DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2 (7)
+extern const value_string drsuapi_drsuapi_DsMembershipType_vals[];
+int drsuapi_dissect_enum_DsMembershipType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsGetMembershipsCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetMembershipsRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_DsGetNT4ChangeLogFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNT4ChangeLogRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetNT4ChangeLogInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DS_NAME_STATUS_OK (0)
+#define DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR (1)
+#define DRSUAPI_DS_NAME_STATUS_NOT_FOUND (2)
+#define DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE (3)
+#define DRSUAPI_DS_NAME_STATUS_NO_MAPPING (4)
+#define DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY (5)
+#define DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING (6)
+#define DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL (7)
+extern const value_string drsuapi_drsuapi_DsNameStatus_vals[];
+int drsuapi_dissect_enum_DsNameStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DRSUAPI_DS_NAME_FLAG_NO_FLAGS (0x0)
+#define DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY (0x1)
+#define DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC (0x2)
+#define DRSUAPI_DS_NAME_FLAG_GCVERIFY (0x4)
+#define DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL (0x8)
+extern const value_string drsuapi_drsuapi_DsNameFlags_vals[];
+int drsuapi_dissect_enum_DsNameFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DRSUAPI_DS_NAME_FORMAT_UNKNOWN (0x00000000)
+#define DRSUAPI_DS_NAME_FORMAT_FQDN_1779 (0x00000001)
+#define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT (0x00000002)
+#define DRSUAPI_DS_NAME_FORMAT_DISPLAY (0x00000003)
+#define DRSUAPI_DS_NAME_FORMAT_GUID (0x00000006)
+#define DRSUAPI_DS_NAME_FORMAT_CANONICAL (0x00000007)
+#define DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL (0x00000008)
+#define DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX (0x00000009)
+#define DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL (0x0000000A)
+#define DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY (0x0000000B)
+#define DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN (0x0000000C)
+#define DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID (0xFFFFFFEF)
+#define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX (0xFFFFFFF0)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS (0xFFFFFFF1)
+#define DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON (0xFFFFFFF2)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE (0xFFFFFFF3)
+#define DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME (0xFFFFFFF4)
+#define DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME (0xFFFFFFF5)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_NCS (0xFFFFFFF6)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS (0xFFFFFFF7)
+#define DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID (0xFFFFFFF8)
+#define DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN (0xFFFFFFF9)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_ROLES (0xFFFFFFFA)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER (0xFFFFFFFB)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE (0xFFFFFFFC)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE (0xFFFFFFFD)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE (0xFFFFFFFE)
+#define DRSUAPI_DS_NAME_FORMAT_LIST_SITES (0xFFFFFFFF)
+extern const value_string drsuapi_drsuapi_DsNameFormat_vals[];
+int drsuapi_dissect_enum_DsNameFormat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsNameString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsNameRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsNameInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsNameCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DS_SPN_OPERATION_ADD (0)
+#define DRSUAPI_DS_SPN_OPERATION_REPLACE (1)
+#define DRSUAPI_DS_SPN_OPERATION_DELETE (2)
+extern const value_string drsuapi_drsuapi_DsSpnOperation_vals[];
+int drsuapi_dissect_enum_DsSpnOperation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsWriteAccountSpnRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsWriteAccountSpnResult1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsRemoveDSServerRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsRemoveDSServerResult1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DC_INFO_CTR_1 (1)
+#define DRSUAPI_DC_INFO_CTR_2 (2)
+#define DRSUAPI_DC_INFO_CTR_3 (3)
+#define DRSUAPI_DC_CONNECTION_CTR_01 (0xFFFFFFFF)
+extern const value_string drsuapi_drsuapi_DsGetDCInfoCtrLevels_vals[];
+int drsuapi_dissect_enum_DsGetDCInfoCtrLevels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsGetDCInfoRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCInfoCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCInfoCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCInfoCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCConnection01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetDCConnectionCtr01(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjectListItem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DIRERR_OK (0)
+#define DRSUAPI_DIRERR_ATTRIBUTE (1)
+#define DRSUAPI_DIRERR_NAME (2)
+#define DRSUAPI_DIRERR_REFERRAL (3)
+#define DRSUAPI_DIRERR_SECURITY (4)
+#define DRSUAPI_DIRERR_SERVICE (5)
+#define DRSUAPI_DIRERR_UPDATE (6)
+#define DRSUAPI_DIRERR_SYSTEM (7)
+extern const value_string drsuapi_drsuapi_DsAddEntry_DirErr_vals[];
+int drsuapi_dissect_enum_DsAddEntry_DirErr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsAddEntryRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_SECBUFFER_EMPTY (0x00000000)
+#define DRSUAPI_SECBUFFER_DATA (0x00000001)
+#define DRSUAPI_SECBUFFER_TOKEN (0x00000002)
+#define DRSUAPI_SECBUFFER_PKG_PARAMS (0x00000003)
+#define DRSUAPI_SECBUFFER_MISSING (0x00000004)
+#define DRSUAPI_SECBUFFER_EXTRA (0x00000005)
+#define DRSUAPI_SECBUFFER_STREAM_TRAILER (0x00000006)
+#define DRSUAPI_SECBUFFER_STREAM_HEADER (0x00000007)
+#define DRSUAPI_SECBUFFER_READONLY (0x80000000)
+extern const value_string drsuapi_drsuapi_SecBufferType_vals[];
+int drsuapi_dissect_enum_SecBufferType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_SecBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_SecBufferDesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryRequest3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryErrorInfoX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntry_AttrErr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntry_AttrErrListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryErrorInfo_Attr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryErrorInfo_Name_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_NameResOp_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_CH_REFTYPE_SUPERIOR (0x0000)
+#define DRSUAPI_CH_REFTYPE_SUBORDINATE (0x0001)
+#define DRSUAPI_CH_REFTYPE_NSSR (0x0002)
+#define DRSUAPI_CH_REFTYPE_CROSS (0x0003)
+extern const value_string drsuapi_drsuapi_DsAddEntry_RefType_vals[];
+int drsuapi_dissect_enum_DsAddEntry_RefType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DRSUAPI_SE_CHOICE_BASE_ONLY (0x00)
+#define DRSUAPI_SE_CHOICE_IMMED_CHLDRN (0x01)
+#define DRSUAPI_SE_CHOICE_WHOLE_SUBTREE (0x02)
+extern const value_string drsuapi_drsuapi_DsAddEntry_ChoiceType_vals[];
+int drsuapi_dissect_enum_DsAddEntry_ChoiceType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsaAddressListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntry_RefErrListItem_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryErrorInfo_Referr_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntry_ErrData_V1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjectIdentifier2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsAddEntryCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_bitmap_DsExecuteKCCFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsExecuteKCC1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DS_REPLICA_GET_INFO (1)
+#define DRSUAPI_DS_REPLICA_GET_INFO2 (2)
+extern const value_string drsuapi_drsuapi_DsReplicaGetInfoLevel_vals[];
+int drsuapi_dissect_enum_DsReplicaGetInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DRSUAPI_DS_REPLICA_INFO_NEIGHBORS (0)
+#define DRSUAPI_DS_REPLICA_INFO_CURSORS (1)
+#define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA (2)
+#define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES (3)
+#define DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES (4)
+#define DRSUAPI_DS_REPLICA_INFO_PENDING_OPS (5)
+#define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA (6)
+#define DRSUAPI_DS_REPLICA_INFO_CURSORS2 (7)
+#define DRSUAPI_DS_REPLICA_INFO_CURSORS3 (8)
+#define DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 (9)
+#define DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 (10)
+#define DRSUAPI_DS_REPLICA_INFO_REPSTO (-2)
+#define DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS (-4)
+#define DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1 (-5)
+#define DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS (-6)
+extern const value_string drsuapi_drsuapi_DsReplicaInfoType_vals[];
+int drsuapi_dissect_enum_DsReplicaInfoType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsReplicaGetInfoRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaGetInfoRequest2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaNeighbour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaNeighbourCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursorCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaKccDsaFailure(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaKccDsaFailuresCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DRSUAPI_DS_REPLICA_OP_TYPE_SYNC (0)
+#define DRSUAPI_DS_REPLICA_OP_TYPE_ADD (1)
+#define DRSUAPI_DS_REPLICA_OP_TYPE_DELETE (2)
+#define DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY (3)
+#define DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS (4)
+extern const value_string drsuapi_drsuapi_DsReplicaOpType_vals[];
+int drsuapi_dissect_enum_DsReplicaOpType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int drsuapi_dissect_struct_DsReplicaOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaOpCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAttrValMetaData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAttrValMetaDataCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursor2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursor3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaCursor3Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjMetaData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaObjMetaData2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAttrValMetaData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaAttrValMetaData2Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaConnection04(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplicaConnection04Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplica06(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsReplica06Ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetMemberships2Ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsGetMemberships2Request1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_DsSiteCostInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_QuerySitesByCostCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int drsuapi_dissect_struct_QuerySitesByCostRequest1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_DRSUAPI_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dsbackup.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dsbackup.c
new file mode 100644 (file)
index 0000000..9885c05
--- /dev/null
@@ -0,0 +1,459 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dsbackup.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dsbackup.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dsbackup.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_ad_backup = -1;
+static gint ett_dcerpc_ad_restore = -1;
+
+
+/* Header field declarations */
+static gint hf_ad_backup_opnum = -1;
+static gint hf_ad_restore_opnum = -1;
+
+static gint proto_dcerpc_ad_backup = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_ad_backup = {
+       0xecec0d70, 0xa603, 0x11d0,
+       { 0x96, 0xb1, 0x00, 0xa0, 0xc9, 0x1e, 0xce, 0x30 }
+};
+static guint16 ver_dcerpc_ad_backup = 1;
+
+static gint proto_dcerpc_ad_restore = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_ad_restore = {
+       0x16e0cf3a, 0xa604, 0x11d0,
+       { 0x96, 0xb1, 0x00, 0xa0, 0xc9, 0x1e, 0xce, 0x30 }
+};
+static guint16 ver_dcerpc_ad_restore = 1;
+
+
+/* IDL: void HrRBackupPrepare( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupPrepare_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupPrepare";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupPrepare_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupPrepare";
+       return offset;
+}
+
+/* IDL: void HrRBackupEnd( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupEnd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupEnd";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupEnd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupEnd";
+       return offset;
+}
+
+/* IDL: void HrRBackupGetAttachmentInformation( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupGetAttachmentInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupGetAttachmentInformation";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupGetAttachmentInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupGetAttachmentInformation";
+       return offset;
+}
+
+/* IDL: void HrRBackupOpenFile( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupOpenFile_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupOpenFile";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupOpenFile_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupOpenFile";
+       return offset;
+}
+
+/* IDL: void HrRBackupRead( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupRead_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupRead";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupRead_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupRead";
+       return offset;
+}
+
+/* IDL: void HrRBackupClose( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupClose_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupClose";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupClose_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupClose";
+       return offset;
+}
+
+/* IDL: void HrRBackupGetBackupLogs( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupGetBackupLogs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupGetBackupLogs";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupGetBackupLogs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupGetBackupLogs";
+       return offset;
+}
+
+/* IDL: void HrRBackupTruncateLogs( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupTruncateLogs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupTruncateLogs";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupTruncateLogs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupTruncateLogs";
+       return offset;
+}
+
+/* IDL: void HrRBackupPing( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_backup_dissect_HrRBackupPing_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupPing";
+       return offset;
+}
+
+static int
+ad_backup_dissect_HrRBackupPing_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRBackupPing";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector ad_backup_dissectors[] = {
+       { 0, "HrRBackupPrepare",
+          ad_backup_dissect_HrRBackupPrepare_request, ad_backup_dissect_HrRBackupPrepare_response},
+       { 1, "HrRBackupEnd",
+          ad_backup_dissect_HrRBackupEnd_request, ad_backup_dissect_HrRBackupEnd_response},
+       { 2, "HrRBackupGetAttachmentInformation",
+          ad_backup_dissect_HrRBackupGetAttachmentInformation_request, ad_backup_dissect_HrRBackupGetAttachmentInformation_response},
+       { 3, "HrRBackupOpenFile",
+          ad_backup_dissect_HrRBackupOpenFile_request, ad_backup_dissect_HrRBackupOpenFile_response},
+       { 4, "HrRBackupRead",
+          ad_backup_dissect_HrRBackupRead_request, ad_backup_dissect_HrRBackupRead_response},
+       { 5, "HrRBackupClose",
+          ad_backup_dissect_HrRBackupClose_request, ad_backup_dissect_HrRBackupClose_response},
+       { 6, "HrRBackupGetBackupLogs",
+          ad_backup_dissect_HrRBackupGetBackupLogs_request, ad_backup_dissect_HrRBackupGetBackupLogs_response},
+       { 7, "HrRBackupTruncateLogs",
+          ad_backup_dissect_HrRBackupTruncateLogs_request, ad_backup_dissect_HrRBackupTruncateLogs_response},
+       { 8, "HrRBackupPing",
+          ad_backup_dissect_HrRBackupPing_request, ad_backup_dissect_HrRBackupPing_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_ad_backup(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_ad_backup_opnum,
+         { "Operation", "ad_backup.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_ad_backup,
+       };
+
+       proto_dcerpc_ad_backup = proto_register_protocol("Backup support for Active Directory", "AD_BACKUP", "ad_backup");
+       proto_register_field_array(proto_dcerpc_ad_backup, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_ad_backup(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_ad_backup, ett_dcerpc_ad_backup,
+               &uuid_dcerpc_ad_backup, ver_dcerpc_ad_backup,
+               ad_backup_dissectors, hf_ad_backup_opnum);
+}
+/* IDL: void HrRIsNTDSOnline( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRIsNTDSOnline_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRIsNTDSOnline";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRIsNTDSOnline_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRIsNTDSOnline";
+       return offset;
+}
+
+/* IDL: void HrRRestorePrepare( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestorePrepare_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestorePrepare";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestorePrepare_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestorePrepare";
+       return offset;
+}
+
+/* IDL: void HrRRestoreRegister( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestoreRegister_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreRegister";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestoreRegister_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreRegister";
+       return offset;
+}
+
+/* IDL: void HrRRestoreRegisterComplete( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestoreRegisterComplete_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreRegisterComplete";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestoreRegisterComplete_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreRegisterComplete";
+       return offset;
+}
+
+/* IDL: void HrRRestoreGetDatabaseLocations( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestoreGetDatabaseLocations_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreGetDatabaseLocations";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestoreGetDatabaseLocations_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreGetDatabaseLocations";
+       return offset;
+}
+
+/* IDL: void HrRRestoreEnd( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestoreEnd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreEnd";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestoreEnd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreEnd";
+       return offset;
+}
+
+/* IDL: void HrRRestoreSetCurrentLogNumber( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestoreSetCurrentLogNumber_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreSetCurrentLogNumber";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestoreSetCurrentLogNumber_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreSetCurrentLogNumber";
+       return offset;
+}
+
+/* IDL: void HrRRestoreCheckLogsForBackup( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ad_restore_dissect_HrRRestoreCheckLogsForBackup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreCheckLogsForBackup";
+       return offset;
+}
+
+static int
+ad_restore_dissect_HrRRestoreCheckLogsForBackup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="HrRRestoreCheckLogsForBackup";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector ad_restore_dissectors[] = {
+       { 0, "HrRIsNTDSOnline",
+          ad_restore_dissect_HrRIsNTDSOnline_request, ad_restore_dissect_HrRIsNTDSOnline_response},
+       { 1, "HrRRestorePrepare",
+          ad_restore_dissect_HrRRestorePrepare_request, ad_restore_dissect_HrRRestorePrepare_response},
+       { 2, "HrRRestoreRegister",
+          ad_restore_dissect_HrRRestoreRegister_request, ad_restore_dissect_HrRRestoreRegister_response},
+       { 3, "HrRRestoreRegisterComplete",
+          ad_restore_dissect_HrRRestoreRegisterComplete_request, ad_restore_dissect_HrRRestoreRegisterComplete_response},
+       { 4, "HrRRestoreGetDatabaseLocations",
+          ad_restore_dissect_HrRRestoreGetDatabaseLocations_request, ad_restore_dissect_HrRRestoreGetDatabaseLocations_response},
+       { 5, "HrRRestoreEnd",
+          ad_restore_dissect_HrRRestoreEnd_request, ad_restore_dissect_HrRRestoreEnd_response},
+       { 6, "HrRRestoreSetCurrentLogNumber",
+          ad_restore_dissect_HrRRestoreSetCurrentLogNumber_request, ad_restore_dissect_HrRRestoreSetCurrentLogNumber_response},
+       { 7, "HrRRestoreCheckLogsForBackup",
+          ad_restore_dissect_HrRRestoreCheckLogsForBackup_request, ad_restore_dissect_HrRRestoreCheckLogsForBackup_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_ad_restore(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_ad_backup_opnum,
+         { "Operation", "ad_backup.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ad_restore_opnum,
+         { "Operation", "ad_restore.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_ad_backup,
+               &ett_dcerpc_ad_restore,
+       };
+
+       proto_dcerpc_ad_restore = proto_register_protocol("Restoring Active Directory backups", "AD_RESTORE", "ad_restore");
+       proto_register_field_array(proto_dcerpc_ad_restore, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_ad_restore(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_ad_restore, ett_dcerpc_ad_restore,
+               &uuid_dcerpc_ad_restore, ver_dcerpc_ad_restore,
+               ad_restore_dissectors, hf_ad_restore_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dsbackup.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dsbackup.h
new file mode 100644 (file)
index 0000000..b303996
--- /dev/null
@@ -0,0 +1,23 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dsbackup.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dsbackup.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_AD_BACKUP_H
+#define __PACKET_DCERPC_AD_BACKUP_H
+
+#endif /* __PACKET_DCERPC_AD_BACKUP_H */
+#ifndef __PACKET_DCERPC_AD_RESTORE_H
+#define __PACKET_DCERPC_AD_RESTORE_H
+
+#endif /* __PACKET_DCERPC_AD_RESTORE_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dssetup.c b/bin/default/librpc/gen_ndr/packet-dcerpc-dssetup.c
new file mode 100644 (file)
index 0000000..93c4952
--- /dev/null
@@ -0,0 +1,1004 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dssetup.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dssetup.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-dssetup.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_dssetup = -1;
+static gint ett_dssetup_dssetup_DsRoleFlags = -1;
+static gint ett_dssetup_dssetup_DsRolePrimaryDomInfoBasic = -1;
+static gint ett_dssetup_dssetup_DsRoleUpgradeStatus = -1;
+static gint ett_dssetup_dssetup_DsRoleOpStatus = -1;
+static gint ett_dssetup_dssetup_DsRoleInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level = -1;
+static gint hf_dssetup_opnum = -1;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags = -1;
+static gint hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role = -1;
+static gint hf_dssetup_dssetup_DsRoleInfo_opstatus = -1;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid = -1;
+static gint hf_dssetup_dssetup_DsRoleOpStatus_status = -1;
+static gint hf_dssetup_dssetup_DsRoleInfo_upgrade = -1;
+static gint hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info = -1;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS = -1;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT = -1;
+static gint hf_dssetup_dssetup_DsRoleInfo_basic = -1;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role = -1;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING = -1;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain = -1;
+static gint hf_dssetup_dssetup_DsRoleUpgradeStatus_upgrading = -1;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain = -1;
+static gint hf_dssetup_werror = -1;
+static gint hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE = -1;
+static gint hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest = -1;
+
+static gint proto_dcerpc_dssetup = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_dssetup = {
+       0x3919286a, 0xb10c, 0x11d0,
+       { 0x9b, 0xa8, 0x00, 0xc0, 0x4f, 0xd9, 0x2e, 0xf5 }
+};
+static guint16 ver_dcerpc_dssetup = 0;
+
+const value_string dssetup_dssetup_DsRole_vals[] = {
+       { DS_ROLE_STANDALONE_WORKSTATION, "DS_ROLE_STANDALONE_WORKSTATION" },
+       { DS_ROLE_MEMBER_WORKSTATION, "DS_ROLE_MEMBER_WORKSTATION" },
+       { DS_ROLE_STANDALONE_SERVER, "DS_ROLE_STANDALONE_SERVER" },
+       { DS_ROLE_MEMBER_SERVER, "DS_ROLE_MEMBER_SERVER" },
+       { DS_ROLE_BACKUP_DC, "DS_ROLE_BACKUP_DC" },
+       { DS_ROLE_PRIMARY_DC, "DS_ROLE_PRIMARY_DC" },
+{ 0, NULL }
+};
+static const true_false_string dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING_tfs = {
+   "DS_ROLE_PRIMARY_DS_RUNNING is SET",
+   "DS_ROLE_PRIMARY_DS_RUNNING is NOT SET",
+};
+static const true_false_string dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE_tfs = {
+   "DS_ROLE_PRIMARY_DS_MIXED_MODE is SET",
+   "DS_ROLE_PRIMARY_DS_MIXED_MODE is NOT SET",
+};
+static const true_false_string dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS_tfs = {
+   "DS_ROLE_UPGRADE_IN_PROGRESS is SET",
+   "DS_ROLE_UPGRADE_IN_PROGRESS is NOT SET",
+};
+static const true_false_string dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT_tfs = {
+   "DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT is SET",
+   "DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT is NOT SET",
+};
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dssetup_dssetup_DsUpgrade_vals[] = {
+       { DS_ROLE_NOT_UPGRADING, "DS_ROLE_NOT_UPGRADING" },
+       { DS_ROLE_UPGRADING, "DS_ROLE_UPGRADING" },
+{ 0, NULL }
+};
+const value_string dssetup_dssetup_DsPrevious_vals[] = {
+       { DS_ROLE_PREVIOUS_UNKNOWN, "DS_ROLE_PREVIOUS_UNKNOWN" },
+       { DS_ROLE_PREVIOUS_PRIMARY, "DS_ROLE_PREVIOUS_PRIMARY" },
+       { DS_ROLE_PREVIOUS_BACKUP, "DS_ROLE_PREVIOUS_BACKUP" },
+{ 0, NULL }
+};
+static int dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dssetup_dssetup_DsRoleOp_vals[] = {
+       { DS_ROLE_OP_IDLE, "DS_ROLE_OP_IDLE" },
+       { DS_ROLE_OP_ACTIVE, "DS_ROLE_OP_ACTIVE" },
+       { DS_ROLE_OP_NEEDS_REBOOT, "DS_ROLE_OP_NEEDS_REBOOT" },
+{ 0, NULL }
+};
+static int dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string dssetup_dssetup_DsRoleInfoLevel_vals[] = {
+       { DS_ROLE_BASIC_INFORMATION, "DS_ROLE_BASIC_INFORMATION" },
+       { DS_ROLE_UPGRADE_STATUS, "DS_ROLE_UPGRADE_STATUS" },
+       { DS_ROLE_OP_STATUS, "DS_ROLE_OP_STATUS" },
+{ 0, NULL }
+};
+static int dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        DS_ROLE_STANDALONE_WORKSTATION=0, */
+/* IDL:        DS_ROLE_MEMBER_WORKSTATION=1, */
+/* IDL:        DS_ROLE_STANDALONE_SERVER=2, */
+/* IDL:        DS_ROLE_MEMBER_SERVER=3, */
+/* IDL:        DS_ROLE_BACKUP_DC=4, */
+/* IDL:        DS_ROLE_PRIMARY_DC=5, */
+/* IDL: } */
+
+int
+dssetup_dissect_enum_DsRole(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DS_ROLE_PRIMARY_DS_RUNNING =  0x00000001 , */
+/* IDL:        DS_ROLE_PRIMARY_DS_MIXED_MODE =  0x00000002 , */
+/* IDL:        DS_ROLE_UPGRADE_IN_PROGRESS =  0x00000004 , */
+/* IDL:        DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT =  0x01000000 , */
+/* IDL: } */
+
+int
+dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_dssetup_dssetup_DsRoleFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DS_ROLE_PRIMARY_DS_RUNNING");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DS_ROLE_PRIMARY_DS_MIXED_MODE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DS_ROLE_UPGRADE_IN_PROGRESS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dssetup_DsRole role; */
+/* IDL:        dssetup_DsRoleFlags flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_domain; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *forest; */
+/* IDL:        GUID domain_guid; */
+/* IDL: } */
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_enum_DsRole(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role, 0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_bitmap_DsRoleFlags(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags, 0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_, NDR_POINTER_UNIQUE, "Pointer to Dns Domain (uint16)",hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_, NDR_POINTER_UNIQUE, "Pointer to Forest (uint16)",hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid, NULL);
+
+       return offset;
+}
+
+int
+dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRolePrimaryDomInfoBasic);
+       }
+       
+       offset = dssetup_dissect_element_DsRolePrimaryDomInfoBasic_role(tvb, offset, pinfo, tree, drep);
+
+       offset = dssetup_dissect_element_DsRolePrimaryDomInfoBasic_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = dssetup_dissect_element_DsRolePrimaryDomInfoBasic_dns_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = dssetup_dissect_element_DsRolePrimaryDomInfoBasic_forest(tvb, offset, pinfo, tree, drep);
+
+       offset = dssetup_dissect_element_DsRolePrimaryDomInfoBasic_domain_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DS_ROLE_NOT_UPGRADING=0, */
+/* IDL:        DS_ROLE_UPGRADING=1, */
+/* IDL: } */
+
+int
+dssetup_dissect_enum_DsUpgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DS_ROLE_PREVIOUS_UNKNOWN=0, */
+/* IDL:        DS_ROLE_PREVIOUS_PRIMARY=1, */
+/* IDL:        DS_ROLE_PREVIOUS_BACKUP=2, */
+/* IDL: } */
+
+int
+dssetup_dissect_enum_DsPrevious(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dssetup_DsUpgrade upgrading; */
+/* IDL:        dssetup_DsPrevious previous_role; */
+/* IDL: } */
+
+static int
+dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_enum_DsUpgrade(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleUpgradeStatus_upgrading, 0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_enum_DsPrevious(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role, 0);
+
+       return offset;
+}
+
+int
+dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRoleUpgradeStatus);
+       }
+       
+       offset = dssetup_dissect_element_DsRoleUpgradeStatus_upgrading(tvb, offset, pinfo, tree, drep);
+
+       offset = dssetup_dissect_element_DsRoleUpgradeStatus_previous_role(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DS_ROLE_OP_IDLE=0, */
+/* IDL:        DS_ROLE_OP_ACTIVE=1, */
+/* IDL:        DS_ROLE_OP_NEEDS_REBOOT=2, */
+/* IDL: } */
+
+int
+dssetup_dissect_enum_DsRoleOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dssetup_DsRoleOp status; */
+/* IDL: } */
+
+static int
+dssetup_dissect_element_DsRoleOpStatus_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_enum_DsRoleOp(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleOpStatus_status, 0);
+
+       return offset;
+}
+
+int
+dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_3_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRoleOpStatus);
+       }
+       
+       offset = dssetup_dissect_element_DsRoleOpStatus_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DS_ROLE_BASIC_INFORMATION=1, */
+/* IDL:        DS_ROLE_UPGRADE_STATUS=2, */
+/* IDL:        DS_ROLE_OP_STATUS=3, */
+/* IDL: } */
+
+int
+dssetup_dissect_enum_DsRoleInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(dssetup_DsRoleInfoLevel)] union { */
+/* IDL: [case(DS_ROLE_BASIC_INFORMATION)] [case(DS_ROLE_BASIC_INFORMATION)] dssetup_DsRolePrimaryDomInfoBasic basic; */
+/* IDL: [case(DS_ROLE_UPGRADE_STATUS)] [case(DS_ROLE_UPGRADE_STATUS)] dssetup_DsRoleUpgradeStatus upgrade; */
+/* IDL: [case(DS_ROLE_OP_STATUS)] [case(DS_ROLE_OP_STATUS)] dssetup_DsRoleOpStatus opstatus; */
+/* IDL: } */
+
+static int
+dssetup_dissect_element_DsRoleInfo_basic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvb,offset,pinfo,tree,drep,hf_dssetup_dssetup_DsRoleInfo_basic,0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRoleInfo_upgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_struct_DsRoleUpgradeStatus(tvb,offset,pinfo,tree,drep,hf_dssetup_dssetup_DsRoleInfo_upgrade,0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRoleInfo_opstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_struct_DsRoleOpStatus(tvb,offset,pinfo,tree,drep,hf_dssetup_dssetup_DsRoleInfo_opstatus,0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dssetup_DsRoleInfo");
+               tree = proto_item_add_subtree(item, ett_dssetup_dssetup_DsRoleInfo);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case DS_ROLE_BASIC_INFORMATION:
+                       offset = dssetup_dissect_element_DsRoleInfo_basic(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DS_ROLE_UPGRADE_STATUS:
+                       offset = dssetup_dissect_element_DsRoleInfo_upgrade(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DS_ROLE_OP_STATUS:
+                       offset = dssetup_dissect_element_DsRoleInfo_opstatus(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+static int
+dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_enum_DsRoleInfoLevel(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level, 0);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_, NDR_POINTER_UNIQUE, "Pointer to Info (dssetup_DsRoleInfo)",hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info);
+
+       return offset;
+}
+
+static int
+dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dssetup_dissect_DsRoleInfo(tvb, offset, pinfo, tree, drep, hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleGetPrimaryDomainInformation( */
+/* IDL: [in] dssetup_DsRoleInfoLevel level, */
+/* IDL: [out] [unique(1)] [switch_is(level)] dssetup_DsRoleInfo *info */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleGetPrimaryDomainInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleGetPrimaryDomainInformation";
+       offset = dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleGetPrimaryDomainInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleGetPrimaryDomainInformation";
+       offset = dssetup_dissect_element_DsRoleGetPrimaryDomainInformation_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleDnsNameToFlatName( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleDnsNameToFlatName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleDnsNameToFlatName";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleDnsNameToFlatName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleDnsNameToFlatName";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleDcAsDc( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleDcAsDc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleDcAsDc";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleDcAsDc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleDcAsDc";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleDcAsReplica( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleDcAsReplica_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleDcAsReplica";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleDcAsReplica_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleDcAsReplica";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleDemoteDc( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleDemoteDc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleDemoteDc";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleDemoteDc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleDemoteDc";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleGetDcOperationProgress( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleGetDcOperationProgress_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleGetDcOperationProgress";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleGetDcOperationProgress_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleGetDcOperationProgress";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleGetDcOperationResults( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleGetDcOperationResults_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleGetDcOperationResults";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleGetDcOperationResults_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleGetDcOperationResults";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleCancel( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleCancel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleCancel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleCancel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleCancel";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleServerSaveStateForUpgrade( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleServerSaveStateForUpgrade_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleServerSaveStateForUpgrade";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleServerSaveStateForUpgrade_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleServerSaveStateForUpgrade";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleUpgradeDownlevelServer( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleUpgradeDownlevelServer_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleUpgradeDownlevelServer";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleUpgradeDownlevelServer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleUpgradeDownlevelServer";
+       return offset;
+}
+
+/* IDL: WERROR dssetup_DsRoleAbortDownlevelServerUpgrade( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DsRoleAbortDownlevelServerUpgrade";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_dssetup_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DsRoleAbortDownlevelServerUpgrade";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector dssetup_dissectors[] = {
+       { 0, "DsRoleGetPrimaryDomainInformation",
+          dssetup_dissect_DsRoleGetPrimaryDomainInformation_request, dssetup_dissect_DsRoleGetPrimaryDomainInformation_response},
+       { 1, "DsRoleDnsNameToFlatName",
+          dssetup_dissect_DsRoleDnsNameToFlatName_request, dssetup_dissect_DsRoleDnsNameToFlatName_response},
+       { 2, "DsRoleDcAsDc",
+          dssetup_dissect_DsRoleDcAsDc_request, dssetup_dissect_DsRoleDcAsDc_response},
+       { 3, "DsRoleDcAsReplica",
+          dssetup_dissect_DsRoleDcAsReplica_request, dssetup_dissect_DsRoleDcAsReplica_response},
+       { 4, "DsRoleDemoteDc",
+          dssetup_dissect_DsRoleDemoteDc_request, dssetup_dissect_DsRoleDemoteDc_response},
+       { 5, "DsRoleGetDcOperationProgress",
+          dssetup_dissect_DsRoleGetDcOperationProgress_request, dssetup_dissect_DsRoleGetDcOperationProgress_response},
+       { 6, "DsRoleGetDcOperationResults",
+          dssetup_dissect_DsRoleGetDcOperationResults_request, dssetup_dissect_DsRoleGetDcOperationResults_response},
+       { 7, "DsRoleCancel",
+          dssetup_dissect_DsRoleCancel_request, dssetup_dissect_DsRoleCancel_response},
+       { 8, "DsRoleServerSaveStateForUpgrade",
+          dssetup_dissect_DsRoleServerSaveStateForUpgrade_request, dssetup_dissect_DsRoleServerSaveStateForUpgrade_response},
+       { 9, "DsRoleUpgradeDownlevelServer",
+          dssetup_dissect_DsRoleUpgradeDownlevelServer_request, dssetup_dissect_DsRoleUpgradeDownlevelServer_response},
+       { 10, "DsRoleAbortDownlevelServerUpgrade",
+          dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_request, dssetup_dissect_DsRoleAbortDownlevelServerUpgrade_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_dssetup(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_level,
+         { "Level", "dssetup.dssetup_DsRoleGetPrimaryDomainInformation.level", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsRoleInfoLevel_vals), 0, NULL, HFILL }},
+       { &hf_dssetup_opnum,
+         { "Operation", "dssetup.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_flags,
+         { "Flags", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleUpgradeStatus_previous_role,
+         { "Previous Role", "dssetup.dssetup_DsRoleUpgradeStatus.previous_role", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsPrevious_vals), 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleInfo_opstatus,
+         { "Opstatus", "dssetup.dssetup_DsRoleInfo.opstatus", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain_guid,
+         { "Domain Guid", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleOpStatus_status,
+         { "Status", "dssetup.dssetup_DsRoleOpStatus.status", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsRoleOp_vals), 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleInfo_upgrade,
+         { "Upgrade", "dssetup.dssetup_DsRoleInfo.upgrade", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleGetPrimaryDomainInformation_info,
+         { "Info", "dssetup.dssetup_DsRoleGetPrimaryDomainInformation.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS,
+         { "Ds Role Upgrade In Progress", "dssetup.dssetup_DsRoleFlags.DS_ROLE_UPGRADE_IN_PROGRESS", FT_BOOLEAN, 32, TFS(&dssetup_DsRoleFlags_DS_ROLE_UPGRADE_IN_PROGRESS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT,
+         { "Ds Role Primary Domain Guid Present", "dssetup.dssetup_DsRoleFlags.DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT", FT_BOOLEAN, 32, TFS(&dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DOMAIN_GUID_PRESENT_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleInfo_basic,
+         { "Basic", "dssetup.dssetup_DsRoleInfo.basic", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_role,
+         { "Role", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.role", FT_UINT1632, BASE_DEC, VALS(dssetup_dssetup_DsRole_vals), 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING,
+         { "Ds Role Primary Ds Running", "dssetup.dssetup_DsRoleFlags.DS_ROLE_PRIMARY_DS_RUNNING", FT_BOOLEAN, 32, TFS(&dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_RUNNING_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_dns_domain,
+         { "Dns Domain", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.dns_domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleUpgradeStatus_upgrading,
+         { "Upgrading", "dssetup.dssetup_DsRoleUpgradeStatus.upgrading", FT_UINT32, BASE_DEC, VALS(dssetup_dssetup_DsUpgrade_vals), 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_domain,
+         { "Domain", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_dssetup_werror,
+         { "Windows Error", "dssetup.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE,
+         { "Ds Role Primary Ds Mixed Mode", "dssetup.dssetup_DsRoleFlags.DS_ROLE_PRIMARY_DS_MIXED_MODE", FT_BOOLEAN, 32, TFS(&dssetup_DsRoleFlags_DS_ROLE_PRIMARY_DS_MIXED_MODE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_dssetup_dssetup_DsRolePrimaryDomInfoBasic_forest,
+         { "Forest", "dssetup.dssetup_DsRolePrimaryDomInfoBasic.forest", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_dssetup,
+               &ett_dssetup_dssetup_DsRoleFlags,
+               &ett_dssetup_dssetup_DsRolePrimaryDomInfoBasic,
+               &ett_dssetup_dssetup_DsRoleUpgradeStatus,
+               &ett_dssetup_dssetup_DsRoleOpStatus,
+               &ett_dssetup_dssetup_DsRoleInfo,
+       };
+
+       proto_dcerpc_dssetup = proto_register_protocol("Active Directory Setup", "DSSETUP", "dssetup");
+       proto_register_field_array(proto_dcerpc_dssetup, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_dssetup(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_dssetup, ett_dcerpc_dssetup,
+               &uuid_dcerpc_dssetup, ver_dcerpc_dssetup,
+               dssetup_dissectors, hf_dssetup_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-dssetup.h b/bin/default/librpc/gen_ndr/packet-dcerpc-dssetup.h
new file mode 100644 (file)
index 0000000..1f0ae15
--- /dev/null
@@ -0,0 +1,52 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dssetup.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/dssetup.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_DSSETUP_H
+#define __PACKET_DCERPC_DSSETUP_H
+
+#define DS_ROLE_STANDALONE_WORKSTATION (0)
+#define DS_ROLE_MEMBER_WORKSTATION (1)
+#define DS_ROLE_STANDALONE_SERVER (2)
+#define DS_ROLE_MEMBER_SERVER (3)
+#define DS_ROLE_BACKUP_DC (4)
+#define DS_ROLE_PRIMARY_DC (5)
+extern const value_string dssetup_dssetup_DsRole_vals[];
+int dssetup_dissect_enum_DsRole(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dssetup_dissect_bitmap_DsRoleFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int dssetup_dissect_struct_DsRolePrimaryDomInfoBasic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DS_ROLE_NOT_UPGRADING (0)
+#define DS_ROLE_UPGRADING (1)
+extern const value_string dssetup_dssetup_DsUpgrade_vals[];
+int dssetup_dissect_enum_DsUpgrade(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DS_ROLE_PREVIOUS_UNKNOWN (0)
+#define DS_ROLE_PREVIOUS_PRIMARY (1)
+#define DS_ROLE_PREVIOUS_BACKUP (2)
+extern const value_string dssetup_dssetup_DsPrevious_vals[];
+int dssetup_dissect_enum_DsPrevious(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dssetup_dissect_struct_DsRoleUpgradeStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DS_ROLE_OP_IDLE (0)
+#define DS_ROLE_OP_ACTIVE (1)
+#define DS_ROLE_OP_NEEDS_REBOOT (2)
+extern const value_string dssetup_dssetup_DsRoleOp_vals[];
+int dssetup_dissect_enum_DsRoleOp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int dssetup_dissect_struct_DsRoleOpStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DS_ROLE_BASIC_INFORMATION (1)
+#define DS_ROLE_UPGRADE_STATUS (2)
+#define DS_ROLE_OP_STATUS (3)
+extern const value_string dssetup_dssetup_DsRoleInfoLevel_vals[];
+int dssetup_dissect_enum_DsRoleInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_DSSETUP_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-echo.c b/bin/default/librpc/gen_ndr/packet-dcerpc-echo.c
new file mode 100644 (file)
index 0000000..3987c3e
--- /dev/null
@@ -0,0 +1,1521 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/echo.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/echo.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-echo.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_rpcecho = -1;
+static gint ett_rpcecho_echo_info1 = -1;
+static gint ett_rpcecho_echo_info2 = -1;
+static gint ett_rpcecho_echo_info3 = -1;
+static gint ett_rpcecho_echo_info4 = -1;
+static gint ett_rpcecho_echo_info5 = -1;
+static gint ett_rpcecho_echo_info6 = -1;
+static gint ett_rpcecho_echo_info7 = -1;
+static gint ett_rpcecho_echo_Info = -1;
+static gint ett_rpcecho_echo_Enum2 = -1;
+static gint ett_rpcecho_echo_Enum3 = -1;
+static gint ett_rpcecho_echo_Surrounding = -1;
+
+
+/* Header field declarations */
+static gint hf_rpcecho_echo_info6_v1 = -1;
+static gint hf_rpcecho_status = -1;
+static gint hf_rpcecho_echo_Info_info2 = -1;
+static gint hf_rpcecho_echo_info5_v2 = -1;
+static gint hf_rpcecho_echo_TestEnum_foo3 = -1;
+static gint hf_rpcecho_echo_TestEnum_foo1 = -1;
+static gint hf_rpcecho_echo_TestCall2_info = -1;
+static gint hf_rpcecho_echo_EchoData_in_data = -1;
+static gint hf_rpcecho_echo_info6_info1 = -1;
+static gint hf_rpcecho_echo_Enum3_e1 = -1;
+static gint hf_rpcecho_echo_TestCall2_level = -1;
+static gint hf_rpcecho_uint32_status = -1;
+static gint hf_rpcecho_opnum = -1;
+static gint hf_rpcecho_echo_Info_info7 = -1;
+static gint hf_rpcecho_echo_Surrounding_x = -1;
+static gint hf_rpcecho_echo_AddOne_in_data = -1;
+static gint hf_rpcecho_echo_Info_info1 = -1;
+static gint hf_rpcecho_echo_Info_info4 = -1;
+static gint hf_rpcecho_echo_TestCall_s2 = -1;
+static gint hf_rpcecho_echo_AddOne_out_data = -1;
+static gint hf_rpcecho_echo_TestSleep_seconds = -1;
+static gint hf_rpcecho_echo_Surrounding_surrounding = -1;
+static gint hf_rpcecho_echo_info2_v = -1;
+static gint hf_rpcecho_echo_SourceData_len = -1;
+static gint hf_rpcecho_echo_Info_info3 = -1;
+static gint hf_rpcecho_echo_Enum2_e2 = -1;
+static gint hf_rpcecho_echo_EchoData_len = -1;
+static gint hf_rpcecho_uint16_status = -1;
+static gint hf_rpcecho_echo_TestSurrounding_data = -1;
+static gint hf_rpcecho_echo_info5_v1 = -1;
+static gint hf_rpcecho_echo_Enum3_e2 = -1;
+static gint hf_rpcecho_echo_SinkData_data = -1;
+static gint hf_rpcecho_echo_EchoData_out_data = -1;
+static gint hf_rpcecho_echo_Info_info5 = -1;
+static gint hf_rpcecho_echo_SourceData_data = -1;
+static gint hf_rpcecho_echo_info4_v = -1;
+static gint hf_rpcecho_echo_info7_info4 = -1;
+static gint hf_rpcecho_echo_TestCall_s1 = -1;
+static gint hf_rpcecho_echo_TestEnum_foo2 = -1;
+static gint hf_rpcecho_echo_Info_info6 = -1;
+static gint hf_rpcecho_echo_info1_v = -1;
+static gint hf_rpcecho_echo_info3_v = -1;
+static gint hf_rpcecho_echo_Enum2_e1 = -1;
+static gint hf_rpcecho_echo_TestDoublePointer_data = -1;
+static gint hf_rpcecho_echo_info7_v1 = -1;
+static gint hf_rpcecho_echo_SinkData_len = -1;
+
+static gint proto_dcerpc_rpcecho = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_rpcecho = {
+       0x60a15ec5, 0x4de8, 0x11d7,
+       { 0xa6, 0x37, 0x00, 0x50, 0x56, 0xa2, 0x01, 0x82 }
+};
+static guint16 ver_dcerpc_rpcecho = 1;
+
+static int rpcecho_dissect_element_echo_info1_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info2_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info3_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info4_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info5_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info5_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info6_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info6_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info7_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_info7_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Info_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string rpcecho_echo_Enum1_vals[] = {
+       { ECHO_ENUM1, "ECHO_ENUM1" },
+       { ECHO_ENUM2, "ECHO_ENUM2" },
+{ 0, NULL }
+};
+const value_string rpcecho_echo_Enum1_32_vals[] = {
+       { ECHO_ENUM1_32, "ECHO_ENUM1_32" },
+       { ECHO_ENUM2_32, "ECHO_ENUM2_32" },
+{ 0, NULL }
+};
+static int rpcecho_dissect_element_echo_Enum2_e1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Enum2_e2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Enum3_e1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Enum3_e2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Surrounding_x(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Surrounding_surrounding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_Surrounding_surrounding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_AddOne_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_AddOne_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_AddOne_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_EchoData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SinkData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SinkData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SinkData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SourceData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SourceData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_SourceData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall_s1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall_s1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall_s2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall_s2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall_s2__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestCall2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestSleep_seconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestEnum_foo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestEnum_foo1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestEnum_foo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestEnum_foo2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestEnum_foo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestEnum_foo3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestSurrounding_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestSurrounding_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestDoublePointer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestDoublePointer_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestDoublePointer_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rpcecho_dissect_element_echo_TestDoublePointer_data___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        uint8 v; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info1_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info1_v, 0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info1);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info1_v(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 v; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info2_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info2_v, 0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info2);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info2_v(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 v; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info3_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info3_v, 0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info3);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info3_v(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+/* IDL: struct echo_info4 { */
+/* IDL:        hyper v; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info4_v(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info4_v, NULL);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info4);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info4_v(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 v1; */
+/* IDL:        hyper v2; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info5_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info5_v1, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_info5_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info5_v2, NULL);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info5);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info5_v1(tvb, offset, pinfo, tree, drep);
+
+       offset = rpcecho_dissect_element_echo_info5_v2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 v1; */
+/* IDL:        echo_info1 info1; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info6_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info6_v1, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_info6_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info1(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_info6_info1,0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info6);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info6_v1(tvb, offset, pinfo, tree, drep);
+
+       offset = rpcecho_dissect_element_echo_info6_info1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 v1; */
+/* IDL:        struct echo_info4 { */
+/* IDL: } info4; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_info7_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_info7_v1, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_info7_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_HASH(0x2081398)(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_info7_info4,0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_info7);
+       }
+       
+       offset = rpcecho_dissect_element_echo_info7_v1(tvb, offset, pinfo, tree, drep);
+
+       offset = rpcecho_dissect_element_echo_info7_info4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [case(1)] echo_info1 info1; */
+/* IDL: [case(2)] [case(2)] echo_info2 info2; */
+/* IDL: [case(3)] [case(3)] echo_info3 info3; */
+/* IDL: [case(4)] [case(4)] struct echo_info4 { */
+/* IDL: } info4; */
+/* IDL: [case(5)] [case(5)] echo_info5 info5; */
+/* IDL: [case(6)] [case(6)] echo_info6 info6; */
+/* IDL: [case(7)] [case(7)] echo_info7 info7; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_Info_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info1(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info1,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Info_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info2(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info2,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Info_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info3(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info3,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_HASH(0x2082cd0)(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info4,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Info_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info5(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info5,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Info_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info6(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info6,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Info_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_info7(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Info_info7,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_Info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "echo_Info");
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_Info);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = rpcecho_dissect_element_echo_Info_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = rpcecho_dissect_element_echo_Info_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = rpcecho_dissect_element_echo_Info_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = rpcecho_dissect_element_echo_Info_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = rpcecho_dissect_element_echo_Info_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = rpcecho_dissect_element_echo_Info_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = rpcecho_dissect_element_echo_Info_info7(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        ECHO_ENUM1=1, */
+/* IDL:        ECHO_ENUM2=2, */
+/* IDL: } */
+
+int
+rpcecho_dissect_enum_echo_Enum1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        ECHO_ENUM1_32=1, */
+/* IDL:        ECHO_ENUM2_32=2, */
+/* IDL: } */
+
+int
+rpcecho_dissect_enum_echo_Enum1_32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        echo_Enum1 e1; */
+/* IDL:        echo_Enum1_32 e2; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_Enum2_e1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_enum_echo_Enum1(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_Enum2_e1, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Enum2_e2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_enum_echo_Enum1_32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_Enum2_e2, 0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_Enum2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_Enum2);
+       }
+       
+       offset = rpcecho_dissect_element_echo_Enum2_e1(tvb, offset, pinfo, tree, drep);
+
+       offset = rpcecho_dissect_element_echo_Enum2_e2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(ECHO_ENUM1)] [case(ECHO_ENUM1)] echo_Enum1 e1; */
+/* IDL: [case(ECHO_ENUM2)] [case(ECHO_ENUM2)] echo_Enum2 e2; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_Enum3_e1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_enum_echo_Enum1(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_Enum3_e1, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Enum3_e2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_Enum2(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_Enum3_e2,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_Enum3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "echo_Enum3");
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_Enum3);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case ECHO_ENUM1:
+                       offset = rpcecho_dissect_element_echo_Enum3_e1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case ECHO_ENUM2:
+                       offset = rpcecho_dissect_element_echo_Enum3_e2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 x; */
+/* IDL:        [size_is(x)] uint16 surrounding[*]; */
+/* IDL: } */
+
+static int
+rpcecho_dissect_element_echo_Surrounding_x(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_Surrounding_x, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Surrounding_surrounding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_Surrounding_surrounding_);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_Surrounding_surrounding_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_Surrounding_surrounding, 0);
+
+       return offset;
+}
+
+int
+rpcecho_dissect_struct_echo_Surrounding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_rpcecho_echo_Surrounding);
+       }
+       
+       offset = rpcecho_dissect_element_echo_Surrounding_x(tvb, offset, pinfo, tree, drep);
+
+       offset = rpcecho_dissect_element_echo_Surrounding_surrounding(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_AddOne_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_AddOne_in_data, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_AddOne_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_AddOne_out_data_, NDR_POINTER_REF, "Pointer to Out Data (uint32)",hf_rpcecho_echo_AddOne_out_data);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_AddOne_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_AddOne_out_data, 0);
+
+       return offset;
+}
+
+/* IDL: void echo_AddOne( */
+/* IDL: [in] uint32 in_data, */
+/* IDL: [out] [ref] uint32 *out_data */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_AddOne_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_AddOne";
+       offset = rpcecho_dissect_element_echo_AddOne_out_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_AddOne_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_AddOne";
+       offset = rpcecho_dissect_element_echo_AddOne_in_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_EchoData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_EchoData_len, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_EchoData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_EchoData_in_data_);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_EchoData_in_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_EchoData_in_data, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_EchoData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_EchoData_out_data_);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_EchoData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_EchoData_out_data, 0);
+
+       return offset;
+}
+
+/* IDL: void echo_EchoData( */
+/* IDL: [in] uint32 len, */
+/* IDL: [in] [size_is(len)] uint8 in_data[*], */
+/* IDL: [out] [size_is(len)] uint8 out_data[*] */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_EchoData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_EchoData";
+       offset = rpcecho_dissect_element_echo_EchoData_out_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_EchoData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_EchoData";
+       offset = rpcecho_dissect_element_echo_EchoData_len(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rpcecho_dissect_element_echo_EchoData_in_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_SinkData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_SinkData_len, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_SinkData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_SinkData_data_);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_SinkData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_SinkData_data, 0);
+
+       return offset;
+}
+
+/* IDL: void echo_SinkData( */
+/* IDL: [in] uint32 len, */
+/* IDL: [in] [size_is(len)] uint8 data[*] */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_SinkData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_SinkData";
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_SinkData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_SinkData";
+       offset = rpcecho_dissect_element_echo_SinkData_len(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rpcecho_dissect_element_echo_SinkData_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_SourceData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_SourceData_len, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_SourceData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_SourceData_data_);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_SourceData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_SourceData_data, 0);
+
+       return offset;
+}
+
+/* IDL: void echo_SourceData( */
+/* IDL: [in] uint32 len, */
+/* IDL: [out] [size_is(len)] uint8 data[*] */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_SourceData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_SourceData";
+       offset = rpcecho_dissect_element_echo_SourceData_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_SourceData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_SourceData";
+       offset = rpcecho_dissect_element_echo_SourceData_len(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall_s1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestCall_s1_, NDR_POINTER_REF, "Pointer to S1 (uint16)",hf_rpcecho_echo_TestCall_s1);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall_s1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_rpcecho_echo_TestCall_s1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall_s2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestCall_s2_, NDR_POINTER_REF, "Pointer to S2 (uint16)",hf_rpcecho_echo_TestCall_s2);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall_s2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestCall_s2__, NDR_POINTER_UNIQUE, "Pointer to S2 (uint16)",hf_rpcecho_echo_TestCall_s2);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall_s2__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_rpcecho_echo_TestCall_s2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: void echo_TestCall( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *s1, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **s2 */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_TestCall_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestCall";
+       offset = rpcecho_dissect_element_echo_TestCall_s2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_TestCall_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestCall";
+       offset = rpcecho_dissect_element_echo_TestCall_s1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_TestCall2_level, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestCall2_info_, NDR_POINTER_REF, "Pointer to Info (echo_Info)",hf_rpcecho_echo_TestCall2_info);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestCall2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_echo_Info(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_TestCall2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS echo_TestCall2( */
+/* IDL: [in] uint16 level, */
+/* IDL: [out] [ref] [switch_is(level)] echo_Info *info */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_TestCall2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="echo_TestCall2";
+       offset = rpcecho_dissect_element_echo_TestCall2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_rpcecho_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_TestCall2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestCall2";
+       offset = rpcecho_dissect_element_echo_TestCall2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestSleep_seconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_TestSleep_seconds, 0);
+
+       return offset;
+}
+
+/* IDL: uint32 echo_TestSleep( */
+/* IDL: [in] uint32 seconds */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_TestSleep_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="echo_TestSleep";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rpcecho_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_TestSleep_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestSleep";
+       offset = rpcecho_dissect_element_echo_TestSleep_seconds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestEnum_foo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestEnum_foo1_, NDR_POINTER_REF, "Pointer to Foo1 (echo_Enum1)",hf_rpcecho_echo_TestEnum_foo1);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestEnum_foo1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_enum_echo_Enum1(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_TestEnum_foo1, 0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestEnum_foo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestEnum_foo2_, NDR_POINTER_REF, "Pointer to Foo2 (echo_Enum2)",hf_rpcecho_echo_TestEnum_foo2);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestEnum_foo2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_Enum2(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_TestEnum_foo2,0);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestEnum_foo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestEnum_foo3_, NDR_POINTER_REF, "Pointer to Foo3 (echo_Enum3)",hf_rpcecho_echo_TestEnum_foo3);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestEnum_foo3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_echo_Enum3(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_TestEnum_foo3, *0);
+
+       return offset;
+}
+
+/* IDL: void echo_TestEnum( */
+/* IDL: [out] [in] [ref] echo_Enum1 *foo1, */
+/* IDL: [out] [in] [ref] echo_Enum2 *foo2, */
+/* IDL: [out] [ref] [in] [switch_is(*foo1)] echo_Enum3 *foo3 */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_TestEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestEnum";
+       offset = rpcecho_dissect_element_echo_TestEnum_foo1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = rpcecho_dissect_element_echo_TestEnum_foo2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = rpcecho_dissect_element_echo_TestEnum_foo3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_TestEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestEnum";
+       offset = rpcecho_dissect_element_echo_TestEnum_foo1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rpcecho_dissect_element_echo_TestEnum_foo2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rpcecho_dissect_element_echo_TestEnum_foo3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestSurrounding_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestSurrounding_data_, NDR_POINTER_REF, "Pointer to Data (echo_Surrounding)",hf_rpcecho_echo_TestSurrounding_data);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestSurrounding_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rpcecho_dissect_struct_echo_Surrounding(tvb,offset,pinfo,tree,drep,hf_rpcecho_echo_TestSurrounding_data,0);
+
+       return offset;
+}
+
+/* IDL: void echo_TestSurrounding( */
+/* IDL: [out] [in] [ref] echo_Surrounding *data */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_TestSurrounding_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestSurrounding";
+       offset = rpcecho_dissect_element_echo_TestSurrounding_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_TestSurrounding_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestSurrounding";
+       offset = rpcecho_dissect_element_echo_TestSurrounding_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestDoublePointer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestDoublePointer_data_, NDR_POINTER_REF, "Pointer to Data (uint16)",hf_rpcecho_echo_TestDoublePointer_data);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestDoublePointer_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestDoublePointer_data__, NDR_POINTER_UNIQUE, "Pointer to Data (uint16)",hf_rpcecho_echo_TestDoublePointer_data);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestDoublePointer_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, rpcecho_dissect_element_echo_TestDoublePointer_data___, NDR_POINTER_UNIQUE, "Pointer to Data (uint16)",hf_rpcecho_echo_TestDoublePointer_data);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_element_echo_TestDoublePointer_data___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_rpcecho_echo_TestDoublePointer_data, 0);
+
+       return offset;
+}
+
+/* IDL: uint16 echo_TestDoublePointer( */
+/* IDL: [ref] [in] uint16 ***data */
+/* IDL: ); */
+
+static int
+rpcecho_dissect_echo_TestDoublePointer_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint16 status;
+
+       pinfo->dcerpc_procedure_name="echo_TestDoublePointer";
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_rpcecho_uint16_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+rpcecho_dissect_echo_TestDoublePointer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="echo_TestDoublePointer";
+       offset = rpcecho_dissect_element_echo_TestDoublePointer_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector rpcecho_dissectors[] = {
+       { 0, "echo_AddOne",
+          rpcecho_dissect_echo_AddOne_request, rpcecho_dissect_echo_AddOne_response},
+       { 1, "echo_EchoData",
+          rpcecho_dissect_echo_EchoData_request, rpcecho_dissect_echo_EchoData_response},
+       { 2, "echo_SinkData",
+          rpcecho_dissect_echo_SinkData_request, rpcecho_dissect_echo_SinkData_response},
+       { 3, "echo_SourceData",
+          rpcecho_dissect_echo_SourceData_request, rpcecho_dissect_echo_SourceData_response},
+       { 4, "echo_TestCall",
+          rpcecho_dissect_echo_TestCall_request, rpcecho_dissect_echo_TestCall_response},
+       { 5, "echo_TestCall2",
+          rpcecho_dissect_echo_TestCall2_request, rpcecho_dissect_echo_TestCall2_response},
+       { 6, "echo_TestSleep",
+          rpcecho_dissect_echo_TestSleep_request, rpcecho_dissect_echo_TestSleep_response},
+       { 7, "echo_TestEnum",
+          rpcecho_dissect_echo_TestEnum_request, rpcecho_dissect_echo_TestEnum_response},
+       { 8, "echo_TestSurrounding",
+          rpcecho_dissect_echo_TestSurrounding_request, rpcecho_dissect_echo_TestSurrounding_response},
+       { 9, "echo_TestDoublePointer",
+          rpcecho_dissect_echo_TestDoublePointer_request, rpcecho_dissect_echo_TestDoublePointer_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_rpcecho(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_rpcecho_echo_info6_v1,
+         { "V1", "rpcecho.echo_info6.v1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_status,
+         { "NT Error", "rpcecho.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info2,
+         { "Info2", "rpcecho.echo_Info.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info5_v2,
+         { "V2", "rpcecho.echo_info5.v2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestEnum_foo3,
+         { "Foo3", "rpcecho.echo_TestEnum.foo3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestEnum_foo1,
+         { "Foo1", "rpcecho.echo_TestEnum.foo1", FT_UINT1632, BASE_DEC, VALS(rpcecho_echo_Enum1_vals), 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestCall2_info,
+         { "Info", "rpcecho.echo_TestCall2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_EchoData_in_data,
+         { "In Data", "rpcecho.echo_EchoData.in_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info6_info1,
+         { "Info1", "rpcecho.echo_info6.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Enum3_e1,
+         { "E1", "rpcecho.echo_Enum3.e1", FT_UINT1632, BASE_DEC, VALS(rpcecho_echo_Enum1_vals), 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestCall2_level,
+         { "Level", "rpcecho.echo_TestCall2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_uint32_status,
+         { "uint32", "rpcecho.uint32_status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_opnum,
+         { "Operation", "rpcecho.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info7,
+         { "Info7", "rpcecho.echo_Info.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Surrounding_x,
+         { "X", "rpcecho.echo_Surrounding.x", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_AddOne_in_data,
+         { "In Data", "rpcecho.echo_AddOne.in_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info1,
+         { "Info1", "rpcecho.echo_Info.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info4,
+         { "Info4", "rpcecho.echo_Info.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestCall_s2,
+         { "S2", "rpcecho.echo_TestCall.s2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_AddOne_out_data,
+         { "Out Data", "rpcecho.echo_AddOne.out_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestSleep_seconds,
+         { "Seconds", "rpcecho.echo_TestSleep.seconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Surrounding_surrounding,
+         { "Surrounding", "rpcecho.echo_Surrounding.surrounding", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info2_v,
+         { "V", "rpcecho.echo_info2.v", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_SourceData_len,
+         { "Len", "rpcecho.echo_SourceData.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info3,
+         { "Info3", "rpcecho.echo_Info.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Enum2_e2,
+         { "E2", "rpcecho.echo_Enum2.e2", FT_UINT32, BASE_DEC, VALS(rpcecho_echo_Enum1_32_vals), 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_EchoData_len,
+         { "Len", "rpcecho.echo_EchoData.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_uint16_status,
+         { "uint16", "rpcecho.uint16_status", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestSurrounding_data,
+         { "Data", "rpcecho.echo_TestSurrounding.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info5_v1,
+         { "V1", "rpcecho.echo_info5.v1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Enum3_e2,
+         { "E2", "rpcecho.echo_Enum3.e2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_SinkData_data,
+         { "Data", "rpcecho.echo_SinkData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_EchoData_out_data,
+         { "Out Data", "rpcecho.echo_EchoData.out_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info5,
+         { "Info5", "rpcecho.echo_Info.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_SourceData_data,
+         { "Data", "rpcecho.echo_SourceData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info4_v,
+         { "V", "rpcecho.echo_info4.v", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info7_info4,
+         { "Info4", "rpcecho.echo_info7.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestCall_s1,
+         { "S1", "rpcecho.echo_TestCall.s1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestEnum_foo2,
+         { "Foo2", "rpcecho.echo_TestEnum.foo2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Info_info6,
+         { "Info6", "rpcecho.echo_Info.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info1_v,
+         { "V", "rpcecho.echo_info1.v", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info3_v,
+         { "V", "rpcecho.echo_info3.v", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_Enum2_e1,
+         { "E1", "rpcecho.echo_Enum2.e1", FT_UINT1632, BASE_DEC, VALS(rpcecho_echo_Enum1_vals), 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_TestDoublePointer_data,
+         { "Data", "rpcecho.echo_TestDoublePointer.data", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_info7_v1,
+         { "V1", "rpcecho.echo_info7.v1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rpcecho_echo_SinkData_len,
+         { "Len", "rpcecho.echo_SinkData.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_rpcecho,
+               &ett_rpcecho_echo_info1,
+               &ett_rpcecho_echo_info2,
+               &ett_rpcecho_echo_info3,
+               &ett_rpcecho_echo_info4,
+               &ett_rpcecho_echo_info5,
+               &ett_rpcecho_echo_info6,
+               &ett_rpcecho_echo_info7,
+               &ett_rpcecho_echo_Info,
+               &ett_rpcecho_echo_Enum2,
+               &ett_rpcecho_echo_Enum3,
+               &ett_rpcecho_echo_Surrounding,
+       };
+
+       proto_dcerpc_rpcecho = proto_register_protocol("Simple echo pipe", "RPCECHO", "rpcecho");
+       proto_register_field_array(proto_dcerpc_rpcecho, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_rpcecho(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_rpcecho, ett_dcerpc_rpcecho,
+               &uuid_dcerpc_rpcecho, ver_dcerpc_rpcecho,
+               rpcecho_dissectors, hf_rpcecho_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-echo.h b/bin/default/librpc/gen_ndr/packet-dcerpc-echo.h
new file mode 100644 (file)
index 0000000..c487ca1
--- /dev/null
@@ -0,0 +1,36 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/echo.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/echo.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_RPCECHO_H
+#define __PACKET_DCERPC_RPCECHO_H
+
+int rpcecho_dissect_struct_echo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define ECHO_ENUM1 (1)
+#define ECHO_ENUM2 (2)
+extern const value_string rpcecho_echo_Enum1_vals[];
+int rpcecho_dissect_enum_echo_Enum1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define ECHO_ENUM1_32 (1)
+#define ECHO_ENUM2_32 (2)
+extern const value_string rpcecho_echo_Enum1_32_vals[];
+int rpcecho_dissect_enum_echo_Enum1_32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int rpcecho_dissect_struct_echo_Enum2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int rpcecho_dissect_struct_echo_Surrounding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_RPCECHO_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-efs.c b/bin/default/librpc/gen_ndr/packet-dcerpc-efs.c
new file mode 100644 (file)
index 0000000..b365f6c
--- /dev/null
@@ -0,0 +1,1269 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/efs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/efs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-efs.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_efs = -1;
+static gint ett_efs_EFS_HASH_BLOB = -1;
+static gint ett_efs_ENCRYPTION_CERTIFICATE_HASH = -1;
+static gint ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST = -1;
+static gint ett_efs_EFS_CERTIFICATE_BLOB = -1;
+static gint ett_efs_ENCRYPTION_CERTIFICATE = -1;
+
+
+/* Header field declarations */
+static gint hf_efs_EfsRpcQueryUsersOnFile_pUsers = -1;
+static gint hf_efs_EfsRpcDecryptFileSrv_FileName = -1;
+static gint hf_efs_EfsRpcEncryptFileSrv_Filename = -1;
+static gint hf_efs_EfsRpcOpenFileRaw_pvContext = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_TotalLength = -1;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers = -1;
+static gint hf_efs_EfsRpcWriteFileRaw_pvContext = -1;
+static gint hf_efs_EFS_HASH_BLOB_pbData = -1;
+static gint hf_efs_EfsRpcAddUsersToFile_FileName = -1;
+static gint hf_efs_EfsRpcReadFileRaw_pvContext = -1;
+static gint hf_efs_werror = -1;
+static gint hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate = -1;
+static gint hf_efs_EfsRpcQueryRecoveryAgents_FileName = -1;
+static gint hf_efs_EfsRpcOpenFileRaw_FileName = -1;
+static gint hf_efs_opnum = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash = -1;
+static gint hf_efs_EfsRpcDecryptFileSrv_Reserved = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_pUserSid = -1;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_pbData = -1;
+static gint hf_efs_EFS_HASH_BLOB_cbData = -1;
+static gint hf_efs_EfsRpcCloseRaw_pvContext = -1;
+static gint hf_efs_EFS_CERTIFICATE_BLOB_cbData = -1;
+static gint hf_efs_EfsRpcQueryUsersOnFile_FileName = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength = -1;
+static gint hf_efs_EfsRpcOpenFileRaw_Flags = -1;
+static gint hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents = -1;
+static gint hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation = -1;
+static gint hf_efs_EfsRpcRemoveUsersFromFile_FileName = -1;
+
+static gint proto_dcerpc_efs = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_efs = {
+       0xc681d488, 0xd850, 0x11d0,
+       { 0x8c, 0x52, 0x00, 0xc0, 0x4f, 0xd9, 0x0f, 0x7e }
+};
+static guint16 ver_dcerpc_efs = 1;
+
+static int efs_dissect_element_EFS_HASH_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_HASH_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_HASH_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_HASH_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_CERTIFICATE_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcOpenFileRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcOpenFileRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcOpenFileRaw_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcReadFileRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcReadFileRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcWriteFileRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcWriteFileRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcCloseRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcCloseRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcDecryptFileSrv_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryUsersOnFile_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryRecoveryAgents_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        uint32 cbData; */
+/* IDL:        [unique(1)] [size_is(cbData)] uint8 *pbData; */
+/* IDL: } */
+
+static int
+efs_dissect_element_EFS_HASH_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_EFS_HASH_BLOB_cbData, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_HASH_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_HASH_BLOB_pbData_, NDR_POINTER_UNIQUE, "Pointer to Pbdata (uint8)",hf_efs_EFS_HASH_BLOB_pbData);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_HASH_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_HASH_BLOB_pbData__);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_HASH_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_efs_EFS_HASH_BLOB_pbData, 0);
+
+       return offset;
+}
+
+int
+efs_dissect_struct_EFS_HASH_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_efs_EFS_HASH_BLOB);
+       }
+       
+       offset = efs_dissect_element_EFS_HASH_BLOB_cbData(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_EFS_HASH_BLOB_pbData(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 cbTotalLength; */
+/* IDL:        [unique(1)] dom_sid *pUserSid; */
+/* IDL:        [unique(1)] EFS_HASH_BLOB *pHash; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *lpDisplayInformation; */
+/* IDL: } */
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_, NDR_POINTER_UNIQUE, "Pointer to Pusersid (dom_sid)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid,0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash_, NDR_POINTER_UNIQUE, "Pointer to Phash (EFS_HASH_BLOB)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_EFS_HASH_BLOB(tvb,offset,pinfo,tree,drep,hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash,0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation_, NDR_POINTER_UNIQUE, "Pointer to Lpdisplayinformation (uint16)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_efs_ENCRYPTION_CERTIFICATE_HASH);
+       }
+       
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pUserSid(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_pHash(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 nCert_Hash; */
+/* IDL:        [unique(1)] [size_is(nCert_Hash)] ENCRYPTION_CERTIFICATE_HASH *pUsers[*]; */
+/* IDL: } */
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers_);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers__, NDR_POINTER_UNIQUE, "Pointer to Pusers (ENCRYPTION_CERTIFICATE_HASH)",hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(tvb,offset,pinfo,tree,drep,hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers,0);
+
+       return offset;
+}
+
+int
+efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST);
+       }
+       
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwCertEncodingType; */
+/* IDL:        uint32 cbData; */
+/* IDL:        [unique(1)] [size_is(cbData)] uint8 *pbData; */
+/* IDL: } */
+
+static int
+efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_CERTIFICATE_BLOB_cbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_EFS_CERTIFICATE_BLOB_cbData, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData_, NDR_POINTER_UNIQUE, "Pointer to Pbdata (uint8)",hf_efs_EFS_CERTIFICATE_BLOB_pbData);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_efs_EFS_CERTIFICATE_BLOB_pbData, 0);
+
+       return offset;
+}
+
+int
+efs_dissect_struct_EFS_CERTIFICATE_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_efs_EFS_CERTIFICATE_BLOB);
+       }
+       
+       offset = efs_dissect_element_EFS_CERTIFICATE_BLOB_dwCertEncodingType(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_EFS_CERTIFICATE_BLOB_cbData(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_EFS_CERTIFICATE_BLOB_pbData(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 TotalLength; */
+/* IDL:        [unique(1)] dom_sid *pUserSid; */
+/* IDL:        [unique(1)] EFS_CERTIFICATE_BLOB *pCertBlob; */
+/* IDL: } */
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_ENCRYPTION_CERTIFICATE_TotalLength, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_, NDR_POINTER_UNIQUE, "Pointer to Pusersid (dom_sid)",hf_efs_ENCRYPTION_CERTIFICATE_pUserSid);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_efs_ENCRYPTION_CERTIFICATE_pUserSid,0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob_, NDR_POINTER_UNIQUE, "Pointer to Pcertblob (EFS_CERTIFICATE_BLOB)",hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_EFS_CERTIFICATE_BLOB(tvb,offset,pinfo,tree,drep,hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob,0);
+
+       return offset;
+}
+
+int
+efs_dissect_struct_ENCRYPTION_CERTIFICATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_efs_ENCRYPTION_CERTIFICATE);
+       }
+       
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_TotalLength(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_pUserSid(tvb, offset, pinfo, tree, drep);
+
+       offset = efs_dissect_element_ENCRYPTION_CERTIFICATE_pCertBlob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcOpenFileRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcOpenFileRaw_pvContext_, NDR_POINTER_REF, "Pointer to Pvcontext (policy_handle)",hf_efs_EfsRpcOpenFileRaw_pvContext);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcOpenFileRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_efs_EfsRpcOpenFileRaw_pvContext, 0);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcOpenFileRaw_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcOpenFileRaw_FileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_EfsRpcOpenFileRaw_Flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcOpenFileRaw( */
+/* IDL: [out] [ref] policy_handle *pvContext, */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
+/* IDL: [in] uint32 Flags */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcOpenFileRaw_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcOpenFileRaw";
+       offset = efs_dissect_element_EfsRpcOpenFileRaw_pvContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcOpenFileRaw_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcOpenFileRaw";
+       offset = efs_dissect_element_EfsRpcOpenFileRaw_FileName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = efs_dissect_element_EfsRpcOpenFileRaw_Flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcReadFileRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcReadFileRaw_pvContext_, NDR_POINTER_REF, "Pointer to Pvcontext (policy_handle)",hf_efs_EfsRpcReadFileRaw_pvContext);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcReadFileRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_efs_EfsRpcReadFileRaw_pvContext, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcReadFileRaw( */
+/* IDL: [in] [ref] policy_handle *pvContext */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcReadFileRaw_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcReadFileRaw";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcReadFileRaw_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcReadFileRaw";
+       offset = efs_dissect_element_EfsRpcReadFileRaw_pvContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcWriteFileRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcWriteFileRaw_pvContext_, NDR_POINTER_REF, "Pointer to Pvcontext (policy_handle)",hf_efs_EfsRpcWriteFileRaw_pvContext);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcWriteFileRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_efs_EfsRpcWriteFileRaw_pvContext, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcWriteFileRaw( */
+/* IDL: [in] [ref] policy_handle *pvContext */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcWriteFileRaw_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcWriteFileRaw";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcWriteFileRaw_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcWriteFileRaw";
+       offset = efs_dissect_element_EfsRpcWriteFileRaw_pvContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcCloseRaw_pvContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcCloseRaw_pvContext_, NDR_POINTER_REF, "Pointer to Pvcontext (policy_handle)",hf_efs_EfsRpcCloseRaw_pvContext);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcCloseRaw_pvContext_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_efs_EfsRpcCloseRaw_pvContext, 0);
+
+       return offset;
+}
+
+/* IDL: void EfsRpcCloseRaw( */
+/* IDL: [out] [in] [ref] policy_handle *pvContext */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcCloseRaw_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcCloseRaw";
+       offset = efs_dissect_element_EfsRpcCloseRaw_pvContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcCloseRaw_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcCloseRaw";
+       offset = efs_dissect_element_EfsRpcCloseRaw_pvContext(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcEncryptFileSrv_Filename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcEncryptFileSrv( */
+/* IDL: [in] [charset(UTF16)] uint16 Filename[*] */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcEncryptFileSrv_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcEncryptFileSrv";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcEncryptFileSrv_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcEncryptFileSrv";
+       offset = efs_dissect_element_EfsRpcEncryptFileSrv_Filename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcDecryptFileSrv_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcDecryptFileSrv_FileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_efs_EfsRpcDecryptFileSrv_Reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcDecryptFileSrv( */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
+/* IDL: [in] uint32 Reserved */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcDecryptFileSrv_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcDecryptFileSrv";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcDecryptFileSrv_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcDecryptFileSrv";
+       offset = efs_dissect_element_EfsRpcDecryptFileSrv_FileName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = efs_dissect_element_EfsRpcDecryptFileSrv_Reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryUsersOnFile_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcQueryUsersOnFile_FileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_, NDR_POINTER_REF, "Pointer to Pusers (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryUsersOnFile_pUsers);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__, NDR_POINTER_UNIQUE, "Pointer to Pusers (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryUsersOnFile_pUsers);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvb,offset,pinfo,tree,drep,hf_efs_EfsRpcQueryUsersOnFile_pUsers,0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcQueryUsersOnFile( */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
+/* IDL: [out] [unique(1)] [ref] ENCRYPTION_CERTIFICATE_HASH_LIST **pUsers */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcQueryUsersOnFile_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcQueryUsersOnFile";
+       offset = efs_dissect_element_EfsRpcQueryUsersOnFile_pUsers(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcQueryUsersOnFile_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcQueryUsersOnFile";
+       offset = efs_dissect_element_EfsRpcQueryUsersOnFile_FileName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryRecoveryAgents_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcQueryRecoveryAgents_FileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_, NDR_POINTER_REF, "Pointer to Precoveryagents (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__, NDR_POINTER_UNIQUE, "Pointer to Precoveryagents (ENCRYPTION_CERTIFICATE_HASH_LIST)",hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvb,offset,pinfo,tree,drep,hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents,0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcQueryRecoveryAgents( */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*], */
+/* IDL: [out] [unique(1)] [ref] ENCRYPTION_CERTIFICATE_HASH_LIST **pRecoveryAgents */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcQueryRecoveryAgents_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcQueryRecoveryAgents";
+       offset = efs_dissect_element_EfsRpcQueryRecoveryAgents_pRecoveryAgents(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcQueryRecoveryAgents_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcQueryRecoveryAgents";
+       offset = efs_dissect_element_EfsRpcQueryRecoveryAgents_FileName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcRemoveUsersFromFile_FileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcRemoveUsersFromFile( */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*] */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcRemoveUsersFromFile_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcRemoveUsersFromFile";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcRemoveUsersFromFile_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcRemoveUsersFromFile";
+       offset = efs_dissect_element_EfsRpcRemoveUsersFromFile_FileName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_efs_EfsRpcAddUsersToFile_FileName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcAddUsersToFile( */
+/* IDL: [in] [charset(UTF16)] uint16 FileName[*] */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcAddUsersToFile_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcAddUsersToFile";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcAddUsersToFile_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcAddUsersToFile";
+       offset = efs_dissect_element_EfsRpcAddUsersToFile_FileName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate_, NDR_POINTER_UNIQUE, "Pointer to Pencryptioncertificate (ENCRYPTION_CERTIFICATE)",hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate);
+
+       return offset;
+}
+
+static int
+efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = efs_dissect_struct_ENCRYPTION_CERTIFICATE(tvb,offset,pinfo,tree,drep,hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate,0);
+
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcSetFileEncryptionKey( */
+/* IDL: [unique(1)] [in] ENCRYPTION_CERTIFICATE *pEncryptionCertificate */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcSetFileEncryptionKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcSetFileEncryptionKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcSetFileEncryptionKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcSetFileEncryptionKey";
+       offset = efs_dissect_element_EfsRpcSetFileEncryptionKey_pEncryptionCertificate(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcNotSupported( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcNotSupported_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcNotSupported";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcNotSupported_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcNotSupported";
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcFileKeyInfo( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcFileKeyInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcFileKeyInfo";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcFileKeyInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcFileKeyInfo";
+       return offset;
+}
+
+/* IDL: WERROR EfsRpcDuplicateEncryptionInfoFile( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+efs_dissect_EfsRpcDuplicateEncryptionInfoFile_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EfsRpcDuplicateEncryptionInfoFile";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_efs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+efs_dissect_EfsRpcDuplicateEncryptionInfoFile_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EfsRpcDuplicateEncryptionInfoFile";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector efs_dissectors[] = {
+       { 0, "EfsRpcOpenFileRaw",
+          efs_dissect_EfsRpcOpenFileRaw_request, efs_dissect_EfsRpcOpenFileRaw_response},
+       { 1, "EfsRpcReadFileRaw",
+          efs_dissect_EfsRpcReadFileRaw_request, efs_dissect_EfsRpcReadFileRaw_response},
+       { 2, "EfsRpcWriteFileRaw",
+          efs_dissect_EfsRpcWriteFileRaw_request, efs_dissect_EfsRpcWriteFileRaw_response},
+       { 3, "EfsRpcCloseRaw",
+          efs_dissect_EfsRpcCloseRaw_request, efs_dissect_EfsRpcCloseRaw_response},
+       { 4, "EfsRpcEncryptFileSrv",
+          efs_dissect_EfsRpcEncryptFileSrv_request, efs_dissect_EfsRpcEncryptFileSrv_response},
+       { 5, "EfsRpcDecryptFileSrv",
+          efs_dissect_EfsRpcDecryptFileSrv_request, efs_dissect_EfsRpcDecryptFileSrv_response},
+       { 6, "EfsRpcQueryUsersOnFile",
+          efs_dissect_EfsRpcQueryUsersOnFile_request, efs_dissect_EfsRpcQueryUsersOnFile_response},
+       { 7, "EfsRpcQueryRecoveryAgents",
+          efs_dissect_EfsRpcQueryRecoveryAgents_request, efs_dissect_EfsRpcQueryRecoveryAgents_response},
+       { 8, "EfsRpcRemoveUsersFromFile",
+          efs_dissect_EfsRpcRemoveUsersFromFile_request, efs_dissect_EfsRpcRemoveUsersFromFile_response},
+       { 9, "EfsRpcAddUsersToFile",
+          efs_dissect_EfsRpcAddUsersToFile_request, efs_dissect_EfsRpcAddUsersToFile_response},
+       { 10, "EfsRpcSetFileEncryptionKey",
+          efs_dissect_EfsRpcSetFileEncryptionKey_request, efs_dissect_EfsRpcSetFileEncryptionKey_response},
+       { 11, "EfsRpcNotSupported",
+          efs_dissect_EfsRpcNotSupported_request, efs_dissect_EfsRpcNotSupported_response},
+       { 12, "EfsRpcFileKeyInfo",
+          efs_dissect_EfsRpcFileKeyInfo_request, efs_dissect_EfsRpcFileKeyInfo_response},
+       { 13, "EfsRpcDuplicateEncryptionInfoFile",
+          efs_dissect_EfsRpcDuplicateEncryptionInfoFile_request, efs_dissect_EfsRpcDuplicateEncryptionInfoFile_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_efs(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_efs_EfsRpcQueryUsersOnFile_pUsers,
+         { "Pusers", "efs.EfsRpcQueryUsersOnFile.pUsers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcDecryptFileSrv_FileName,
+         { "Filename", "efs.EfsRpcDecryptFileSrv.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcEncryptFileSrv_Filename,
+         { "Filename", "efs.EfsRpcEncryptFileSrv.Filename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcOpenFileRaw_pvContext,
+         { "Pvcontext", "efs.EfsRpcOpenFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_TotalLength,
+         { "Totallength", "efs.ENCRYPTION_CERTIFICATE.TotalLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EFS_CERTIFICATE_BLOB_dwCertEncodingType,
+         { "Dwcertencodingtype", "efs.EFS_CERTIFICATE_BLOB.dwCertEncodingType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_pCertBlob,
+         { "Pcertblob", "efs.ENCRYPTION_CERTIFICATE.pCertBlob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_pUsers,
+         { "Pusers", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.pUsers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcWriteFileRaw_pvContext,
+         { "Pvcontext", "efs.EfsRpcWriteFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EFS_HASH_BLOB_pbData,
+         { "Pbdata", "efs.EFS_HASH_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcAddUsersToFile_FileName,
+         { "Filename", "efs.EfsRpcAddUsersToFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcReadFileRaw_pvContext,
+         { "Pvcontext", "efs.EfsRpcReadFileRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_werror,
+         { "Windows Error", "efs.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcSetFileEncryptionKey_pEncryptionCertificate,
+         { "Pencryptioncertificate", "efs.EfsRpcSetFileEncryptionKey.pEncryptionCertificate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcQueryRecoveryAgents_FileName,
+         { "Filename", "efs.EfsRpcQueryRecoveryAgents.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcOpenFileRaw_FileName,
+         { "Filename", "efs.EfsRpcOpenFileRaw.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_opnum,
+         { "Operation", "efs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_LIST_nCert_Hash,
+         { "Ncert Hash", "efs.ENCRYPTION_CERTIFICATE_HASH_LIST.nCert_Hash", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcDecryptFileSrv_Reserved,
+         { "Reserved", "efs.EfsRpcDecryptFileSrv.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pHash,
+         { "Phash", "efs.ENCRYPTION_CERTIFICATE_HASH.pHash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_pUserSid,
+         { "Pusersid", "efs.ENCRYPTION_CERTIFICATE_HASH.pUserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_pUserSid,
+         { "Pusersid", "efs.ENCRYPTION_CERTIFICATE.pUserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EFS_CERTIFICATE_BLOB_pbData,
+         { "Pbdata", "efs.EFS_CERTIFICATE_BLOB.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EFS_HASH_BLOB_cbData,
+         { "Cbdata", "efs.EFS_HASH_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcCloseRaw_pvContext,
+         { "Pvcontext", "efs.EfsRpcCloseRaw.pvContext", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EFS_CERTIFICATE_BLOB_cbData,
+         { "Cbdata", "efs.EFS_CERTIFICATE_BLOB.cbData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcQueryUsersOnFile_FileName,
+         { "Filename", "efs.EfsRpcQueryUsersOnFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_cbTotalLength,
+         { "Cbtotallength", "efs.ENCRYPTION_CERTIFICATE_HASH.cbTotalLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcOpenFileRaw_Flags,
+         { "Flags", "efs.EfsRpcOpenFileRaw.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcQueryRecoveryAgents_pRecoveryAgents,
+         { "Precoveryagents", "efs.EfsRpcQueryRecoveryAgents.pRecoveryAgents", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_ENCRYPTION_CERTIFICATE_HASH_lpDisplayInformation,
+         { "Lpdisplayinformation", "efs.ENCRYPTION_CERTIFICATE_HASH.lpDisplayInformation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_efs_EfsRpcRemoveUsersFromFile_FileName,
+         { "Filename", "efs.EfsRpcRemoveUsersFromFile.FileName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_efs,
+               &ett_efs_EFS_HASH_BLOB,
+               &ett_efs_ENCRYPTION_CERTIFICATE_HASH,
+               &ett_efs_ENCRYPTION_CERTIFICATE_HASH_LIST,
+               &ett_efs_EFS_CERTIFICATE_BLOB,
+               &ett_efs_ENCRYPTION_CERTIFICATE,
+       };
+
+       proto_dcerpc_efs = proto_register_protocol("NULL", "EFS", "efs");
+       proto_register_field_array(proto_dcerpc_efs, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_efs(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_efs, ett_dcerpc_efs,
+               &uuid_dcerpc_efs, ver_dcerpc_efs,
+               efs_dissectors, hf_efs_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-efs.h b/bin/default/librpc/gen_ndr/packet-dcerpc-efs.h
new file mode 100644 (file)
index 0000000..6e90b63
--- /dev/null
@@ -0,0 +1,26 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/efs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/efs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_EFS_H
+#define __PACKET_DCERPC_EFS_H
+
+int efs_dissect_struct_EFS_HASH_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int efs_dissect_struct_ENCRYPTION_CERTIFICATE_HASH_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int efs_dissect_struct_EFS_CERTIFICATE_BLOB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int efs_dissect_struct_ENCRYPTION_CERTIFICATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_EFS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-epmapper.c b/bin/default/librpc/gen_ndr/packet-dcerpc-epmapper.c
new file mode 100644 (file)
index 0000000..7609d3c
--- /dev/null
@@ -0,0 +1,3054 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/epmapper.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/epmapper.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-epmapper.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_epmapper = -1;
+static gint ett_epmapper_epm_rhs_dnet_nsp = -1;
+static gint ett_epmapper_epm_rhs_osi_tp4 = -1;
+static gint ett_epmapper_epm_rhs_osi_clns = -1;
+static gint ett_epmapper_epm_rhs_udp = -1;
+static gint ett_epmapper_epm_rhs_tcp = -1;
+static gint ett_epmapper_epm_rhs_ip = -1;
+static gint ett_epmapper_epm_rhs_ncadg = -1;
+static gint ett_epmapper_epm_rhs_ncacn = -1;
+static gint ett_epmapper_epm_rhs_uuid = -1;
+static gint ett_epmapper_epm_rhs_ipx = -1;
+static gint ett_epmapper_epm_rhs_smb = -1;
+static gint ett_epmapper_epm_rhs_named_pipe = -1;
+static gint ett_epmapper_epm_rhs_netbios = -1;
+static gint ett_epmapper_epm_rhs_netbeui = -1;
+static gint ett_epmapper_epm_rhs_spx = -1;
+static gint ett_epmapper_epm_rhs_nb_ipx = -1;
+static gint ett_epmapper_epm_rhs_http = -1;
+static gint ett_epmapper_epm_rhs_unix_ds = -1;
+static gint ett_epmapper_epm_rhs_null = -1;
+static gint ett_epmapper_epm_rhs_ncalrpc = -1;
+static gint ett_epmapper_epm_rhs_appletalk = -1;
+static gint ett_epmapper_epm_rhs_atalk_stream = -1;
+static gint ett_epmapper_epm_rhs_atalk_datagram = -1;
+static gint ett_epmapper_epm_rhs_vines_spp = -1;
+static gint ett_epmapper_epm_rhs_vines_ipc = -1;
+static gint ett_epmapper_epm_rhs_streettalk = -1;
+static gint ett_epmapper_epm_rhs = -1;
+static gint ett_epmapper_epm_lhs = -1;
+static gint ett_epmapper_epm_floor = -1;
+static gint ett_epmapper_epm_tower = -1;
+static gint ett_epmapper_epm_twr_t = -1;
+static gint ett_epmapper_epm_entry_t = -1;
+static gint ett_epmapper_rpc_if_id_t = -1;
+static gint ett_epmapper_epm_twr_p_t = -1;
+
+
+/* Header field declarations */
+static gint hf_epmapper_epm_rhs_ncalrpc_minor_version = -1;
+static gint hf_epmapper_rpc_if_id_t_uuid = -1;
+static gint hf_epmapper_epm_MgmtDelete_object_speced = -1;
+static gint hf_epmapper_epm_rhs_uuid = -1;
+static gint hf_epmapper_epm_Map_map_tower = -1;
+static gint hf_epmapper_epm_Insert_replace = -1;
+static gint hf_epmapper_epm_entry_t___annotation_offset = -1;
+static gint hf_epmapper_epm_rhs_named_pipe_path = -1;
+static gint hf_epmapper_epm_Lookup_inquiry_type = -1;
+static gint hf_epmapper_epm_twr_p_t_twr = -1;
+static gint hf_epmapper_epm_Lookup_object = -1;
+static gint hf_epmapper_epm_Map_object = -1;
+static gint hf_epmapper_epm_rhs_ncadg = -1;
+static gint hf_epmapper_epm_tower_floors = -1;
+static gint hf_epmapper_epm_Delete_entries = -1;
+static gint hf_epmapper_epm_rhs_netbios_name = -1;
+static gint hf_epmapper_epm_rhs_smb = -1;
+static gint hf_epmapper_epm_MgmtDelete_tower = -1;
+static gint hf_epmapper_epm_Map_entry_handle = -1;
+static gint hf_epmapper_epm_rhs_unix_ds = -1;
+static gint hf_epmapper_epm_rhs_ncadg_minor_version = -1;
+static gint hf_epmapper_epm_rhs_osi_clns = -1;
+static gint hf_epmapper_epm_Delete_num_ents = -1;
+static gint hf_epmapper_epm_floor_lhs = -1;
+static gint hf_epmapper_epm_rhs_ncacn = -1;
+static gint hf_epmapper_epm_Lookup_entry_handle = -1;
+static gint hf_epmapper_epm_rhs_ip = -1;
+static gint hf_epmapper_epm_rhs_atalk_datagram = -1;
+static gint hf_epmapper_epm_Insert_entries = -1;
+static gint hf_epmapper_epm_rhs_tcp_port = -1;
+static gint hf_epmapper_epm_rhs_ipx = -1;
+static gint hf_epmapper_epm_rhs_vines_ipc_port = -1;
+static gint hf_epmapper_epm_rhs_vines_spp = -1;
+static gint hf_epmapper_epm_rhs_unix_ds_path = -1;
+static gint hf_epmapper_epm_twr_t_tower_ = -1;
+static gint hf_epmapper_epm_lhs_protocol = -1;
+static gint hf_epmapper_epm_rhs_appletalk = -1;
+static gint hf_epmapper_epm_MgmtDelete_object = -1;
+static gint hf_epmapper_epm_twr_t_tower_length = -1;
+static gint hf_epmapper_epm_rhs_streettalk = -1;
+static gint hf_epmapper_epm_Lookup_max_ents = -1;
+static gint hf_epmapper_epm_entry_t___annotation_length = -1;
+static gint hf_epmapper_epm_rhs_nb_ipx = -1;
+static gint hf_epmapper_opnum = -1;
+static gint hf_epmapper_epm_Map_num_towers = -1;
+static gint hf_epmapper_epm_rhs_osi_tp4 = -1;
+static gint hf_epmapper_epm_rhs_netbeui = -1;
+static gint hf_epmapper_epm_rhs_http = -1;
+static gint hf_epmapper_epm_Map_towers = -1;
+static gint hf_epmapper_epm_Lookup_num_ents = -1;
+static gint hf_epmapper_epm_rhs_null = -1;
+static gint hf_epmapper_epm_rhs_ip_ipaddr = -1;
+static gint hf_epmapper_epm_rhs_udp_port = -1;
+static gint hf_epmapper_epm_floor_lhs_ = -1;
+static gint hf_epmapper_epm_entry_t_tower = -1;
+static gint hf_epmapper_epm_rhs_uuid_unknown = -1;
+static gint hf_epmapper_epm_floor_rhs_ = -1;
+static gint hf_epmapper_epm_twr_t_tower = -1;
+static gint hf_epmapper_epm_rhs_spx = -1;
+static gint hf_epmapper_epm_rhs_ncacn_minor_version = -1;
+static gint hf_epmapper_epm_entry_t_object = -1;
+static gint hf_epmapper_epm_entry_t_annotation = -1;
+static gint hf_epmapper_epm_rhs_smb_unc = -1;
+static gint hf_epmapper_epm_rhs_netbios = -1;
+static gint hf_epmapper_epm_rhs_udp = -1;
+static gint hf_epmapper_epm_rhs_dnet_nsp = -1;
+static gint hf_epmapper_epm_Lookup_vers_option = -1;
+static gint hf_epmapper_epm_Map_max_towers = -1;
+static gint hf_epmapper_epm_rhs_ncalrpc = -1;
+static gint hf_epmapper_rpc_if_id_t_vers_major = -1;
+static gint hf_epmapper_epm_LookupHandleFree_entry_handle = -1;
+static gint hf_epmapper_epm_rhs_tcp = -1;
+static gint hf_epmapper_epm_rhs_streettalk_streettalk = -1;
+static gint hf_epmapper_epm_rhs_http_port = -1;
+static gint hf_epmapper_epm_rhs_atalk_stream = -1;
+static gint hf_epmapper_uint32_status = -1;
+static gint hf_epmapper_epm_rhs_vines_ipc = -1;
+static gint hf_epmapper_epm_floor_rhs = -1;
+static gint hf_epmapper_epm_rhs_vines_spp_port = -1;
+static gint hf_epmapper_epm_InqObject_epm_object = -1;
+static gint hf_epmapper_epm_Lookup_interface_id = -1;
+static gint hf_epmapper_rpc_if_id_t_vers_minor = -1;
+static gint hf_epmapper_epm_tower_num_floors = -1;
+static gint hf_epmapper_epm_rhs_named_pipe = -1;
+static gint hf_epmapper_epm_Insert_num_ents = -1;
+static gint hf_epmapper_epm_lhs_lhs_data = -1;
+static gint hf_epmapper_epm_Lookup_entries = -1;
+static gint hf_epmapper_epm_rhs_unknown = -1;
+
+static gint proto_dcerpc_epmapper = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_epmapper = {
+       0xe1af8308, 0x5d1f, 0x11c9,
+       { 0x91, 0xa4, 0x08, 0x00, 0x2b, 0x14, 0xa0, 0xfa }
+};
+static guint16 ver_dcerpc_epmapper = 3;
+
+const value_string epmapper_epm_protocol_vals[] = {
+       { EPM_PROTOCOL_DNET_NSP, "EPM_PROTOCOL_DNET_NSP" },
+       { EPM_PROTOCOL_OSI_TP4, "EPM_PROTOCOL_OSI_TP4" },
+       { EPM_PROTOCOL_OSI_CLNS, "EPM_PROTOCOL_OSI_CLNS" },
+       { EPM_PROTOCOL_TCP, "EPM_PROTOCOL_TCP" },
+       { EPM_PROTOCOL_UDP, "EPM_PROTOCOL_UDP" },
+       { EPM_PROTOCOL_IP, "EPM_PROTOCOL_IP" },
+       { EPM_PROTOCOL_NCADG, "EPM_PROTOCOL_NCADG" },
+       { EPM_PROTOCOL_NCACN, "EPM_PROTOCOL_NCACN" },
+       { EPM_PROTOCOL_NCALRPC, "EPM_PROTOCOL_NCALRPC" },
+       { EPM_PROTOCOL_UUID, "EPM_PROTOCOL_UUID" },
+       { EPM_PROTOCOL_IPX, "EPM_PROTOCOL_IPX" },
+       { EPM_PROTOCOL_SMB, "EPM_PROTOCOL_SMB" },
+       { EPM_PROTOCOL_NAMED_PIPE, "EPM_PROTOCOL_NAMED_PIPE" },
+       { EPM_PROTOCOL_NETBIOS, "EPM_PROTOCOL_NETBIOS" },
+       { EPM_PROTOCOL_NETBEUI, "EPM_PROTOCOL_NETBEUI" },
+       { EPM_PROTOCOL_SPX, "EPM_PROTOCOL_SPX" },
+       { EPM_PROTOCOL_NB_IPX, "EPM_PROTOCOL_NB_IPX" },
+       { EPM_PROTOCOL_DSP, "EPM_PROTOCOL_DSP" },
+       { EPM_PROTOCOL_DDP, "EPM_PROTOCOL_DDP" },
+       { EPM_PROTOCOL_APPLETALK, "EPM_PROTOCOL_APPLETALK" },
+       { EPM_PROTOCOL_VINES_SPP, "EPM_PROTOCOL_VINES_SPP" },
+       { EPM_PROTOCOL_VINES_IPC, "EPM_PROTOCOL_VINES_IPC" },
+       { EPM_PROTOCOL_STREETTALK, "EPM_PROTOCOL_STREETTALK" },
+       { EPM_PROTOCOL_HTTP, "EPM_PROTOCOL_HTTP" },
+       { EPM_PROTOCOL_UNIX_DS, "EPM_PROTOCOL_UNIX_DS" },
+       { EPM_PROTOCOL_NULL, "EPM_PROTOCOL_NULL" },
+{ 0, NULL }
+};
+static int epmapper_dissect_element_epm_rhs_udp_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_tcp_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ip_ipaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ncadg_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ncacn_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_uuid_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_smb_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_named_pipe_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_http_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_unix_ds_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ncalrpc_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_vines_spp_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_vines_ipc_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_streettalk_streettalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_dnet_nsp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_osi_tp4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_osi_clns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_tcp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_udp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ncadg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ncacn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ncalrpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_smb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_named_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_netbeui(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_spx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_nb_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_atalk_stream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_atalk_datagram(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_appletalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_vines_spp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_vines_ipc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_streettalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_http(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_unix_ds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_rhs_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_lhs_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_lhs_lhs_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_floor_lhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *lhs);
+static int epmapper_dissect_element_epm_floor_lhs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *lhs);
+static int epmapper_dissect_element_epm_floor_rhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int epmapper_dissect_element_epm_floor_rhs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int epmapper_dissect_element_epm_tower_num_floors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_tower_floors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_tower_floors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_twr_t_tower_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_twr_t_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_twr_t_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t___annotation_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t___annotation_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t_annotation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_entry_t_annotation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_rpc_if_id_t_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_rpc_if_id_t_vers_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_rpc_if_id_t_vers_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string epmapper_epm_InquiryType_vals[] = {
+       { RPC_C_EP_ALL_ELTS, "RPC_C_EP_ALL_ELTS" },
+       { RPC_C_EP_MATCH_BY_IF, "RPC_C_EP_MATCH_BY_IF" },
+       { RPC_C_EP_MATCH_BY_OBJ, "RPC_C_EP_MATCH_BY_OBJ" },
+       { RPC_C_EP_MATCH_BY_BOTH, "RPC_C_EP_MATCH_BY_BOTH" },
+{ 0, NULL }
+};
+const value_string epmapper_epm_VersionOption_vals[] = {
+       { RPC_C_VERS_ALL, "RPC_C_VERS_ALL" },
+       { RPC_C_VERS_COMPATIBLE, "RPC_C_VERS_COMPATIBLE" },
+       { RPC_C_VERS_EXACT, "RPC_C_VERS_EXACT" },
+       { RPC_C_VERS_MAJOR_ONLY, "RPC_C_VERS_MAJOR_ONLY" },
+       { RPC_C_VERS_UPTO, "RPC_C_VERS_UPTO" },
+{ 0, NULL }
+};
+static int epmapper_dissect_element_epm_twr_p_t_twr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_twr_p_t_twr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Insert_num_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Insert_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Insert_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Insert_replace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Delete_num_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Delete_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Delete_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_inquiry_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_interface_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_interface_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_vers_option(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_entry_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_entry_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_max_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_num_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_num_ents_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Lookup_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_map_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_map_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_entry_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_entry_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_max_towers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_num_towers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_num_towers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_towers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_Map_towers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_LookupHandleFree_entry_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_LookupHandleFree_entry_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_InqObject_epm_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_InqObject_epm_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_MgmtDelete_object_speced(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_MgmtDelete_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_MgmtDelete_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_MgmtDelete_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int epmapper_dissect_element_epm_MgmtDelete_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        EPM_PROTOCOL_DNET_NSP=0x04, */
+/* IDL:        EPM_PROTOCOL_OSI_TP4=0x05, */
+/* IDL:        EPM_PROTOCOL_OSI_CLNS=0x06, */
+/* IDL:        EPM_PROTOCOL_TCP=0x07, */
+/* IDL:        EPM_PROTOCOL_UDP=0x08, */
+/* IDL:        EPM_PROTOCOL_IP=0x09, */
+/* IDL:        EPM_PROTOCOL_NCADG=0x0a, */
+/* IDL:        EPM_PROTOCOL_NCACN=0x0b, */
+/* IDL:        EPM_PROTOCOL_NCALRPC=0x0c, */
+/* IDL:        EPM_PROTOCOL_UUID=0x0d, */
+/* IDL:        EPM_PROTOCOL_IPX=0x0e, */
+/* IDL:        EPM_PROTOCOL_SMB=0x0f, */
+/* IDL:        EPM_PROTOCOL_NAMED_PIPE=0x10, */
+/* IDL:        EPM_PROTOCOL_NETBIOS=0x11, */
+/* IDL:        EPM_PROTOCOL_NETBEUI=0x12, */
+/* IDL:        EPM_PROTOCOL_SPX=0x13, */
+/* IDL:        EPM_PROTOCOL_NB_IPX=0x14, */
+/* IDL:        EPM_PROTOCOL_DSP=0x16, */
+/* IDL:        EPM_PROTOCOL_DDP=0x17, */
+/* IDL:        EPM_PROTOCOL_APPLETALK=0x18, */
+/* IDL:        EPM_PROTOCOL_VINES_SPP=0x1a, */
+/* IDL:        EPM_PROTOCOL_VINES_IPC=0x1b, */
+/* IDL:        EPM_PROTOCOL_STREETTALK=0x1c, */
+/* IDL:        EPM_PROTOCOL_HTTP=0x1f, */
+/* IDL:        EPM_PROTOCOL_UNIX_DS=0x20, */
+/* IDL:        EPM_PROTOCOL_NULL=0x21, */
+/* IDL: } */
+
+int
+epmapper_dissect_enum_epm_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_dnet_nsp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_dnet_nsp);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_osi_tp4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_osi_tp4);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_osi_clns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_osi_clns);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 port; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_udp_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_udp_port, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_udp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_udp);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_udp_port(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 port; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_tcp_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_tcp_port, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_tcp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_tcp);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_tcp_port(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        ipv4address ipaddr; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_ip_ipaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_ip_ipaddr,0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_ip);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_ip_ipaddr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 minor_version; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_ncadg_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_ncadg_minor_version, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_ncadg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_ncadg);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_ncadg_minor_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 minor_version; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_ncacn_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_ncacn_minor_version, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_ncacn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_ncacn);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_ncacn_minor_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB unknown; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_uuid_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_uuid_unknown, 1);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_uuid);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_uuid_unknown(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_ipx);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string unc; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_smb_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_smb_unc , 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_smb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_smb);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_smb_unc(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string path; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_named_pipe_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_named_pipe_path , 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_named_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_named_pipe);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_named_pipe_path(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string name; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_netbios_name , 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_netbios);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_netbios_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_netbeui(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_netbeui);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_spx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_spx);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_nb_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_nb_ipx);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 port; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_http_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_http_port, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_http(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_http);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_http_port(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string path; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_unix_ds_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_unix_ds_path , 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_unix_ds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_unix_ds);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_unix_ds_path(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_null);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 minor_version; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_ncalrpc_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_ncalrpc_minor_version, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_ncalrpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_ncalrpc);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_ncalrpc_minor_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_appletalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_appletalk);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_atalk_stream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_atalk_stream);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+epmapper_dissect_struct_epm_rhs_atalk_datagram(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_atalk_datagram);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 port; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_vines_spp_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_vines_spp_port, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_vines_spp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_vines_spp);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_vines_spp_port(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 port; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_vines_ipc_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_vines_ipc_port, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_vines_ipc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_vines_ipc);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_vines_ipc_port(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string streettalk; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_streettalk_streettalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_streettalk_streettalk , 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_rhs_streettalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs_streettalk);
+       }
+       
+       offset = epmapper_dissect_element_epm_rhs_streettalk_streettalk(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] [flag(LIBNDR_FLAG_BIGENDIAN)] union { */
+/* IDL: [case(EPM_PROTOCOL_DNET_NSP)] [case(EPM_PROTOCOL_DNET_NSP)] epm_rhs_dnet_nsp dnet_nsp; */
+/* IDL: [case(EPM_PROTOCOL_OSI_TP4)] [case(EPM_PROTOCOL_OSI_TP4)] epm_rhs_osi_tp4 osi_tp4; */
+/* IDL: [case(EPM_PROTOCOL_OSI_CLNS)] [case(EPM_PROTOCOL_OSI_CLNS)] epm_rhs_osi_clns osi_clns; */
+/* IDL: [case(EPM_PROTOCOL_TCP)] [case(EPM_PROTOCOL_TCP)] epm_rhs_tcp tcp; */
+/* IDL: [case(EPM_PROTOCOL_UDP)] [case(EPM_PROTOCOL_UDP)] epm_rhs_udp udp; */
+/* IDL: [case(EPM_PROTOCOL_IP)] [case(EPM_PROTOCOL_IP)] epm_rhs_ip ip; */
+/* IDL: [case(EPM_PROTOCOL_NCADG)] [case(EPM_PROTOCOL_NCADG)] epm_rhs_ncadg ncadg; */
+/* IDL: [case(EPM_PROTOCOL_NCACN)] [case(EPM_PROTOCOL_NCACN)] epm_rhs_ncacn ncacn; */
+/* IDL: [case(EPM_PROTOCOL_NCALRPC)] [case(EPM_PROTOCOL_NCALRPC)] epm_rhs_ncalrpc ncalrpc; */
+/* IDL: [case(EPM_PROTOCOL_UUID)] [case(EPM_PROTOCOL_UUID)] epm_rhs_uuid uuid; */
+/* IDL: [case(EPM_PROTOCOL_IPX)] [case(EPM_PROTOCOL_IPX)] epm_rhs_ipx ipx; */
+/* IDL: [case(EPM_PROTOCOL_SMB)] [case(EPM_PROTOCOL_SMB)] epm_rhs_smb smb; */
+/* IDL: [case(EPM_PROTOCOL_NAMED_PIPE)] [case(EPM_PROTOCOL_NAMED_PIPE)] epm_rhs_named_pipe named_pipe; */
+/* IDL: [case(EPM_PROTOCOL_NETBIOS)] [case(EPM_PROTOCOL_NETBIOS)] epm_rhs_netbios netbios; */
+/* IDL: [case(EPM_PROTOCOL_NETBEUI)] [case(EPM_PROTOCOL_NETBEUI)] epm_rhs_netbeui netbeui; */
+/* IDL: [case(EPM_PROTOCOL_SPX)] [case(EPM_PROTOCOL_SPX)] epm_rhs_spx spx; */
+/* IDL: [case(EPM_PROTOCOL_NB_IPX)] [case(EPM_PROTOCOL_NB_IPX)] epm_rhs_nb_ipx nb_ipx; */
+/* IDL: [case(EPM_PROTOCOL_DSP)] [case(EPM_PROTOCOL_DSP)] epm_rhs_atalk_stream atalk_stream; */
+/* IDL: [case(EPM_PROTOCOL_DDP)] [case(EPM_PROTOCOL_DDP)] epm_rhs_atalk_datagram atalk_datagram; */
+/* IDL: [case(EPM_PROTOCOL_APPLETALK)] [case(EPM_PROTOCOL_APPLETALK)] epm_rhs_appletalk appletalk; */
+/* IDL: [case(EPM_PROTOCOL_VINES_SPP)] [case(EPM_PROTOCOL_VINES_SPP)] epm_rhs_vines_spp vines_spp; */
+/* IDL: [case(EPM_PROTOCOL_VINES_IPC)] [case(EPM_PROTOCOL_VINES_IPC)] epm_rhs_vines_ipc vines_ipc; */
+/* IDL: [case(EPM_PROTOCOL_STREETTALK)] [case(EPM_PROTOCOL_STREETTALK)] epm_rhs_streettalk streettalk; */
+/* IDL: [case(EPM_PROTOCOL_HTTP)] [case(EPM_PROTOCOL_HTTP)] epm_rhs_http http; */
+/* IDL: [case(EPM_PROTOCOL_UNIX_DS)] [case(EPM_PROTOCOL_UNIX_DS)] epm_rhs_unix_ds unix_ds; */
+/* IDL: [case(EPM_PROTOCOL_NULL)] [case(EPM_PROTOCOL_NULL)] epm_rhs_null null; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_rhs_dnet_nsp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_dnet_nsp(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_dnet_nsp,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_osi_tp4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_osi_tp4(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_osi_tp4,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_osi_clns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_osi_clns(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_osi_clns,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_tcp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_tcp(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_tcp,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_udp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_udp(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_udp,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_ip(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_ip,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_ncadg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_ncadg(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_ncadg,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_ncacn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_ncacn(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_ncacn,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_ncalrpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_ncalrpc(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_ncalrpc,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_uuid(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_uuid,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_ipx(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_ipx,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_smb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_smb(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_smb,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_named_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_named_pipe(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_named_pipe,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_netbios(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_netbios,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_netbeui(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_netbeui(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_netbeui,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_spx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_spx(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_spx,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_nb_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_nb_ipx(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_nb_ipx,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_atalk_stream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_atalk_stream(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_atalk_stream,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_atalk_datagram(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_atalk_datagram(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_atalk_datagram,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_appletalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_appletalk(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_appletalk,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_vines_spp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_vines_spp(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_vines_spp,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_vines_ipc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_vines_ipc(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_vines_ipc,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_streettalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_streettalk(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_streettalk,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_http(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_http(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_http,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_unix_ds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_unix_ds(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_unix_ds,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_rhs_null(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_rhs_null,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_rhs_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_rhs_unknown, 1);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_rhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "epm_rhs");
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_rhs);
+       }
+
+       switch(level) {
+               case EPM_PROTOCOL_DNET_NSP:
+                       offset = epmapper_dissect_element_epm_rhs_dnet_nsp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_OSI_TP4:
+                       offset = epmapper_dissect_element_epm_rhs_osi_tp4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_OSI_CLNS:
+                       offset = epmapper_dissect_element_epm_rhs_osi_clns(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_TCP:
+                       offset = epmapper_dissect_element_epm_rhs_tcp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_UDP:
+                       offset = epmapper_dissect_element_epm_rhs_udp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_IP:
+                       offset = epmapper_dissect_element_epm_rhs_ip(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NCADG:
+                       offset = epmapper_dissect_element_epm_rhs_ncadg(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NCACN:
+                       offset = epmapper_dissect_element_epm_rhs_ncacn(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NCALRPC:
+                       offset = epmapper_dissect_element_epm_rhs_ncalrpc(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_UUID:
+                       offset = epmapper_dissect_element_epm_rhs_uuid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_IPX:
+                       offset = epmapper_dissect_element_epm_rhs_ipx(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_SMB:
+                       offset = epmapper_dissect_element_epm_rhs_smb(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NAMED_PIPE:
+                       offset = epmapper_dissect_element_epm_rhs_named_pipe(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NETBIOS:
+                       offset = epmapper_dissect_element_epm_rhs_netbios(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NETBEUI:
+                       offset = epmapper_dissect_element_epm_rhs_netbeui(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_SPX:
+                       offset = epmapper_dissect_element_epm_rhs_spx(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NB_IPX:
+                       offset = epmapper_dissect_element_epm_rhs_nb_ipx(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_DSP:
+                       offset = epmapper_dissect_element_epm_rhs_atalk_stream(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_DDP:
+                       offset = epmapper_dissect_element_epm_rhs_atalk_datagram(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_APPLETALK:
+                       offset = epmapper_dissect_element_epm_rhs_appletalk(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_VINES_SPP:
+                       offset = epmapper_dissect_element_epm_rhs_vines_spp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_VINES_IPC:
+                       offset = epmapper_dissect_element_epm_rhs_vines_ipc(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_STREETTALK:
+                       offset = epmapper_dissect_element_epm_rhs_streettalk(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_HTTP:
+                       offset = epmapper_dissect_element_epm_rhs_http(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_UNIX_DS:
+                       offset = epmapper_dissect_element_epm_rhs_unix_ds(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EPM_PROTOCOL_NULL:
+                       offset = epmapper_dissect_element_epm_rhs_null(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = epmapper_dissect_element_epm_rhs_unknown(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        epm_protocol protocol; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB lhs_data; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_lhs_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_enum_epm_protocol(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_lhs_protocol, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_lhs_lhs_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_lhs_lhs_data, 1);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_lhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_lhs);
+       }
+       
+       offset = epmapper_dissect_element_epm_lhs_protocol(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_lhs_lhs_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [subcontext(2)] epm_lhs lhs; */
+/* IDL:        [subcontext(2)] [switch_is(lhs.protocol)] epm_rhs rhs; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_floor_lhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *lhs)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint16 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_floor_lhs_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               epmapper_dissect_element_epm_floor_lhs_(subtvb, 0, pinfo, tree, drep, lhs);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_floor_lhs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *lhs)
+{
+       offset = epmapper_dissect_struct_epm_lhs(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_floor_lhs,lhs);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_floor_rhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint16 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_floor_rhs_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               epmapper_dissect_element_epm_floor_rhs_(subtvb, 0, pinfo, tree, drep, );
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_floor_rhs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = epmapper_dissect_epm_rhs(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_floor_rhs, *);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_floor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+        lhs;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_floor);
+       }
+       
+       offset = epmapper_dissect_element_epm_floor_lhs(tvb, offset, pinfo, tree, drep, &lhs);
+
+       offset = epmapper_dissect_element_epm_floor_rhs(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 num_floors; */
+/* IDL:        epm_floor floors[num_floors]; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_tower_num_floors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_tower_num_floors, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_tower_floors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_tower_floors_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_floor(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_tower_floors,0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_tower);
+       }
+       
+       offset = epmapper_dissect_element_epm_tower_num_floors(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_tower_floors(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_epm_tower(&tower,ndr->flags))] uint32 tower_length; */
+/* IDL:        [subcontext(4)] epm_tower tower; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_twr_t_tower_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_twr_t_tower_length, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_twr_t_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_twr_t_tower_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               epmapper_dissect_element_epm_twr_t_tower_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_twr_t_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_tower(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_twr_t_tower,0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_twr_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_twr_t);
+       }
+       
+       offset = epmapper_dissect_element_epm_twr_t_tower_length(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_twr_t_tower(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID object; */
+/* IDL:        [ptr(1)] epm_twr_t *tower; */
+/* IDL:        [value(0)] uint32 __annotation_offset; */
+/* IDL:        [value(strlen(annotation)+1)] uint32 __annotation_length; */
+/* IDL:        [charset(DOS)] uint8 annotation[__annotation_length]; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_entry_t_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_entry_t_object, NULL);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_entry_t_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_entry_t_tower_, , "Pointer to Tower (epm_twr_t)",hf_epmapper_epm_entry_t_tower);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_entry_t_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_twr_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_entry_t_tower,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_entry_t___annotation_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_entry_t___annotation_offset, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_entry_t___annotation_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_entry_t___annotation_length, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_entry_t_annotation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_entry_t_annotation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_entry_t_annotation, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_entry_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_entry_t);
+       }
+       
+       offset = epmapper_dissect_element_epm_entry_t_object(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_entry_t_tower(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_entry_t___annotation_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_entry_t___annotation_length(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_epm_entry_t_annotation(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID uuid; */
+/* IDL:        uint16 vers_major; */
+/* IDL:        uint16 vers_minor; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_rpc_if_id_t_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_epmapper_rpc_if_id_t_uuid, NULL);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_rpc_if_id_t_vers_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_rpc_if_id_t_vers_major, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_rpc_if_id_t_vers_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_epmapper_rpc_if_id_t_vers_minor, 0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_rpc_if_id_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_rpc_if_id_t);
+       }
+       
+       offset = epmapper_dissect_element_rpc_if_id_t_uuid(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_rpc_if_id_t_vers_major(tvb, offset, pinfo, tree, drep);
+
+       offset = epmapper_dissect_element_rpc_if_id_t_vers_minor(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        RPC_C_EP_ALL_ELTS=0x00000000, */
+/* IDL:        RPC_C_EP_MATCH_BY_IF=0x00000001, */
+/* IDL:        RPC_C_EP_MATCH_BY_OBJ=0x00000002, */
+/* IDL:        RPC_C_EP_MATCH_BY_BOTH=0x00000003, */
+/* IDL: } */
+
+int
+epmapper_dissect_enum_epm_InquiryType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        RPC_C_VERS_ALL=0x00000000, */
+/* IDL:        RPC_C_VERS_COMPATIBLE=0x00000001, */
+/* IDL:        RPC_C_VERS_EXACT=0x00000002, */
+/* IDL:        RPC_C_VERS_MAJOR_ONLY=0x00000003, */
+/* IDL:        RPC_C_VERS_UPTO=0x00000004, */
+/* IDL: } */
+
+int
+epmapper_dissect_enum_epm_VersionOption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [ptr(1)] epm_twr_t *twr; */
+/* IDL: } */
+
+static int
+epmapper_dissect_element_epm_twr_p_t_twr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_twr_p_t_twr_, , "Pointer to Twr (epm_twr_t)",hf_epmapper_epm_twr_p_t_twr);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_twr_p_t_twr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_twr_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_twr_p_t_twr,0);
+
+       return offset;
+}
+
+int
+epmapper_dissect_struct_epm_twr_p_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_epmapper_epm_twr_p_t);
+       }
+       
+       offset = epmapper_dissect_element_epm_twr_p_t_twr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Insert_num_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Insert_num_ents, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Insert_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Insert_entries_);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Insert_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_entry_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_Insert_entries,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Insert_replace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Insert_replace, 0);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_Insert( */
+/* IDL: [in] uint32 num_ents, */
+/* IDL: [in] [size_is(num_ents)] epm_entry_t entries[*], */
+/* IDL: [in] uint32 replace */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_Insert_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_Insert";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_Insert_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_Insert";
+       offset = epmapper_dissect_element_epm_Insert_num_ents(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Insert_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Insert_replace(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Delete_num_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Delete_num_ents, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Delete_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Delete_entries_);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Delete_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_entry_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_Delete_entries,0);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_Delete( */
+/* IDL: [in] uint32 num_ents, */
+/* IDL: [in] [size_is(num_ents)] epm_entry_t entries[*] */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_Delete_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_Delete";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_Delete_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_Delete";
+       offset = epmapper_dissect_element_epm_Delete_num_ents(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Delete_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_inquiry_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_enum_epm_InquiryType(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Lookup_inquiry_type, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Lookup_object_, , "Pointer to Object (GUID)",hf_epmapper_epm_Lookup_object);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Lookup_object, NULL);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_interface_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Lookup_interface_id_, , "Pointer to Interface Id (rpc_if_id_t)",hf_epmapper_epm_Lookup_interface_id);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_interface_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_rpc_if_id_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_Lookup_interface_id,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_vers_option(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_enum_epm_VersionOption(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Lookup_vers_option, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_entry_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Lookup_entry_handle_, NDR_POINTER_REF, "Pointer to Entry Handle (policy_handle)",hf_epmapper_epm_Lookup_entry_handle);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_entry_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Lookup_entry_handle, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_max_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Lookup_max_ents, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_num_ents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Lookup_num_ents_, NDR_POINTER_REF, "Pointer to Num Ents (uint32)",hf_epmapper_epm_Lookup_num_ents);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_num_ents_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Lookup_num_ents, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Lookup_entries_);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Lookup_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_entry_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_Lookup_entries,0);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_Lookup( */
+/* IDL: [in] epm_InquiryType inquiry_type, */
+/* IDL: [ptr(1)] [in] GUID *object, */
+/* IDL: [ptr(1)] [in] rpc_if_id_t *interface_id, */
+/* IDL: [in] epm_VersionOption vers_option, */
+/* IDL: [out] [ref] [in] policy_handle *entry_handle, */
+/* IDL: [in] uint32 max_ents, */
+/* IDL: [out] [ref] uint32 *num_ents, */
+/* IDL: [out] [length_is(*num_ents)] [size_is(max_ents)] epm_entry_t entries[*] */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_Lookup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_Lookup";
+       offset = epmapper_dissect_element_epm_Lookup_entry_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = epmapper_dissect_element_epm_Lookup_num_ents(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = epmapper_dissect_element_epm_Lookup_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_Lookup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_Lookup";
+       offset = epmapper_dissect_element_epm_Lookup_inquiry_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Lookup_object(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Lookup_interface_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Lookup_vers_option(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Lookup_entry_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Lookup_max_ents(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Map_object_, , "Pointer to Object (GUID)",hf_epmapper_epm_Map_object);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Map_object, NULL);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_map_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Map_map_tower_, , "Pointer to Map Tower (epm_twr_t)",hf_epmapper_epm_Map_map_tower);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_map_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_twr_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_Map_map_tower,0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_entry_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Map_entry_handle_, NDR_POINTER_REF, "Pointer to Entry Handle (policy_handle)",hf_epmapper_epm_Map_entry_handle);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_entry_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Map_entry_handle, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_max_towers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Map_max_towers, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_num_towers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Map_num_towers_, NDR_POINTER_REF, "Pointer to Num Towers (uint32)",hf_epmapper_epm_Map_num_towers);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_num_towers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_Map_num_towers, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_towers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_Map_towers_);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_Map_towers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_twr_p_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_Map_towers,0);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_Map( */
+/* IDL: [ptr(1)] [in] GUID *object, */
+/* IDL: [ptr(1)] [in] epm_twr_t *map_tower, */
+/* IDL: [out] [ref] [in] policy_handle *entry_handle, */
+/* IDL: [in] uint32 max_towers, */
+/* IDL: [out] [ref] uint32 *num_towers, */
+/* IDL: [out] [length_is(*num_towers)] [size_is(max_towers)] epm_twr_p_t towers[*] */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_Map_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_Map";
+       offset = epmapper_dissect_element_epm_Map_entry_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = epmapper_dissect_element_epm_Map_num_towers(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = epmapper_dissect_element_epm_Map_towers(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_Map_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_Map";
+       offset = epmapper_dissect_element_epm_Map_object(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Map_map_tower(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Map_entry_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_Map_max_towers(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_LookupHandleFree_entry_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_LookupHandleFree_entry_handle_, NDR_POINTER_REF, "Pointer to Entry Handle (policy_handle)",hf_epmapper_epm_LookupHandleFree_entry_handle);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_LookupHandleFree_entry_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_LookupHandleFree_entry_handle, 0);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_LookupHandleFree( */
+/* IDL: [out] [ref] [in] policy_handle *entry_handle */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_LookupHandleFree_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_LookupHandleFree";
+       offset = epmapper_dissect_element_epm_LookupHandleFree_entry_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_LookupHandleFree_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_LookupHandleFree";
+       offset = epmapper_dissect_element_epm_LookupHandleFree_entry_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_InqObject_epm_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_InqObject_epm_object_, NDR_POINTER_REF, "Pointer to Epm Object (GUID)",hf_epmapper_epm_InqObject_epm_object);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_InqObject_epm_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_InqObject_epm_object, NULL);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_InqObject( */
+/* IDL: [ref] [in] GUID *epm_object */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_InqObject_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_InqObject";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_InqObject_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_InqObject";
+       offset = epmapper_dissect_element_epm_InqObject_epm_object(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_MgmtDelete_object_speced(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_MgmtDelete_object_speced, 0);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_MgmtDelete_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_MgmtDelete_object_, , "Pointer to Object (GUID)",hf_epmapper_epm_MgmtDelete_object);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_MgmtDelete_object_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_epmapper_epm_MgmtDelete_object, NULL);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_MgmtDelete_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, epmapper_dissect_element_epm_MgmtDelete_tower_, , "Pointer to Tower (epm_twr_t)",hf_epmapper_epm_MgmtDelete_tower);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_element_epm_MgmtDelete_tower_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = epmapper_dissect_struct_epm_twr_t(tvb,offset,pinfo,tree,drep,hf_epmapper_epm_MgmtDelete_tower,0);
+
+       return offset;
+}
+
+/* IDL: error_status_t epm_MgmtDelete( */
+/* IDL: [in] uint32 object_speced, */
+/* IDL: [ptr(1)] [in] GUID *object, */
+/* IDL: [ptr(1)] [in] epm_twr_t *tower */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_MgmtDelete_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_MgmtDelete";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_MgmtDelete_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_MgmtDelete";
+       offset = epmapper_dissect_element_epm_MgmtDelete_object_speced(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_MgmtDelete_object(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = epmapper_dissect_element_epm_MgmtDelete_tower(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: error_status_t epm_MapAuth( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+epmapper_dissect_epm_MapAuth_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="epm_MapAuth";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_epmapper_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+epmapper_dissect_epm_MapAuth_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="epm_MapAuth";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector epmapper_dissectors[] = {
+       { 0, "epm_Insert",
+          epmapper_dissect_epm_Insert_request, epmapper_dissect_epm_Insert_response},
+       { 1, "epm_Delete",
+          epmapper_dissect_epm_Delete_request, epmapper_dissect_epm_Delete_response},
+       { 2, "epm_Lookup",
+          epmapper_dissect_epm_Lookup_request, epmapper_dissect_epm_Lookup_response},
+       { 3, "epm_Map",
+          epmapper_dissect_epm_Map_request, epmapper_dissect_epm_Map_response},
+       { 4, "epm_LookupHandleFree",
+          epmapper_dissect_epm_LookupHandleFree_request, epmapper_dissect_epm_LookupHandleFree_response},
+       { 5, "epm_InqObject",
+          epmapper_dissect_epm_InqObject_request, epmapper_dissect_epm_InqObject_response},
+       { 6, "epm_MgmtDelete",
+          epmapper_dissect_epm_MgmtDelete_request, epmapper_dissect_epm_MgmtDelete_response},
+       { 7, "epm_MapAuth",
+          epmapper_dissect_epm_MapAuth_request, epmapper_dissect_epm_MapAuth_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_epmapper(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_epmapper_epm_rhs_ncalrpc_minor_version,
+         { "Minor Version", "epmapper.epm_rhs_ncalrpc.minor_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_rpc_if_id_t_uuid,
+         { "Uuid", "epmapper.rpc_if_id_t.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_MgmtDelete_object_speced,
+         { "Object Speced", "epmapper.epm_MgmtDelete.object_speced", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_uuid,
+         { "Uuid", "epmapper.epm_rhs.uuid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Map_map_tower,
+         { "Map Tower", "epmapper.epm_Map.map_tower", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Insert_replace,
+         { "Replace", "epmapper.epm_Insert.replace", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_entry_t___annotation_offset,
+         { "  Annotation Offset", "epmapper.epm_entry_t.__annotation_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_named_pipe_path,
+         { "Path", "epmapper.epm_rhs_named_pipe.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_inquiry_type,
+         { "Inquiry Type", "epmapper.epm_Lookup.inquiry_type", FT_UINT32, BASE_DEC, VALS(epmapper_epm_InquiryType_vals), 0, NULL, HFILL }},
+       { &hf_epmapper_epm_twr_p_t_twr,
+         { "Twr", "epmapper.epm_twr_p_t.twr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_object,
+         { "Object", "epmapper.epm_Lookup.object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Map_object,
+         { "Object", "epmapper.epm_Map.object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ncadg,
+         { "Ncadg", "epmapper.epm_rhs.ncadg", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_tower_floors,
+         { "Floors", "epmapper.epm_tower.floors", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Delete_entries,
+         { "Entries", "epmapper.epm_Delete.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_netbios_name,
+         { "Name", "epmapper.epm_rhs_netbios.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_smb,
+         { "Smb", "epmapper.epm_rhs.smb", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_MgmtDelete_tower,
+         { "Tower", "epmapper.epm_MgmtDelete.tower", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Map_entry_handle,
+         { "Entry Handle", "epmapper.epm_Map.entry_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_unix_ds,
+         { "Unix Ds", "epmapper.epm_rhs.unix_ds", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ncadg_minor_version,
+         { "Minor Version", "epmapper.epm_rhs_ncadg.minor_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_osi_clns,
+         { "Osi Clns", "epmapper.epm_rhs.osi_clns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Delete_num_ents,
+         { "Num Ents", "epmapper.epm_Delete.num_ents", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_floor_lhs,
+         { "Lhs", "epmapper.epm_floor.lhs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ncacn,
+         { "Ncacn", "epmapper.epm_rhs.ncacn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_entry_handle,
+         { "Entry Handle", "epmapper.epm_Lookup.entry_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ip,
+         { "Ip", "epmapper.epm_rhs.ip", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_atalk_datagram,
+         { "Atalk Datagram", "epmapper.epm_rhs.atalk_datagram", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Insert_entries,
+         { "Entries", "epmapper.epm_Insert.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_tcp_port,
+         { "Port", "epmapper.epm_rhs_tcp.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ipx,
+         { "Ipx", "epmapper.epm_rhs.ipx", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_vines_ipc_port,
+         { "Port", "epmapper.epm_rhs_vines_ipc.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_vines_spp,
+         { "Vines Spp", "epmapper.epm_rhs.vines_spp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_unix_ds_path,
+         { "Path", "epmapper.epm_rhs_unix_ds.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_twr_t_tower_,
+         { "Subcontext length", "epmapper.epm_twr_t.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_lhs_protocol,
+         { "Protocol", "epmapper.epm_lhs.protocol", FT_UINT8, BASE_DEC, VALS(epmapper_epm_protocol_vals), 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_appletalk,
+         { "Appletalk", "epmapper.epm_rhs.appletalk", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_MgmtDelete_object,
+         { "Object", "epmapper.epm_MgmtDelete.object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_twr_t_tower_length,
+         { "Tower Length", "epmapper.epm_twr_t.tower_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_streettalk,
+         { "Streettalk", "epmapper.epm_rhs.streettalk", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_max_ents,
+         { "Max Ents", "epmapper.epm_Lookup.max_ents", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_entry_t___annotation_length,
+         { "  Annotation Length", "epmapper.epm_entry_t.__annotation_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_nb_ipx,
+         { "Nb Ipx", "epmapper.epm_rhs.nb_ipx", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_opnum,
+         { "Operation", "epmapper.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Map_num_towers,
+         { "Num Towers", "epmapper.epm_Map.num_towers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_osi_tp4,
+         { "Osi Tp4", "epmapper.epm_rhs.osi_tp4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_netbeui,
+         { "Netbeui", "epmapper.epm_rhs.netbeui", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_http,
+         { "Http", "epmapper.epm_rhs.http", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Map_towers,
+         { "Towers", "epmapper.epm_Map.towers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_num_ents,
+         { "Num Ents", "epmapper.epm_Lookup.num_ents", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_null,
+         { "Null", "epmapper.epm_rhs.null", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ip_ipaddr,
+         { "Ipaddr", "epmapper.epm_rhs_ip.ipaddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_udp_port,
+         { "Port", "epmapper.epm_rhs_udp.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_floor_lhs_,
+         { "Subcontext length", "epmapper.epm_floor.subcontext", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_entry_t_tower,
+         { "Tower", "epmapper.epm_entry_t.tower", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_uuid_unknown,
+         { "Unknown", "epmapper.epm_rhs_uuid.unknown", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_floor_rhs_,
+         { "Subcontext length", "epmapper.epm_floor.subcontext", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_twr_t_tower,
+         { "Tower", "epmapper.epm_twr_t.tower", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_spx,
+         { "Spx", "epmapper.epm_rhs.spx", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ncacn_minor_version,
+         { "Minor Version", "epmapper.epm_rhs_ncacn.minor_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_entry_t_object,
+         { "Object", "epmapper.epm_entry_t.object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_entry_t_annotation,
+         { "Annotation", "epmapper.epm_entry_t.annotation", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_smb_unc,
+         { "Unc", "epmapper.epm_rhs_smb.unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_netbios,
+         { "Netbios", "epmapper.epm_rhs.netbios", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_udp,
+         { "Udp", "epmapper.epm_rhs.udp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_dnet_nsp,
+         { "Dnet Nsp", "epmapper.epm_rhs.dnet_nsp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_vers_option,
+         { "Vers Option", "epmapper.epm_Lookup.vers_option", FT_UINT32, BASE_DEC, VALS(epmapper_epm_VersionOption_vals), 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Map_max_towers,
+         { "Max Towers", "epmapper.epm_Map.max_towers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_ncalrpc,
+         { "Ncalrpc", "epmapper.epm_rhs.ncalrpc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_rpc_if_id_t_vers_major,
+         { "Vers Major", "epmapper.rpc_if_id_t.vers_major", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_LookupHandleFree_entry_handle,
+         { "Entry Handle", "epmapper.epm_LookupHandleFree.entry_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_tcp,
+         { "Tcp", "epmapper.epm_rhs.tcp", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_streettalk_streettalk,
+         { "Streettalk", "epmapper.epm_rhs_streettalk.streettalk", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_http_port,
+         { "Port", "epmapper.epm_rhs_http.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_atalk_stream,
+         { "Atalk Stream", "epmapper.epm_rhs.atalk_stream", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_uint32_status,
+         { "uint32", "epmapper.uint32_status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_vines_ipc,
+         { "Vines Ipc", "epmapper.epm_rhs.vines_ipc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_floor_rhs,
+         { "Rhs", "epmapper.epm_floor.rhs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_vines_spp_port,
+         { "Port", "epmapper.epm_rhs_vines_spp.port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_InqObject_epm_object,
+         { "Epm Object", "epmapper.epm_InqObject.epm_object", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_interface_id,
+         { "Interface Id", "epmapper.epm_Lookup.interface_id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_rpc_if_id_t_vers_minor,
+         { "Vers Minor", "epmapper.rpc_if_id_t.vers_minor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_tower_num_floors,
+         { "Num Floors", "epmapper.epm_tower.num_floors", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_named_pipe,
+         { "Named Pipe", "epmapper.epm_rhs.named_pipe", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Insert_num_ents,
+         { "Num Ents", "epmapper.epm_Insert.num_ents", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_lhs_lhs_data,
+         { "Lhs Data", "epmapper.epm_lhs.lhs_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_Lookup_entries,
+         { "Entries", "epmapper.epm_Lookup.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_epmapper_epm_rhs_unknown,
+         { "Unknown", "epmapper.epm_rhs.unknown", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_epmapper,
+               &ett_epmapper_epm_rhs_dnet_nsp,
+               &ett_epmapper_epm_rhs_osi_tp4,
+               &ett_epmapper_epm_rhs_osi_clns,
+               &ett_epmapper_epm_rhs_udp,
+               &ett_epmapper_epm_rhs_tcp,
+               &ett_epmapper_epm_rhs_ip,
+               &ett_epmapper_epm_rhs_ncadg,
+               &ett_epmapper_epm_rhs_ncacn,
+               &ett_epmapper_epm_rhs_uuid,
+               &ett_epmapper_epm_rhs_ipx,
+               &ett_epmapper_epm_rhs_smb,
+               &ett_epmapper_epm_rhs_named_pipe,
+               &ett_epmapper_epm_rhs_netbios,
+               &ett_epmapper_epm_rhs_netbeui,
+               &ett_epmapper_epm_rhs_spx,
+               &ett_epmapper_epm_rhs_nb_ipx,
+               &ett_epmapper_epm_rhs_http,
+               &ett_epmapper_epm_rhs_unix_ds,
+               &ett_epmapper_epm_rhs_null,
+               &ett_epmapper_epm_rhs_ncalrpc,
+               &ett_epmapper_epm_rhs_appletalk,
+               &ett_epmapper_epm_rhs_atalk_stream,
+               &ett_epmapper_epm_rhs_atalk_datagram,
+               &ett_epmapper_epm_rhs_vines_spp,
+               &ett_epmapper_epm_rhs_vines_ipc,
+               &ett_epmapper_epm_rhs_streettalk,
+               &ett_epmapper_epm_rhs,
+               &ett_epmapper_epm_lhs,
+               &ett_epmapper_epm_floor,
+               &ett_epmapper_epm_tower,
+               &ett_epmapper_epm_twr_t,
+               &ett_epmapper_epm_entry_t,
+               &ett_epmapper_rpc_if_id_t,
+               &ett_epmapper_epm_twr_p_t,
+       };
+
+       proto_dcerpc_epmapper = proto_register_protocol("EndPoint Mapper", "EPMAPPER", "epmapper");
+       proto_register_field_array(proto_dcerpc_epmapper, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_epmapper(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_epmapper, ett_dcerpc_epmapper,
+               &uuid_dcerpc_epmapper, ver_dcerpc_epmapper,
+               epmapper_dissectors, hf_epmapper_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-epmapper.h b/bin/default/librpc/gen_ndr/packet-dcerpc-epmapper.h
new file mode 100644 (file)
index 0000000..5cfffa0
--- /dev/null
@@ -0,0 +1,103 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/epmapper.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/epmapper.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_EPMAPPER_H
+#define __PACKET_DCERPC_EPMAPPER_H
+
+#define EPMAPPER_STATUS_CANT_PERFORM_OP        ( 0x6d8 )
+
+#define EPMAPPER_STATUS_NO_MORE_ENTRIES        ( 0x16c9a0d6 )
+
+#define EPMAPPER_STATUS_NO_MEMORY      ( 0x16C9A012 )
+
+#define EPMAPPER_STATUS_OK     ( 0 )
+
+#define EPM_PROTOCOL_DNET_NSP (0x04)
+#define EPM_PROTOCOL_OSI_TP4 (0x05)
+#define EPM_PROTOCOL_OSI_CLNS (0x06)
+#define EPM_PROTOCOL_TCP (0x07)
+#define EPM_PROTOCOL_UDP (0x08)
+#define EPM_PROTOCOL_IP (0x09)
+#define EPM_PROTOCOL_NCADG (0x0a)
+#define EPM_PROTOCOL_NCACN (0x0b)
+#define EPM_PROTOCOL_NCALRPC (0x0c)
+#define EPM_PROTOCOL_UUID (0x0d)
+#define EPM_PROTOCOL_IPX (0x0e)
+#define EPM_PROTOCOL_SMB (0x0f)
+#define EPM_PROTOCOL_NAMED_PIPE (0x10)
+#define EPM_PROTOCOL_NETBIOS (0x11)
+#define EPM_PROTOCOL_NETBEUI (0x12)
+#define EPM_PROTOCOL_SPX (0x13)
+#define EPM_PROTOCOL_NB_IPX (0x14)
+#define EPM_PROTOCOL_DSP (0x16)
+#define EPM_PROTOCOL_DDP (0x17)
+#define EPM_PROTOCOL_APPLETALK (0x18)
+#define EPM_PROTOCOL_VINES_SPP (0x1a)
+#define EPM_PROTOCOL_VINES_IPC (0x1b)
+#define EPM_PROTOCOL_STREETTALK (0x1c)
+#define EPM_PROTOCOL_HTTP (0x1f)
+#define EPM_PROTOCOL_UNIX_DS (0x20)
+#define EPM_PROTOCOL_NULL (0x21)
+extern const value_string epmapper_epm_protocol_vals[];
+int epmapper_dissect_enum_epm_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int epmapper_dissect_struct_epm_rhs_dnet_nsp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_osi_tp4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_osi_clns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_udp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_tcp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_ncadg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_ncacn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_smb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_named_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_netbeui(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_spx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_nb_ipx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_http(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_unix_ds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_ncalrpc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_appletalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_atalk_stream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_atalk_datagram(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_vines_spp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_vines_ipc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_rhs_streettalk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_lhs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_floor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_tower(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_twr_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_epm_entry_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int epmapper_dissect_struct_rpc_if_id_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define RPC_C_EP_ALL_ELTS (0x00000000)
+#define RPC_C_EP_MATCH_BY_IF (0x00000001)
+#define RPC_C_EP_MATCH_BY_OBJ (0x00000002)
+#define RPC_C_EP_MATCH_BY_BOTH (0x00000003)
+extern const value_string epmapper_epm_InquiryType_vals[];
+int epmapper_dissect_enum_epm_InquiryType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define RPC_C_VERS_ALL (0x00000000)
+#define RPC_C_VERS_COMPATIBLE (0x00000001)
+#define RPC_C_VERS_EXACT (0x00000002)
+#define RPC_C_VERS_MAJOR_ONLY (0x00000003)
+#define RPC_C_VERS_UPTO (0x00000004)
+extern const value_string epmapper_epm_VersionOption_vals[];
+int epmapper_dissect_enum_epm_VersionOption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int epmapper_dissect_struct_epm_twr_p_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_EPMAPPER_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.c b/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.c
new file mode 100644 (file)
index 0000000..caf9a4d
--- /dev/null
@@ -0,0 +1,3912 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-eventlog.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_eventlog = -1;
+static gint ett_eventlog_eventlogReadFlags = -1;
+static gint ett_eventlog_eventlog_OpenUnknown0 = -1;
+static gint ett_eventlog_eventlog_Record_tdb = -1;
+static gint ett_eventlog_EVENTLOGHEADER = -1;
+static gint ett_eventlog_EVENTLOGRECORD = -1;
+static gint ett_eventlog_EVENTLOGEOF = -1;
+static gint ett_eventlog_EVENTLOG_EVT_FILE = -1;
+static gint ett_eventlog_EVENTLOG_FULL_INFORMATION = -1;
+
+
+/* Header field declarations */
+static gint hf_eventlog_eventlog_Record_tdb_padding = -1;
+static gint hf_eventlog_eventlog_Record_tdb_size = -1;
+static gint hf_eventlog_eventlog_GetNumRecords_handle = -1;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_backup_logname = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Data = -1;
+static gint hf_eventlog_EVENTLOGHEADER_Signature = -1;
+static gint hf_eventlog_EVENTLOG_FULL_INFORMATION_full = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_num_of_strings = -1;
+static gint hf_eventlog_eventlog_OpenEventLogW_minor_version = -1;
+static gint hf_eventlog_EVENTLOGRECORD_UserSid_ = -1;
+static gint hf_eventlog_EVENTLOGRECORD_DataLength = -1;
+static gint hf_eventlog_eventlog_Record_tdb_event_category = -1;
+static gint hf_eventlog_eventlog_Record_tdb_source_name = -1;
+static gint hf_eventlog_eventlog_GetLogInformation_buffer = -1;
+static gint hf_eventlog_eventlog_ReportEventW_event_category = -1;
+static gint hf_eventlog_EVENTLOGHEADER_EndOffset = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Length = -1;
+static gint hf_eventlog_eventlog_GetLogInformation_level = -1;
+static gint hf_eventlog_eventlog_ClearEventLogW_handle = -1;
+static gint hf_eventlog_eventlog_GetLogInformation_handle = -1;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_reg_module_name = -1;
+static gint hf_eventlog_EVENTLOGEOF_Four = -1;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_unknown0 = -1;
+static gint hf_eventlog_eventlog_BackupEventLogW_handle = -1;
+static gint hf_eventlog_EVENTLOGEOF_BeginRecord = -1;
+static gint hf_eventlog_eventlog_Record_tdb_stringoffset = -1;
+static gint hf_eventlog_eventlog_GetLogInformation_bytes_needed = -1;
+static gint hf_eventlog_EVENTLOGRECORD_SourceName = -1;
+static gint hf_eventlog_eventlog_Record_tdb_closing_record_number = -1;
+static gint hf_eventlog_eventlog_Record_tdb_data_offset = -1;
+static gint hf_eventlog_eventlog_ReportEventW_record_number = -1;
+static gint hf_eventlog_eventlog_ReportEventW_event_type = -1;
+static gint hf_eventlog_eventlog_Record_tdb_strings_len = -1;
+static gint hf_eventlog_eventlog_ReportEventW_data = -1;
+static gint hf_eventlog_eventlog_OpenEventLogW_servername = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_record_number = -1;
+static gint hf_eventlog_EVENTLOGHEADER_HeaderSize = -1;
+static gint hf_eventlog_EVENTLOGRECORD_UserSid = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_real_size = -1;
+static gint hf_eventlog_eventlog_OpenEventLogW_logname = -1;
+static gint hf_eventlog_EVENTLOGHEADER_MinorVersion = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_user_sid = -1;
+static gint hf_eventlog_eventlog_ReportEventW_event_id = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_sent_size = -1;
+static gint hf_eventlog_eventlog_OpenEventLogW_major_version = -1;
+static gint hf_eventlog_EVENTLOG_EVT_FILE_records = -1;
+static gint hf_eventlog_eventlog_Record_tdb_sid_offset = -1;
+static gint hf_eventlog_EVENTLOGHEADER_Flags = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_offset = -1;
+static gint hf_eventlog_eventlog_ReportEventW_data_size = -1;
+static gint hf_eventlog_EVENTLOGHEADER_MajorVersion = -1;
+static gint hf_eventlog_eventlog_OpenUnknown0_unknown1 = -1;
+static gint hf_eventlog_eventlog_ReportEventW_timestamp = -1;
+static gint hf_eventlog_eventlog_Record_tdb_reserved_flags = -1;
+static gint hf_eventlog_EVENTLOGHEADER_EndHeaderSize = -1;
+static gint hf_eventlog_eventlog_GetNumRecords_number = -1;
+static gint hf_eventlog_eventlog_ReportEventW_strings = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_event_type = -1;
+static gint hf_eventlog_EVENTLOGEOF_RecordSizeEnd = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Length2 = -1;
+static gint hf_eventlog_EVENTLOGRECORD_ReservedFlags = -1;
+static gint hf_eventlog_EVENTLOGEOF_Three = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_sourcename = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_data = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_event_id = -1;
+static gint hf_eventlog_eventlog_DeregisterEventSource_handle = -1;
+static gint hf_eventlog_eventlog_Record_tdb_computer_name_len = -1;
+static gint hf_eventlog_opnum = -1;
+static gint hf_eventlog_eventlog_Record_tdb_data = -1;
+static gint hf_eventlog_status = -1;
+static gint hf_eventlog_eventlog_Record_tdb_event_type = -1;
+static gint hf_eventlog_eventlog_FlushEventLog_handle = -1;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_module_name = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Strings = -1;
+static gint hf_eventlog_EVENTLOGRECORD_EventType = -1;
+static gint hf_eventlog_eventlog_OpenEventLogW_unknown0 = -1;
+static gint hf_eventlog_EVENTLOGRECORD_RecordNumber = -1;
+static gint hf_eventlog_EVENTLOGRECORD_NumStrings = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_time_written = -1;
+static gint hf_eventlog_EVENTLOG_EVT_FILE_eof = -1;
+static gint hf_eventlog_eventlog_ReportEventW_servername = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Computername = -1;
+static gint hf_eventlog_eventlog_Record_tdb_strings = -1;
+static gint hf_eventlog_eventlog_GetOldestRecord_oldest_entry = -1;
+static gint hf_eventlog_eventlog_Record_tdb_reserved = -1;
+static gint hf_eventlog_eventlog_OpenUnknown0_unknown0 = -1;
+static gint hf_eventlog_EVENTLOGRECORD_TimeWritten = -1;
+static gint hf_eventlog_eventlog_Record_tdb_time_generated = -1;
+static gint hf_eventlog_eventlog_ReportEventW_flags = -1;
+static gint hf_eventlog_eventlog_ClearEventLogW_backupfile = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_handle = -1;
+static gint hf_eventlog_EVENTLOGHEADER_CurrentRecordNumber = -1;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_unknown0 = -1;
+static gint hf_eventlog_eventlog_CloseEventLog_handle = -1;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_handle = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_strings = -1;
+static gint hf_eventlog_eventlog_Record_tdb_record_number = -1;
+static gint hf_eventlog_eventlog_Record_tdb_computer_name = -1;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_SEEK_READ = -1;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_major_version = -1;
+static gint hf_eventlog_eventlog_Record_tdb_num_of_strings = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_timestamp = -1;
+static gint hf_eventlog_EVENTLOGRECORD_EventID = -1;
+static gint hf_eventlog_eventlog_OpenEventLogW_handle = -1;
+static gint hf_eventlog_EVENTLOGHEADER_StartOffset = -1;
+static gint hf_eventlog_EVENTLOGEOF_RecordSizeBeginning = -1;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_minor_version = -1;
+static gint hf_eventlog_EVENTLOGEOF_Two = -1;
+static gint hf_eventlog_EVENTLOGEOF_CurrentRecordNumber = -1;
+static gint hf_eventlog_eventlog_BackupEventLogW_backup_filename = -1;
+static gint hf_eventlog_eventlog_Record_tdb_source_name_len = -1;
+static gint hf_eventlog_EVENTLOGHEADER_Retention = -1;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_event_category = -1;
+static gint hf_eventlog_EVENTLOGRECORD_TimeGenerated = -1;
+static gint hf_eventlog_eventlog_ReportEventW_handle = -1;
+static gint hf_eventlog_EVENTLOGEOF_EndRecord = -1;
+static gint hf_eventlog_EVENTLOGRECORD_StringOffset = -1;
+static gint hf_eventlog_EVENTLOGRECORD_ClosingRecordNumber = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Reserved = -1;
+static gint hf_eventlog_eventlog_ReportEventW_user_sid = -1;
+static gint hf_eventlog_EVENTLOGRECORD_DataOffset = -1;
+static gint hf_eventlog_eventlog_Record_tdb_sid_padding = -1;
+static gint hf_eventlog_eventlog_Record_tdb_time_written = -1;
+static gint hf_eventlog_eventlog_RegisterEventSourceW_log_handle = -1;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_major_version = -1;
+static gint hf_eventlog_EVENTLOGEOF_OldestRecordNumber = -1;
+static gint hf_eventlog_eventlog_Record_tdb_sid = -1;
+static gint hf_eventlog_eventlog_GetOldestRecord_handle = -1;
+static gint hf_eventlog_EVENTLOGRECORD_EventCategory = -1;
+static gint hf_eventlog_EVENTLOGRECORD_UserSidOffset = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_servername = -1;
+static gint hf_eventlog_eventlog_ReportEventW_time_written = -1;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_BACKWARDS_READ = -1;
+static gint hf_eventlog_EVENTLOGRECORD_Pad = -1;
+static gint hf_eventlog_EVENTLOGHEADER_MaxSize = -1;
+static gint hf_eventlog_eventlog_GetLogInformation_buf_size = -1;
+static gint hf_eventlog_EVENTLOGEOF_One = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_handle = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_flags = -1;
+static gint hf_eventlog_eventlog_Record_tdb_sid_length = -1;
+static gint hf_eventlog_eventlog_Record_tdb_data_length = -1;
+static gint hf_eventlog_eventlogReadFlags_EVENTLOG_FORWARDS_READ = -1;
+static gint hf_eventlog_eventlog_ReportEventW_num_of_strings = -1;
+static gint hf_eventlog_eventlog_OpenBackupEventLogW_minor_version = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_number_of_bytes = -1;
+static gint hf_eventlog_EVENTLOGRECORD_UserSidLength = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_data = -1;
+static gint hf_eventlog_EVENTLOG_EVT_FILE_hdr = -1;
+static gint hf_eventlog_eventlog_Record_tdb_event_id = -1;
+static gint hf_eventlog_eventlog_ReportEventAndSourceW_data_size = -1;
+static gint hf_eventlog_EVENTLOGHEADER_OldestRecordNumber = -1;
+static gint hf_eventlog_eventlog_ReadEventLogW_flags = -1;
+
+static gint proto_dcerpc_eventlog = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_eventlog = {
+       0x82273fdc, 0xe32a, 0x18c3,
+       { 0x3f, 0x78, 0x82, 0x79, 0x29, 0xdc, 0x23, 0xea }
+};
+static guint16 ver_dcerpc_eventlog = 0;
+
+static const true_false_string eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ_tfs = {
+   "EVENTLOG_SEQUENTIAL_READ is SET",
+   "EVENTLOG_SEQUENTIAL_READ is NOT SET",
+};
+static const true_false_string eventlogReadFlags_EVENTLOG_SEEK_READ_tfs = {
+   "EVENTLOG_SEEK_READ is SET",
+   "EVENTLOG_SEEK_READ is NOT SET",
+};
+static const true_false_string eventlogReadFlags_EVENTLOG_FORWARDS_READ_tfs = {
+   "EVENTLOG_FORWARDS_READ is SET",
+   "EVENTLOG_FORWARDS_READ is NOT SET",
+};
+static const true_false_string eventlogReadFlags_EVENTLOG_BACKWARDS_READ_tfs = {
+   "EVENTLOG_BACKWARDS_READ is SET",
+   "EVENTLOG_BACKWARDS_READ is NOT SET",
+};
+const value_string eventlog_eventlogEventTypes_vals[] = {
+       { EVENTLOG_SUCCESS, "EVENTLOG_SUCCESS" },
+       { EVENTLOG_ERROR_TYPE, "EVENTLOG_ERROR_TYPE" },
+       { EVENTLOG_WARNING_TYPE, "EVENTLOG_WARNING_TYPE" },
+       { EVENTLOG_INFORMATION_TYPE, "EVENTLOG_INFORMATION_TYPE" },
+       { EVENTLOG_AUDIT_SUCCESS, "EVENTLOG_AUDIT_SUCCESS" },
+       { EVENTLOG_AUDIT_FAILURE, "EVENTLOG_AUDIT_FAILURE" },
+{ 0, NULL }
+};
+static int eventlog_dissect_element_OpenUnknown0_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenUnknown0_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_time_generated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_event_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_event_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_event_category(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_reserved_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_closing_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_stringoffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_sid_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_sid_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_data_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_source_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_source_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_computer_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_sid_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_strings_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_Record_tdb_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string eventlog_EVENTLOG_HEADER_FLAGS_vals[] = {
+       { ELF_LOGFILE_HEADER_DIRTY, "ELF_LOGFILE_HEADER_DIRTY" },
+       { ELF_LOGFILE_HEADER_WRAP, "ELF_LOGFILE_HEADER_WRAP" },
+       { ELF_LOGFILE_LOGFULL_WRITTEN, "ELF_LOGFILE_LOGFULL_WRITTEN" },
+       { ELF_LOGFILE_ARCHIVE_SET, "ELF_LOGFILE_ARCHIVE_SET" },
+{ 0, NULL }
+};
+static int eventlog_dissect_element_EVENTLOGHEADER_HeaderSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_StartOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_EndOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_CurrentRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_OldestRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_MaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_Retention(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGHEADER_EndHeaderSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_RecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_TimeGenerated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_TimeWritten(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_EventID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_EventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_NumStrings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_EventCategory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_ReservedFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_ClosingRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_StringOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_UserSidLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_UserSidOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_DataOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_SourceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_UserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_UserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGRECORD_Length2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_RecordSizeBeginning(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_One(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_Two(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_Three(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_Four(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_BeginRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_EndRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_CurrentRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_OldestRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOGEOF_RecordSizeEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOG_EVT_FILE_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOG_EVT_FILE_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOG_EVT_FILE_records_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOG_EVT_FILE_eof(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_EVENTLOG_FULL_INFORMATION_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ClearEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ClearEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ClearEventLogW_backupfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ClearEventLogW_backupfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_BackupEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_BackupEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_BackupEventLogW_backup_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_BackupEventLogW_backup_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_CloseEventLog_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_CloseEventLog_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_DeregisterEventSource_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_DeregisterEventSource_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetNumRecords_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetNumRecords_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetNumRecords_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetNumRecords_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetOldestRecord_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetOldestRecord_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetOldestRecord_oldest_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetOldestRecord_oldest_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_unknown0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_logname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_logname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_unknown0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_module_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_module_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_reg_module_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_reg_module_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_log_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_RegisterEventSourceW_log_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_unknown0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_backup_logname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_backup_logname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_OpenBackupEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_number_of_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_sent_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_sent_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_real_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReadEventLogW_real_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_event_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_event_category(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_event_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_user_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_user_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_strings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_strings___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_record_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventW_time_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_bytes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_GetLogInformation_bytes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_FlushEventLog_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_FlushEventLog_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_event_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_event_category(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_event_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_sourcename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_sourcename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_user_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_user_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_strings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_strings___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_record_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog_dissect_element_ReportEventAndSourceW_time_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL:        EVENTLOG_SEQUENTIAL_READ =  0x0001 , */
+/* IDL:        EVENTLOG_SEEK_READ =  0x0002 , */
+/* IDL:        EVENTLOG_FORWARDS_READ =  0x0004 , */
+/* IDL:        EVENTLOG_BACKWARDS_READ =  0x0008 , */
+/* IDL: } */
+
+int
+eventlog_dissect_bitmap_eventlogReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_eventlog_eventlogReadFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_eventlog_eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ, tvb, offset-4, 4, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "EVENTLOG_SEQUENTIAL_READ");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_eventlog_eventlogReadFlags_EVENTLOG_SEEK_READ, tvb, offset-4, 4, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "EVENTLOG_SEEK_READ");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_eventlog_eventlogReadFlags_EVENTLOG_FORWARDS_READ, tvb, offset-4, 4, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "EVENTLOG_FORWARDS_READ");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_eventlog_eventlogReadFlags_EVENTLOG_BACKWARDS_READ, tvb, offset-4, 4, flags);
+       if (flags&( 0x0008 )){
+               proto_item_append_text(item, "EVENTLOG_BACKWARDS_READ");
+               if (flags & (~( 0x0008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        EVENTLOG_SUCCESS=0x0000, */
+/* IDL:        EVENTLOG_ERROR_TYPE=0x0001, */
+/* IDL:        EVENTLOG_WARNING_TYPE=0x0002, */
+/* IDL:        EVENTLOG_INFORMATION_TYPE=0x0004, */
+/* IDL:        EVENTLOG_AUDIT_SUCCESS=0x0008, */
+/* IDL:        EVENTLOG_AUDIT_FAILURE=0x0010, */
+/* IDL: } */
+
+int
+eventlog_dissect_enum_eventlogEventTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 unknown0; */
+/* IDL:        uint16 unknown1; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_OpenUnknown0_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenUnknown0_unknown0, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenUnknown0_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenUnknown0_unknown1, 0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_OpenUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_eventlog_OpenUnknown0);
+       }
+       
+       offset = eventlog_dissect_element_OpenUnknown0_unknown0(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_OpenUnknown0_unknown1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        [value("eLfL")] [charset(DOS)] uint8 reserved[4]; */
+/* IDL:        uint32 record_number; */
+/* IDL:        time_t time_generated; */
+/* IDL:        time_t time_written; */
+/* IDL:        uint32 event_id; */
+/* IDL:        eventlogEventTypes event_type; */
+/* IDL:        [range(0,256)] uint16 num_of_strings; */
+/* IDL:        uint16 event_category; */
+/* IDL:        uint16 reserved_flags; */
+/* IDL:        uint32 closing_record_number; */
+/* IDL:        uint32 stringoffset; */
+/* IDL:        [value(sid.length)] uint32 sid_length; */
+/* IDL:        uint32 sid_offset; */
+/* IDL:        [value(data.length)] uint32 data_length; */
+/* IDL:        uint32 data_offset; */
+/* IDL:        [value(2*strlen_m_term(source_name))] uint32 source_name_len; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string source_name; */
+/* IDL:        [value(2*strlen_m_term(computer_name))] uint32 computer_name_len; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string computer_name; */
+/* IDL:        uint32 sid_padding; */
+/* IDL:        DATA_BLOB sid; */
+/* IDL:        [value(2*ndr_size_string_array(strings,num_of_strings,LIBNDR_FLAG_STR_NULLTERM))] uint32 strings_len; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string strings[num_of_strings]; */
+/* IDL:        DATA_BLOB data; */
+/* IDL:        uint32 padding; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_Record_tdb_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_size, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = eventlog_dissect_element_Record_tdb_reserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_reserved, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_record_number, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_time_generated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_eventlog_Record_tdb_time_generated, NULL);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_eventlog_Record_tdb_time_written, NULL);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_event_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_event_id, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_event_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_enum_eventlogEventTypes(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_event_type, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_num_of_strings, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_event_category(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_event_category, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_reserved_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_reserved_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_closing_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_closing_record_number, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_stringoffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_stringoffset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_sid_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_sid_length, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_sid_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_sid_offset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_data_length, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_data_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_data_offset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_source_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_source_name_len, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_source_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_source_name , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_computer_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_computer_name_len, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_computer_name , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_sid_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_sid_padding, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_sid, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_strings_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_strings_len, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_strings , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_data, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_Record_tdb_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_Record_tdb_padding, 0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_Record_tdb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_eventlog_Record_tdb);
+       }
+       
+       offset = eventlog_dissect_element_Record_tdb_size(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_record_number(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_time_generated(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_time_written(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_event_id(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_event_type(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_num_of_strings(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_event_category(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_reserved_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_closing_record_number(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_stringoffset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_sid_length(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_sid_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_data_length(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_data_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_source_name_len(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_source_name(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_computer_name_len(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_sid_padding(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_strings_len(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_strings(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_data(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_Record_tdb_padding(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        ELF_LOGFILE_HEADER_DIRTY=0x0001, */
+/* IDL:        ELF_LOGFILE_HEADER_WRAP=0x0002, */
+/* IDL:        ELF_LOGFILE_LOGFULL_WRITTEN=0x0004, */
+/* IDL:        ELF_LOGFILE_ARCHIVE_SET=0x0008, */
+/* IDL: } */
+
+int
+eventlog_dissect_enum_EVENTLOG_HEADER_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x30)] uint32 HeaderSize; */
+/* IDL:        [value("LfLe")] [charset(DOS)] uint8 Signature[4]; */
+/* IDL:        [value(1)] uint32 MajorVersion; */
+/* IDL:        [value(1)] uint32 MinorVersion; */
+/* IDL:        uint32 StartOffset; */
+/* IDL:        uint32 EndOffset; */
+/* IDL:        uint32 CurrentRecordNumber; */
+/* IDL:        uint32 OldestRecordNumber; */
+/* IDL:        uint32 MaxSize; */
+/* IDL:        EVENTLOG_HEADER_FLAGS Flags; */
+/* IDL:        uint32 Retention; */
+/* IDL:        [value(0x30)] uint32 EndHeaderSize; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_HeaderSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_HeaderSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_Signature, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_MajorVersion, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_MinorVersion, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_StartOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_StartOffset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_EndOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_EndOffset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_CurrentRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_CurrentRecordNumber, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_OldestRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_OldestRecordNumber, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_MaxSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_MaxSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_enum_EVENTLOG_HEADER_FLAGS(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_Flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_Retention(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_Retention, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGHEADER_EndHeaderSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGHEADER_EndHeaderSize, 0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_EVENTLOGHEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_EVENTLOGHEADER);
+       }
+       
+       offset = eventlog_dissect_element_EVENTLOGHEADER_HeaderSize(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_Signature(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_MajorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_MinorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_StartOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_EndOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_CurrentRecordNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_OldestRecordNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_MaxSize(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_Retention(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGHEADER_EndHeaderSize(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 Length; */
+/* IDL:        [value("LfLe")] [charset(DOS)] uint8 Reserved[4]; */
+/* IDL:        uint32 RecordNumber; */
+/* IDL:        time_t TimeGenerated; */
+/* IDL:        time_t TimeWritten; */
+/* IDL:        uint32 EventID; */
+/* IDL:        eventlogEventTypes EventType; */
+/* IDL:        uint16 NumStrings; */
+/* IDL:        uint16 EventCategory; */
+/* IDL:        uint16 ReservedFlags; */
+/* IDL:        uint32 ClosingRecordNumber; */
+/* IDL:        [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername))+UserSidLength)] uint32 StringOffset; */
+/* IDL:        [value(ndr_size_dom_sid0(&UserSid,ndr->flags))] uint32 UserSidLength; */
+/* IDL:        [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername)))] uint32 UserSidOffset; */
+/* IDL:        uint32 DataLength; */
+/* IDL:        [value(56+2*(strlen_m_term(SourceName)+strlen_m_term(Computername))+UserSidLength+(2*ndr_size_string_array(Strings,NumStrings,LIBNDR_FLAG_STR_NULLTERM)))] uint32 DataOffset; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string SourceName; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string Computername; */
+/* IDL:        [subcontext_size(UserSidLength)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] dom_sid0 UserSid; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string Strings[NumStrings]; */
+/* IDL:        [flag(LIBNDR_PRINT_ARRAY_HEX)] uint8 Data[DataLength]; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string Pad; */
+/* IDL:        [value(Length)] uint32 Length2; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Length, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Reserved, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_RecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_RecordNumber, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_TimeGenerated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_EVENTLOGRECORD_TimeGenerated, NULL);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_TimeWritten(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_EVENTLOGRECORD_TimeWritten, NULL);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_EventID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_EventID, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_EventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_enum_eventlogEventTypes(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_EventType, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_NumStrings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_NumStrings, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_EventCategory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_EventCategory, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_ReservedFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_ReservedFlags, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_ClosingRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_ClosingRecordNumber, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_StringOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_StringOffset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_UserSidLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_UserSidLength, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_UserSidOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_UserSidOffset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_DataLength, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_DataOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_DataOffset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_SourceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_SourceName , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Computername , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_UserSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_UserSid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               eventlog_dissect_element_EVENTLOGRECORD_UserSid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_UserSid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_dom_sid0(tvb,offset,pinfo,tree,drep,hf_eventlog_EVENTLOGRECORD_UserSid,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Strings , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Data, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Pad , 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGRECORD_Length2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGRECORD_Length2, 0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_EVENTLOGRECORD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_EVENTLOGRECORD);
+       }
+       
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Length(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_RecordNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_TimeGenerated(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_TimeWritten(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_EventID(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_EventType(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_NumStrings(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_EventCategory(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_ReservedFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_ClosingRecordNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_StringOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_UserSidLength(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_UserSidOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_DataLength(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_DataOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_SourceName(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Computername(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_UserSid(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Strings(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Data(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Pad(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGRECORD_Length2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x28)] uint32 RecordSizeBeginning; */
+/* IDL:        [value(0x11111111)] uint32 One; */
+/* IDL:        [value(0x22222222)] uint32 Two; */
+/* IDL:        [value(0x33333333)] uint32 Three; */
+/* IDL:        [value(0x44444444)] uint32 Four; */
+/* IDL:        uint32 BeginRecord; */
+/* IDL:        uint32 EndRecord; */
+/* IDL:        uint32 CurrentRecordNumber; */
+/* IDL:        uint32 OldestRecordNumber; */
+/* IDL:        [value(0x28)] uint32 RecordSizeEnd; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_RecordSizeBeginning(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_RecordSizeBeginning, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_One(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_One, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_Two(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_Two, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_Three(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_Three, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_Four(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_Four, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_BeginRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_BeginRecord, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_EndRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_EndRecord, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_CurrentRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_CurrentRecordNumber, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_OldestRecordNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_OldestRecordNumber, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOGEOF_RecordSizeEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOGEOF_RecordSizeEnd, 0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_EVENTLOGEOF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_EVENTLOGEOF);
+       }
+       
+       offset = eventlog_dissect_element_EVENTLOGEOF_RecordSizeBeginning(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_One(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_Two(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_Three(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_Four(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_BeginRecord(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_EndRecord(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_CurrentRecordNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_OldestRecordNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOGEOF_RecordSizeEnd(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        EVENTLOGHEADER hdr; */
+/* IDL:        EVENTLOGRECORD records[hdr.CurrentRecordNumber-hdr.OldestRecordNumber]; */
+/* IDL:        EVENTLOGEOF eof; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_EVENTLOG_EVT_FILE_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_EVENTLOGHEADER(tvb,offset,pinfo,tree,drep,hf_eventlog_EVENTLOG_EVT_FILE_hdr,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOG_EVT_FILE_records(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOG_EVT_FILE_records_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_EVENTLOGRECORD(tvb,offset,pinfo,tree,drep,hf_eventlog_EVENTLOG_EVT_FILE_records,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_EVENTLOG_EVT_FILE_eof(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_EVENTLOGEOF(tvb,offset,pinfo,tree,drep,hf_eventlog_EVENTLOG_EVT_FILE_eof,0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_EVENTLOG_EVT_FILE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_EVENTLOG_EVT_FILE);
+       }
+       
+       offset = eventlog_dissect_element_EVENTLOG_EVT_FILE_hdr(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOG_EVT_FILE_records(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog_dissect_element_EVENTLOG_EVT_FILE_eof(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 full; */
+/* IDL: } */
+
+static int
+eventlog_dissect_element_EVENTLOG_FULL_INFORMATION_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_EVENTLOG_FULL_INFORMATION_full, 0);
+
+       return offset;
+}
+
+int
+eventlog_dissect_struct_EVENTLOG_FULL_INFORMATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog_EVENTLOG_FULL_INFORMATION);
+       }
+       
+       offset = eventlog_dissect_element_EVENTLOG_FULL_INFORMATION_full(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ClearEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ClearEventLogW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_ClearEventLogW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ClearEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ClearEventLogW_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ClearEventLogW_backupfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ClearEventLogW_backupfile_, NDR_POINTER_UNIQUE, "Pointer to Backupfile (lsa_String)",hf_eventlog_eventlog_ClearEventLogW_backupfile);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ClearEventLogW_backupfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ClearEventLogW_backupfile,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ClearEventLogW( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [unique(1)] [in] lsa_String *backupfile */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ClearEventLogW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ClearEventLogW";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ClearEventLogW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ClearEventLogW";
+       offset = eventlog_dissect_element_ClearEventLogW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ClearEventLogW_backupfile(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_BackupEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_BackupEventLogW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_BackupEventLogW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_BackupEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_BackupEventLogW_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_BackupEventLogW_backup_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_BackupEventLogW_backup_filename_, NDR_POINTER_REF, "Pointer to Backup Filename (lsa_String)",hf_eventlog_eventlog_BackupEventLogW_backup_filename);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_BackupEventLogW_backup_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_BackupEventLogW_backup_filename,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_BackupEventLogW( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *backup_filename */
+/* IDL: ); */
+
+static int
+eventlog_dissect_BackupEventLogW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="BackupEventLogW";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_BackupEventLogW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BackupEventLogW";
+       offset = eventlog_dissect_element_BackupEventLogW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_BackupEventLogW_backup_filename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_CloseEventLog_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_CloseEventLog_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_CloseEventLog_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_CloseEventLog_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_CloseEventLog_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_CloseEventLog( */
+/* IDL: [out] [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog_dissect_CloseEventLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CloseEventLog";
+       offset = eventlog_dissect_element_CloseEventLog_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_CloseEventLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CloseEventLog";
+       offset = eventlog_dissect_element_CloseEventLog_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_DeregisterEventSource_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_DeregisterEventSource_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_DeregisterEventSource_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_DeregisterEventSource_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_DeregisterEventSource_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_DeregisterEventSource( */
+/* IDL: [out] [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog_dissect_DeregisterEventSource_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeregisterEventSource";
+       offset = eventlog_dissect_element_DeregisterEventSource_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_DeregisterEventSource_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeregisterEventSource";
+       offset = eventlog_dissect_element_DeregisterEventSource_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetNumRecords_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetNumRecords_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_GetNumRecords_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetNumRecords_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetNumRecords_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetNumRecords_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetNumRecords_number_, NDR_POINTER_REF, "Pointer to Number (uint32)",hf_eventlog_eventlog_GetNumRecords_number);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetNumRecords_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetNumRecords_number, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_GetNumRecords( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [ref] uint32 *number */
+/* IDL: ); */
+
+static int
+eventlog_dissect_GetNumRecords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetNumRecords";
+       offset = eventlog_dissect_element_GetNumRecords_number(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_GetNumRecords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetNumRecords";
+       offset = eventlog_dissect_element_GetNumRecords_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetOldestRecord_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetOldestRecord_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_GetOldestRecord_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetOldestRecord_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetOldestRecord_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetOldestRecord_oldest_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetOldestRecord_oldest_entry_, NDR_POINTER_REF, "Pointer to Oldest Entry (uint32)",hf_eventlog_eventlog_GetOldestRecord_oldest_entry);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetOldestRecord_oldest_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetOldestRecord_oldest_entry, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_GetOldestRecord( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [ref] uint32 *oldest_entry */
+/* IDL: ); */
+
+static int
+eventlog_dissect_GetOldestRecord_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetOldestRecord";
+       offset = eventlog_dissect_element_GetOldestRecord_oldest_entry(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_GetOldestRecord_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetOldestRecord";
+       offset = eventlog_dissect_element_GetOldestRecord_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ChangeNotify( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ChangeNotify_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangeNotify";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ChangeNotify_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangeNotify";
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenEventLogW_unknown0_, NDR_POINTER_UNIQUE, "Pointer to Unknown0 (eventlog_OpenUnknown0)",hf_eventlog_eventlog_OpenEventLogW_unknown0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_unknown0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_OpenUnknown0(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_OpenEventLogW_unknown0,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_logname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenEventLogW_logname_, NDR_POINTER_REF, "Pointer to Logname (lsa_String)",hf_eventlog_eventlog_OpenEventLogW_logname);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_logname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_OpenEventLogW_logname,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenEventLogW_servername_, NDR_POINTER_REF, "Pointer to Servername (lsa_String)",hf_eventlog_eventlog_OpenEventLogW_servername);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_OpenEventLogW_servername,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenEventLogW_major_version, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenEventLogW_minor_version, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenEventLogW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_OpenEventLogW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenEventLogW_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_OpenEventLogW( */
+/* IDL: [unique(1)] [in] eventlog_OpenUnknown0 *unknown0, */
+/* IDL: [in] [ref] lsa_String *logname, */
+/* IDL: [in] [ref] lsa_String *servername, */
+/* IDL: [in] uint32 major_version, */
+/* IDL: [in] uint32 minor_version, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog_dissect_OpenEventLogW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenEventLogW";
+       offset = eventlog_dissect_element_OpenEventLogW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_OpenEventLogW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenEventLogW";
+       offset = eventlog_dissect_element_OpenEventLogW_unknown0(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenEventLogW_logname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenEventLogW_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenEventLogW_major_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenEventLogW_minor_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_RegisterEventSourceW_unknown0_, NDR_POINTER_UNIQUE, "Pointer to Unknown0 (eventlog_OpenUnknown0)",hf_eventlog_eventlog_RegisterEventSourceW_unknown0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_unknown0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_OpenUnknown0(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_RegisterEventSourceW_unknown0,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_module_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_RegisterEventSourceW_module_name_, NDR_POINTER_REF, "Pointer to Module Name (lsa_String)",hf_eventlog_eventlog_RegisterEventSourceW_module_name);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_module_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_RegisterEventSourceW_module_name,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_reg_module_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_RegisterEventSourceW_reg_module_name_, NDR_POINTER_REF, "Pointer to Reg Module Name (lsa_String)",hf_eventlog_eventlog_RegisterEventSourceW_reg_module_name);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_reg_module_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_RegisterEventSourceW_reg_module_name,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_RegisterEventSourceW_major_version, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_RegisterEventSourceW_minor_version, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_log_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_RegisterEventSourceW_log_handle_, NDR_POINTER_REF, "Pointer to Log Handle (policy_handle)",hf_eventlog_eventlog_RegisterEventSourceW_log_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_RegisterEventSourceW_log_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_RegisterEventSourceW_log_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_RegisterEventSourceW( */
+/* IDL: [unique(1)] [in] eventlog_OpenUnknown0 *unknown0, */
+/* IDL: [in] [ref] lsa_String *module_name, */
+/* IDL: [in] [ref] lsa_String *reg_module_name, */
+/* IDL: [in] uint32 major_version, */
+/* IDL: [in] uint32 minor_version, */
+/* IDL: [out] [ref] policy_handle *log_handle */
+/* IDL: ); */
+
+static int
+eventlog_dissect_RegisterEventSourceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RegisterEventSourceW";
+       offset = eventlog_dissect_element_RegisterEventSourceW_log_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_RegisterEventSourceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RegisterEventSourceW";
+       offset = eventlog_dissect_element_RegisterEventSourceW_unknown0(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_RegisterEventSourceW_module_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_RegisterEventSourceW_reg_module_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_RegisterEventSourceW_major_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_RegisterEventSourceW_minor_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_unknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenBackupEventLogW_unknown0_, NDR_POINTER_UNIQUE, "Pointer to Unknown0 (eventlog_OpenUnknown0)",hf_eventlog_eventlog_OpenBackupEventLogW_unknown0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_unknown0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_OpenUnknown0(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_OpenBackupEventLogW_unknown0,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_backup_logname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenBackupEventLogW_backup_logname_, NDR_POINTER_REF, "Pointer to Backup Logname (lsa_String)",hf_eventlog_eventlog_OpenBackupEventLogW_backup_logname);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_backup_logname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_OpenBackupEventLogW_backup_logname,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenBackupEventLogW_major_version, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenBackupEventLogW_minor_version, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_OpenBackupEventLogW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_OpenBackupEventLogW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_OpenBackupEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_OpenBackupEventLogW_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_OpenBackupEventLogW( */
+/* IDL: [unique(1)] [in] eventlog_OpenUnknown0 *unknown0, */
+/* IDL: [in] [ref] lsa_String *backup_logname, */
+/* IDL: [in] uint32 major_version, */
+/* IDL: [in] uint32 minor_version, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog_dissect_OpenBackupEventLogW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenBackupEventLogW";
+       offset = eventlog_dissect_element_OpenBackupEventLogW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_OpenBackupEventLogW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenBackupEventLogW";
+       offset = eventlog_dissect_element_OpenBackupEventLogW_unknown0(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenBackupEventLogW_backup_logname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenBackupEventLogW_major_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_OpenBackupEventLogW_minor_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_ReadEventLogW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_bitmap_eventlogReadFlags(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_offset, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_number_of_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_number_of_bytes, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_eventlog_eventlog_ReadEventLogW_data);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_data__);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_data, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_sent_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_sent_size_, NDR_POINTER_REF, "Pointer to Sent Size (uint32)",hf_eventlog_eventlog_ReadEventLogW_sent_size);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_sent_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_sent_size, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_real_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReadEventLogW_real_size_, NDR_POINTER_REF, "Pointer to Real Size (uint32)",hf_eventlog_eventlog_ReadEventLogW_real_size);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReadEventLogW_real_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReadEventLogW_real_size, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ReadEventLogW( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] eventlogReadFlags flags, */
+/* IDL: [in] uint32 offset, */
+/* IDL: [in] [range(0,0x7FFFF)] uint32 number_of_bytes, */
+/* IDL: [out] [ref] [size_is(number_of_bytes)] uint8 *data, */
+/* IDL: [out] [ref] uint32 *sent_size, */
+/* IDL: [out] [ref] uint32 *real_size */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ReadEventLogW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReadEventLogW";
+       offset = eventlog_dissect_element_ReadEventLogW_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog_dissect_element_ReadEventLogW_sent_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog_dissect_element_ReadEventLogW_real_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ReadEventLogW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReadEventLogW";
+       offset = eventlog_dissect_element_ReadEventLogW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReadEventLogW_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReadEventLogW_offset(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReadEventLogW_number_of_bytes(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_ReportEventW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_eventlog_ReportEventW_timestamp, NULL);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_event_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_enum_eventlogEventTypes(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_event_type, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_event_category(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_event_category, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_event_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_event_id, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_num_of_strings, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_data_size, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_servername_, NDR_POINTER_REF, "Pointer to Servername (lsa_String)",hf_eventlog_eventlog_ReportEventW_servername);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventW_servername,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_user_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_user_sid_, NDR_POINTER_UNIQUE, "Pointer to User Sid (dom_sid)",hf_eventlog_eventlog_ReportEventW_user_sid);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_user_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventW_user_sid,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_strings_, NDR_POINTER_UNIQUE, "Pointer to Strings (lsa_String)",hf_eventlog_eventlog_ReportEventW_strings);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_strings__);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_strings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_strings___, NDR_POINTER_UNIQUE, "Pointer to Strings (lsa_String)",hf_eventlog_eventlog_ReportEventW_strings);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_strings___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventW_strings,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_eventlog_eventlog_ReportEventW_data);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_data__);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_data, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_record_number_, NDR_POINTER_UNIQUE, "Pointer to Record Number (uint32)",hf_eventlog_eventlog_ReportEventW_record_number);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_record_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventW_record_number, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventW_time_written_, NDR_POINTER_UNIQUE, "Pointer to Time Written (time_t)",hf_eventlog_eventlog_ReportEventW_time_written);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventW_time_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_eventlog_ReportEventW_time_written, NULL);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ReportEventW( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] time_t timestamp, */
+/* IDL: [in] eventlogEventTypes event_type, */
+/* IDL: [in] uint16 event_category, */
+/* IDL: [in] uint32 event_id, */
+/* IDL: [in] [range(0,256)] uint16 num_of_strings, */
+/* IDL: [in] [range(0,0x3FFFF)] uint32 data_size, */
+/* IDL: [in] [ref] lsa_String *servername, */
+/* IDL: [unique(1)] [in] dom_sid *user_sid, */
+/* IDL: [unique(1)] [in] [size_is(num_of_strings)] lsa_String **strings, */
+/* IDL: [unique(1)] [in] [size_is(data_size)] uint8 *data, */
+/* IDL: [in] uint16 flags, */
+/* IDL: [out] [unique(1)] [in] uint32 *record_number, */
+/* IDL: [out] [unique(1)] [in] time_t *time_written */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ReportEventW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReportEventW";
+       offset = eventlog_dissect_element_ReportEventW_record_number(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog_dissect_element_ReportEventW_time_written(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ReportEventW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReportEventW";
+       offset = eventlog_dissect_element_ReportEventW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_timestamp(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_event_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_event_category(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_event_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_num_of_strings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_user_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_strings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_record_number(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventW_time_written(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ClearEventLogA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ClearEventLogA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ClearEventLogA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ClearEventLogA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ClearEventLogA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_BackupEventLogA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_BackupEventLogA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="BackupEventLogA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_BackupEventLogA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="BackupEventLogA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_OpenEventLogA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_OpenEventLogA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenEventLogA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_OpenEventLogA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenEventLogA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_RegisterEventSourceA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_RegisterEventSourceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RegisterEventSourceA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_RegisterEventSourceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RegisterEventSourceA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_OpenBackupEventLogA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_OpenBackupEventLogA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenBackupEventLogA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_OpenBackupEventLogA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenBackupEventLogA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ReadEventLogA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ReadEventLogA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReadEventLogA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ReadEventLogA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReadEventLogA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ReportEventA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ReportEventA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReportEventA";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ReportEventA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReportEventA";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_RegisterClusterSvc( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_RegisterClusterSvc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RegisterClusterSvc";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_RegisterClusterSvc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RegisterClusterSvc";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_DeregisterClusterSvc( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_DeregisterClusterSvc_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeregisterClusterSvc";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_DeregisterClusterSvc_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeregisterClusterSvc";
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_WriteClusterEvents( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+eventlog_dissect_WriteClusterEvents_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="WriteClusterEvents";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_WriteClusterEvents_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="WriteClusterEvents";
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetLogInformation_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_GetLogInformation_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetLogInformation_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetLogInformation_level, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetLogInformation_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_eventlog_eventlog_GetLogInformation_buffer);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetLogInformation_buffer__);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetLogInformation_buffer, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetLogInformation_buf_size, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_bytes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_GetLogInformation_bytes_needed_, NDR_POINTER_REF, "Pointer to Bytes Needed (uint32)",hf_eventlog_eventlog_GetLogInformation_bytes_needed);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_GetLogInformation_bytes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_GetLogInformation_bytes_needed, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_GetLogInformation( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [size_is(buf_size)] uint8 *buffer, */
+/* IDL: [in] [range(0,1024)] uint32 buf_size, */
+/* IDL: [out] [ref] uint32 *bytes_needed */
+/* IDL: ); */
+
+static int
+eventlog_dissect_GetLogInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetLogInformation";
+       offset = eventlog_dissect_element_GetLogInformation_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog_dissect_element_GetLogInformation_bytes_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_GetLogInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetLogInformation";
+       offset = eventlog_dissect_element_GetLogInformation_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_GetLogInformation_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_GetLogInformation_buf_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_FlushEventLog_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_FlushEventLog_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_FlushEventLog_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_FlushEventLog_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_FlushEventLog_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_FlushEventLog( */
+/* IDL: [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog_dissect_FlushEventLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FlushEventLog";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_FlushEventLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FlushEventLog";
+       offset = eventlog_dissect_element_FlushEventLog_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog_eventlog_ReportEventAndSourceW_handle);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_timestamp, NULL);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_event_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_enum_eventlogEventTypes(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_event_type, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_event_category(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_event_category, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_event_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_event_id, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_sourcename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_sourcename_, NDR_POINTER_REF, "Pointer to Sourcename (lsa_String)",hf_eventlog_eventlog_ReportEventAndSourceW_sourcename);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_sourcename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventAndSourceW_sourcename,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_num_of_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_num_of_strings, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_data_size, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_servername_, NDR_POINTER_REF, "Pointer to Servername (lsa_String)",hf_eventlog_eventlog_ReportEventAndSourceW_servername);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventAndSourceW_servername,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_user_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_user_sid_, NDR_POINTER_UNIQUE, "Pointer to User Sid (dom_sid)",hf_eventlog_eventlog_ReportEventAndSourceW_user_sid);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_user_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventAndSourceW_user_sid,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_strings_, NDR_POINTER_UNIQUE, "Pointer to Strings (lsa_String)",hf_eventlog_eventlog_ReportEventAndSourceW_strings);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_strings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_strings__);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_strings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_strings___, NDR_POINTER_UNIQUE, "Pointer to Strings (lsa_String)",hf_eventlog_eventlog_ReportEventAndSourceW_strings);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_strings___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_eventlog_eventlog_ReportEventAndSourceW_strings,0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_eventlog_eventlog_ReportEventAndSourceW_data);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_data__);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_data, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_record_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_record_number_, NDR_POINTER_UNIQUE, "Pointer to Record Number (uint32)",hf_eventlog_eventlog_ReportEventAndSourceW_record_number);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_record_number_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_record_number, 0);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_time_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog_dissect_element_ReportEventAndSourceW_time_written_, NDR_POINTER_UNIQUE, "Pointer to Time Written (time_t)",hf_eventlog_eventlog_ReportEventAndSourceW_time_written);
+
+       return offset;
+}
+
+static int
+eventlog_dissect_element_ReportEventAndSourceW_time_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_eventlog_eventlog_ReportEventAndSourceW_time_written, NULL);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS eventlog_ReportEventAndSourceW( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] time_t timestamp, */
+/* IDL: [in] eventlogEventTypes event_type, */
+/* IDL: [in] uint16 event_category, */
+/* IDL: [in] uint32 event_id, */
+/* IDL: [in] [ref] lsa_String *sourcename, */
+/* IDL: [in] [range(0,256)] uint16 num_of_strings, */
+/* IDL: [in] [range(0,0x3FFFF)] uint32 data_size, */
+/* IDL: [in] [ref] lsa_String *servername, */
+/* IDL: [unique(1)] [in] dom_sid *user_sid, */
+/* IDL: [unique(1)] [in] [size_is(num_of_strings)] lsa_String **strings, */
+/* IDL: [unique(1)] [in] [size_is(data_size)] uint8 *data, */
+/* IDL: [in] uint16 flags, */
+/* IDL: [out] [unique(1)] [in] uint32 *record_number, */
+/* IDL: [out] [unique(1)] [in] time_t *time_written */
+/* IDL: ); */
+
+static int
+eventlog_dissect_ReportEventAndSourceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReportEventAndSourceW";
+       offset = eventlog_dissect_element_ReportEventAndSourceW_record_number(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog_dissect_element_ReportEventAndSourceW_time_written(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_eventlog_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog_dissect_ReportEventAndSourceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReportEventAndSourceW";
+       offset = eventlog_dissect_element_ReportEventAndSourceW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_timestamp(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_event_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_event_category(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_event_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_sourcename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_num_of_strings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_user_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_strings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_record_number(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog_dissect_element_ReportEventAndSourceW_time_written(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector eventlog_dissectors[] = {
+       { 0, "ClearEventLogW",
+          eventlog_dissect_ClearEventLogW_request, eventlog_dissect_ClearEventLogW_response},
+       { 1, "BackupEventLogW",
+          eventlog_dissect_BackupEventLogW_request, eventlog_dissect_BackupEventLogW_response},
+       { 2, "CloseEventLog",
+          eventlog_dissect_CloseEventLog_request, eventlog_dissect_CloseEventLog_response},
+       { 3, "DeregisterEventSource",
+          eventlog_dissect_DeregisterEventSource_request, eventlog_dissect_DeregisterEventSource_response},
+       { 4, "GetNumRecords",
+          eventlog_dissect_GetNumRecords_request, eventlog_dissect_GetNumRecords_response},
+       { 5, "GetOldestRecord",
+          eventlog_dissect_GetOldestRecord_request, eventlog_dissect_GetOldestRecord_response},
+       { 6, "ChangeNotify",
+          eventlog_dissect_ChangeNotify_request, eventlog_dissect_ChangeNotify_response},
+       { 7, "OpenEventLogW",
+          eventlog_dissect_OpenEventLogW_request, eventlog_dissect_OpenEventLogW_response},
+       { 8, "RegisterEventSourceW",
+          eventlog_dissect_RegisterEventSourceW_request, eventlog_dissect_RegisterEventSourceW_response},
+       { 9, "OpenBackupEventLogW",
+          eventlog_dissect_OpenBackupEventLogW_request, eventlog_dissect_OpenBackupEventLogW_response},
+       { 10, "ReadEventLogW",
+          eventlog_dissect_ReadEventLogW_request, eventlog_dissect_ReadEventLogW_response},
+       { 11, "ReportEventW",
+          eventlog_dissect_ReportEventW_request, eventlog_dissect_ReportEventW_response},
+       { 12, "ClearEventLogA",
+          eventlog_dissect_ClearEventLogA_request, eventlog_dissect_ClearEventLogA_response},
+       { 13, "BackupEventLogA",
+          eventlog_dissect_BackupEventLogA_request, eventlog_dissect_BackupEventLogA_response},
+       { 14, "OpenEventLogA",
+          eventlog_dissect_OpenEventLogA_request, eventlog_dissect_OpenEventLogA_response},
+       { 15, "RegisterEventSourceA",
+          eventlog_dissect_RegisterEventSourceA_request, eventlog_dissect_RegisterEventSourceA_response},
+       { 16, "OpenBackupEventLogA",
+          eventlog_dissect_OpenBackupEventLogA_request, eventlog_dissect_OpenBackupEventLogA_response},
+       { 17, "ReadEventLogA",
+          eventlog_dissect_ReadEventLogA_request, eventlog_dissect_ReadEventLogA_response},
+       { 18, "ReportEventA",
+          eventlog_dissect_ReportEventA_request, eventlog_dissect_ReportEventA_response},
+       { 19, "RegisterClusterSvc",
+          eventlog_dissect_RegisterClusterSvc_request, eventlog_dissect_RegisterClusterSvc_response},
+       { 20, "DeregisterClusterSvc",
+          eventlog_dissect_DeregisterClusterSvc_request, eventlog_dissect_DeregisterClusterSvc_response},
+       { 21, "WriteClusterEvents",
+          eventlog_dissect_WriteClusterEvents_request, eventlog_dissect_WriteClusterEvents_response},
+       { 22, "GetLogInformation",
+          eventlog_dissect_GetLogInformation_request, eventlog_dissect_GetLogInformation_response},
+       { 23, "FlushEventLog",
+          eventlog_dissect_FlushEventLog_request, eventlog_dissect_FlushEventLog_response},
+       { 24, "ReportEventAndSourceW",
+          eventlog_dissect_ReportEventAndSourceW_request, eventlog_dissect_ReportEventAndSourceW_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_eventlog(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_eventlog_eventlog_Record_tdb_padding,
+         { "Padding", "eventlog.eventlog_Record_tdb.padding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_size,
+         { "Size", "eventlog.eventlog_Record_tdb.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetNumRecords_handle,
+         { "Handle", "eventlog.eventlog_GetNumRecords.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenBackupEventLogW_backup_logname,
+         { "Backup Logname", "eventlog.eventlog_OpenBackupEventLogW.backup_logname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Data,
+         { "Data", "eventlog.EVENTLOGRECORD.Data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_Signature,
+         { "Signature", "eventlog.EVENTLOGHEADER.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOG_FULL_INFORMATION_full,
+         { "Full", "eventlog.EVENTLOG_FULL_INFORMATION.full", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_num_of_strings,
+         { "Num Of Strings", "eventlog.eventlog_ReportEventAndSourceW.num_of_strings", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenEventLogW_minor_version,
+         { "Minor Version", "eventlog.eventlog_OpenEventLogW.minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_UserSid_,
+         { "Subcontext length", "eventlog.EVENTLOGRECORD.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_DataLength,
+         { "Datalength", "eventlog.EVENTLOGRECORD.DataLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_event_category,
+         { "Event Category", "eventlog.eventlog_Record_tdb.event_category", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_source_name,
+         { "Source Name", "eventlog.eventlog_Record_tdb.source_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetLogInformation_buffer,
+         { "Buffer", "eventlog.eventlog_GetLogInformation.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_event_category,
+         { "Event Category", "eventlog.eventlog_ReportEventW.event_category", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_EndOffset,
+         { "Endoffset", "eventlog.EVENTLOGHEADER.EndOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Length,
+         { "Length", "eventlog.EVENTLOGRECORD.Length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetLogInformation_level,
+         { "Level", "eventlog.eventlog_GetLogInformation.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ClearEventLogW_handle,
+         { "Handle", "eventlog.eventlog_ClearEventLogW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetLogInformation_handle,
+         { "Handle", "eventlog.eventlog_GetLogInformation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_RegisterEventSourceW_reg_module_name,
+         { "Reg Module Name", "eventlog.eventlog_RegisterEventSourceW.reg_module_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_Four,
+         { "Four", "eventlog.EVENTLOGEOF.Four", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenBackupEventLogW_unknown0,
+         { "Unknown0", "eventlog.eventlog_OpenBackupEventLogW.unknown0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_BackupEventLogW_handle,
+         { "Handle", "eventlog.eventlog_BackupEventLogW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_BeginRecord,
+         { "Beginrecord", "eventlog.EVENTLOGEOF.BeginRecord", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_stringoffset,
+         { "Stringoffset", "eventlog.eventlog_Record_tdb.stringoffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetLogInformation_bytes_needed,
+         { "Bytes Needed", "eventlog.eventlog_GetLogInformation.bytes_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_SourceName,
+         { "Sourcename", "eventlog.EVENTLOGRECORD.SourceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_closing_record_number,
+         { "Closing Record Number", "eventlog.eventlog_Record_tdb.closing_record_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_data_offset,
+         { "Data Offset", "eventlog.eventlog_Record_tdb.data_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_record_number,
+         { "Record Number", "eventlog.eventlog_ReportEventW.record_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_event_type,
+         { "Event Type", "eventlog.eventlog_ReportEventW.event_type", FT_UINT1632, BASE_DEC, VALS(eventlog_eventlogEventTypes_vals), 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_strings_len,
+         { "Strings Len", "eventlog.eventlog_Record_tdb.strings_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_data,
+         { "Data", "eventlog.eventlog_ReportEventW.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenEventLogW_servername,
+         { "Servername", "eventlog.eventlog_OpenEventLogW.servername", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_record_number,
+         { "Record Number", "eventlog.eventlog_ReportEventAndSourceW.record_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_HeaderSize,
+         { "Headersize", "eventlog.EVENTLOGHEADER.HeaderSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_UserSid,
+         { "Usersid", "eventlog.EVENTLOGRECORD.UserSid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_real_size,
+         { "Real Size", "eventlog.eventlog_ReadEventLogW.real_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenEventLogW_logname,
+         { "Logname", "eventlog.eventlog_OpenEventLogW.logname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_MinorVersion,
+         { "Minorversion", "eventlog.EVENTLOGHEADER.MinorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_user_sid,
+         { "User Sid", "eventlog.eventlog_ReportEventAndSourceW.user_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_event_id,
+         { "Event Id", "eventlog.eventlog_ReportEventW.event_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_sent_size,
+         { "Sent Size", "eventlog.eventlog_ReadEventLogW.sent_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenEventLogW_major_version,
+         { "Major Version", "eventlog.eventlog_OpenEventLogW.major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOG_EVT_FILE_records,
+         { "Records", "eventlog.EVENTLOG_EVT_FILE.records", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_sid_offset,
+         { "Sid Offset", "eventlog.eventlog_Record_tdb.sid_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_Flags,
+         { "Flags", "eventlog.EVENTLOGHEADER.Flags", FT_UINT32, BASE_DEC, VALS(eventlog_EVENTLOG_HEADER_FLAGS_vals), 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_offset,
+         { "Offset", "eventlog.eventlog_ReadEventLogW.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_data_size,
+         { "Data Size", "eventlog.eventlog_ReportEventW.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_MajorVersion,
+         { "Majorversion", "eventlog.EVENTLOGHEADER.MajorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenUnknown0_unknown1,
+         { "Unknown1", "eventlog.eventlog_OpenUnknown0.unknown1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_timestamp,
+         { "Timestamp", "eventlog.eventlog_ReportEventW.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_reserved_flags,
+         { "Reserved Flags", "eventlog.eventlog_Record_tdb.reserved_flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_EndHeaderSize,
+         { "Endheadersize", "eventlog.EVENTLOGHEADER.EndHeaderSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetNumRecords_number,
+         { "Number", "eventlog.eventlog_GetNumRecords.number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_strings,
+         { "Strings", "eventlog.eventlog_ReportEventW.strings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_event_type,
+         { "Event Type", "eventlog.eventlog_ReportEventAndSourceW.event_type", FT_UINT1632, BASE_DEC, VALS(eventlog_eventlogEventTypes_vals), 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_RecordSizeEnd,
+         { "Recordsizeend", "eventlog.EVENTLOGEOF.RecordSizeEnd", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Length2,
+         { "Length2", "eventlog.EVENTLOGRECORD.Length2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_ReservedFlags,
+         { "Reservedflags", "eventlog.EVENTLOGRECORD.ReservedFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_Three,
+         { "Three", "eventlog.EVENTLOGEOF.Three", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_sourcename,
+         { "Sourcename", "eventlog.eventlog_ReportEventAndSourceW.sourcename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_data,
+         { "Data", "eventlog.eventlog_ReadEventLogW.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_event_id,
+         { "Event Id", "eventlog.eventlog_ReportEventAndSourceW.event_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_DeregisterEventSource_handle,
+         { "Handle", "eventlog.eventlog_DeregisterEventSource.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_computer_name_len,
+         { "Computer Name Len", "eventlog.eventlog_Record_tdb.computer_name_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_opnum,
+         { "Operation", "eventlog.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_data,
+         { "Data", "eventlog.eventlog_Record_tdb.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_status,
+         { "NT Error", "eventlog.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_event_type,
+         { "Event Type", "eventlog.eventlog_Record_tdb.event_type", FT_UINT1632, BASE_DEC, VALS(eventlog_eventlogEventTypes_vals), 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_FlushEventLog_handle,
+         { "Handle", "eventlog.eventlog_FlushEventLog.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_RegisterEventSourceW_module_name,
+         { "Module Name", "eventlog.eventlog_RegisterEventSourceW.module_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Strings,
+         { "Strings", "eventlog.EVENTLOGRECORD.Strings", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_EventType,
+         { "Eventtype", "eventlog.EVENTLOGRECORD.EventType", FT_UINT1632, BASE_DEC, VALS(eventlog_eventlogEventTypes_vals), 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenEventLogW_unknown0,
+         { "Unknown0", "eventlog.eventlog_OpenEventLogW.unknown0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_RecordNumber,
+         { "Recordnumber", "eventlog.EVENTLOGRECORD.RecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_NumStrings,
+         { "Numstrings", "eventlog.EVENTLOGRECORD.NumStrings", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_time_written,
+         { "Time Written", "eventlog.eventlog_ReportEventAndSourceW.time_written", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOG_EVT_FILE_eof,
+         { "Eof", "eventlog.EVENTLOG_EVT_FILE.eof", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_servername,
+         { "Servername", "eventlog.eventlog_ReportEventW.servername", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Computername,
+         { "Computername", "eventlog.EVENTLOGRECORD.Computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_strings,
+         { "Strings", "eventlog.eventlog_Record_tdb.strings", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetOldestRecord_oldest_entry,
+         { "Oldest Entry", "eventlog.eventlog_GetOldestRecord.oldest_entry", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_reserved,
+         { "Reserved", "eventlog.eventlog_Record_tdb.reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenUnknown0_unknown0,
+         { "Unknown0", "eventlog.eventlog_OpenUnknown0.unknown0", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_TimeWritten,
+         { "Timewritten", "eventlog.EVENTLOGRECORD.TimeWritten", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_time_generated,
+         { "Time Generated", "eventlog.eventlog_Record_tdb.time_generated", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_flags,
+         { "Flags", "eventlog.eventlog_ReportEventW.flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ClearEventLogW_backupfile,
+         { "Backupfile", "eventlog.eventlog_ClearEventLogW.backupfile", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_handle,
+         { "Handle", "eventlog.eventlog_ReadEventLogW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_CurrentRecordNumber,
+         { "Currentrecordnumber", "eventlog.EVENTLOGHEADER.CurrentRecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_RegisterEventSourceW_unknown0,
+         { "Unknown0", "eventlog.eventlog_RegisterEventSourceW.unknown0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_CloseEventLog_handle,
+         { "Handle", "eventlog.eventlog_CloseEventLog.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenBackupEventLogW_handle,
+         { "Handle", "eventlog.eventlog_OpenBackupEventLogW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_strings,
+         { "Strings", "eventlog.eventlog_ReportEventAndSourceW.strings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_record_number,
+         { "Record Number", "eventlog.eventlog_Record_tdb.record_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_computer_name,
+         { "Computer Name", "eventlog.eventlog_Record_tdb.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlogReadFlags_EVENTLOG_SEEK_READ,
+         { "Eventlog Seek Read", "eventlog.eventlogReadFlags.EVENTLOG_SEEK_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_SEEK_READ_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_eventlog_eventlog_RegisterEventSourceW_major_version,
+         { "Major Version", "eventlog.eventlog_RegisterEventSourceW.major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_num_of_strings,
+         { "Num Of Strings", "eventlog.eventlog_Record_tdb.num_of_strings", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_timestamp,
+         { "Timestamp", "eventlog.eventlog_ReportEventAndSourceW.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_EventID,
+         { "Eventid", "eventlog.EVENTLOGRECORD.EventID", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenEventLogW_handle,
+         { "Handle", "eventlog.eventlog_OpenEventLogW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_StartOffset,
+         { "Startoffset", "eventlog.EVENTLOGHEADER.StartOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_RecordSizeBeginning,
+         { "Recordsizebeginning", "eventlog.EVENTLOGEOF.RecordSizeBeginning", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_RegisterEventSourceW_minor_version,
+         { "Minor Version", "eventlog.eventlog_RegisterEventSourceW.minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_Two,
+         { "Two", "eventlog.EVENTLOGEOF.Two", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_CurrentRecordNumber,
+         { "Currentrecordnumber", "eventlog.EVENTLOGEOF.CurrentRecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_BackupEventLogW_backup_filename,
+         { "Backup Filename", "eventlog.eventlog_BackupEventLogW.backup_filename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_source_name_len,
+         { "Source Name Len", "eventlog.eventlog_Record_tdb.source_name_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_Retention,
+         { "Retention", "eventlog.EVENTLOGHEADER.Retention", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ,
+         { "Eventlog Sequential Read", "eventlog.eventlogReadFlags.EVENTLOG_SEQUENTIAL_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_SEQUENTIAL_READ_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_event_category,
+         { "Event Category", "eventlog.eventlog_ReportEventAndSourceW.event_category", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_TimeGenerated,
+         { "Timegenerated", "eventlog.EVENTLOGRECORD.TimeGenerated", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_handle,
+         { "Handle", "eventlog.eventlog_ReportEventW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_EndRecord,
+         { "Endrecord", "eventlog.EVENTLOGEOF.EndRecord", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_StringOffset,
+         { "Stringoffset", "eventlog.EVENTLOGRECORD.StringOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_ClosingRecordNumber,
+         { "Closingrecordnumber", "eventlog.EVENTLOGRECORD.ClosingRecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Reserved,
+         { "Reserved", "eventlog.EVENTLOGRECORD.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_user_sid,
+         { "User Sid", "eventlog.eventlog_ReportEventW.user_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_DataOffset,
+         { "Dataoffset", "eventlog.EVENTLOGRECORD.DataOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_sid_padding,
+         { "Sid Padding", "eventlog.eventlog_Record_tdb.sid_padding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_time_written,
+         { "Time Written", "eventlog.eventlog_Record_tdb.time_written", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_RegisterEventSourceW_log_handle,
+         { "Log Handle", "eventlog.eventlog_RegisterEventSourceW.log_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenBackupEventLogW_major_version,
+         { "Major Version", "eventlog.eventlog_OpenBackupEventLogW.major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_OldestRecordNumber,
+         { "Oldestrecordnumber", "eventlog.EVENTLOGEOF.OldestRecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_sid,
+         { "Sid", "eventlog.eventlog_Record_tdb.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetOldestRecord_handle,
+         { "Handle", "eventlog.eventlog_GetOldestRecord.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_EventCategory,
+         { "Eventcategory", "eventlog.EVENTLOGRECORD.EventCategory", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_UserSidOffset,
+         { "Usersidoffset", "eventlog.EVENTLOGRECORD.UserSidOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_servername,
+         { "Servername", "eventlog.eventlog_ReportEventAndSourceW.servername", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_time_written,
+         { "Time Written", "eventlog.eventlog_ReportEventW.time_written", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlogReadFlags_EVENTLOG_BACKWARDS_READ,
+         { "Eventlog Backwards Read", "eventlog.eventlogReadFlags.EVENTLOG_BACKWARDS_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_BACKWARDS_READ_tfs), ( 0x0008 ), NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_Pad,
+         { "Pad", "eventlog.EVENTLOGRECORD.Pad", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_MaxSize,
+         { "Maxsize", "eventlog.EVENTLOGHEADER.MaxSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_GetLogInformation_buf_size,
+         { "Buf Size", "eventlog.eventlog_GetLogInformation.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGEOF_One,
+         { "One", "eventlog.EVENTLOGEOF.One", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_handle,
+         { "Handle", "eventlog.eventlog_ReportEventAndSourceW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_flags,
+         { "Flags", "eventlog.eventlog_ReportEventAndSourceW.flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_sid_length,
+         { "Sid Length", "eventlog.eventlog_Record_tdb.sid_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_data_length,
+         { "Data Length", "eventlog.eventlog_Record_tdb.data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlogReadFlags_EVENTLOG_FORWARDS_READ,
+         { "Eventlog Forwards Read", "eventlog.eventlogReadFlags.EVENTLOG_FORWARDS_READ", FT_BOOLEAN, 32, TFS(&eventlogReadFlags_EVENTLOG_FORWARDS_READ_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventW_num_of_strings,
+         { "Num Of Strings", "eventlog.eventlog_ReportEventW.num_of_strings", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_OpenBackupEventLogW_minor_version,
+         { "Minor Version", "eventlog.eventlog_OpenBackupEventLogW.minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_number_of_bytes,
+         { "Number Of Bytes", "eventlog.eventlog_ReadEventLogW.number_of_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGRECORD_UserSidLength,
+         { "Usersidlength", "eventlog.EVENTLOGRECORD.UserSidLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_data,
+         { "Data", "eventlog.eventlog_ReportEventAndSourceW.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOG_EVT_FILE_hdr,
+         { "Hdr", "eventlog.EVENTLOG_EVT_FILE.hdr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_Record_tdb_event_id,
+         { "Event Id", "eventlog.eventlog_Record_tdb.event_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReportEventAndSourceW_data_size,
+         { "Data Size", "eventlog.eventlog_ReportEventAndSourceW.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_EVENTLOGHEADER_OldestRecordNumber,
+         { "Oldestrecordnumber", "eventlog.EVENTLOGHEADER.OldestRecordNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog_eventlog_ReadEventLogW_flags,
+         { "Flags", "eventlog.eventlog_ReadEventLogW.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_eventlog,
+               &ett_eventlog_eventlogReadFlags,
+               &ett_eventlog_eventlog_OpenUnknown0,
+               &ett_eventlog_eventlog_Record_tdb,
+               &ett_eventlog_EVENTLOGHEADER,
+               &ett_eventlog_EVENTLOGRECORD,
+               &ett_eventlog_EVENTLOGEOF,
+               &ett_eventlog_EVENTLOG_EVT_FILE,
+               &ett_eventlog_EVENTLOG_FULL_INFORMATION,
+       };
+
+       proto_dcerpc_eventlog = proto_register_protocol("Event Logger", "EVENTLOG", "eventlog");
+       proto_register_field_array(proto_dcerpc_eventlog, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_eventlog(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_eventlog, ett_dcerpc_eventlog,
+               &uuid_dcerpc_eventlog, ver_dcerpc_eventlog,
+               eventlog_dissectors, hf_eventlog_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.h b/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog.h
new file mode 100644 (file)
index 0000000..833404c
--- /dev/null
@@ -0,0 +1,44 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_EVENTLOG_H
+#define __PACKET_DCERPC_EVENTLOG_H
+
+int eventlog_dissect_bitmap_eventlogReadFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define EVENTLOG_SUCCESS (0x0000)
+#define EVENTLOG_ERROR_TYPE (0x0001)
+#define EVENTLOG_WARNING_TYPE (0x0002)
+#define EVENTLOG_INFORMATION_TYPE (0x0004)
+#define EVENTLOG_AUDIT_SUCCESS (0x0008)
+#define EVENTLOG_AUDIT_FAILURE (0x0010)
+extern const value_string eventlog_eventlogEventTypes_vals[];
+int eventlog_dissect_enum_eventlogEventTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int eventlog_dissect_struct_OpenUnknown0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog_dissect_struct_Record_tdb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define ELF_LOGFILE_HEADER_DIRTY (0x0001)
+#define ELF_LOGFILE_HEADER_WRAP (0x0002)
+#define ELF_LOGFILE_LOGFULL_WRITTEN (0x0004)
+#define ELF_LOGFILE_ARCHIVE_SET (0x0008)
+extern const value_string eventlog_EVENTLOG_HEADER_FLAGS_vals[];
+int eventlog_dissect_enum_EVENTLOG_HEADER_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int eventlog_dissect_struct_EVENTLOGHEADER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog_dissect_struct_EVENTLOGRECORD(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog_dissect_struct_EVENTLOGEOF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog_dissect_struct_EVENTLOG_EVT_FILE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog_dissect_struct_EVENTLOG_FULL_INFORMATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_EVENTLOG_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.c b/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.c
new file mode 100644 (file)
index 0000000..be08c53
--- /dev/null
@@ -0,0 +1,5432 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog6.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog6.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-eventlog6.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_eventlog6 = -1;
+static gint ett_eventlog6_eventlog6_RpcInfo = -1;
+static gint ett_eventlog6_eventlog6_boolean8Array = -1;
+static gint ett_eventlog6_eventlog6_UInt32Array = -1;
+static gint ett_eventlog6_eventlog6_UInt64Array = -1;
+static gint ett_eventlog6_eventlog6_StringArray = -1;
+static gint ett_eventlog6_eventlog6_GuidArray = -1;
+static gint ett_eventlog6_eventlog6_EvtRpcVariantUnion = -1;
+static gint ett_eventlog6_eventlog6_EvtRpcVariant = -1;
+static gint ett_eventlog6_eventlog6_EvtRpcVariantList = -1;
+static gint ett_eventlog6_eventlog6_EvtRpcQueryChannelInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_pubMetadataProps = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_control = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint32Val = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_name = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfo = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQuerySeek_bookmarkXml = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_values = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numRequestedRecords = -1;
+static gint hf_eventlog6_eventlog6_GuidArray_ptr = -1;
+static gint hf_eventlog6_werror = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataSizes = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferLength = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_error = -1;
+static gint hf_eventlog6_eventlog6_StringArray_count = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQuerySeek_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidVal = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_maxSizeString = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariant_var = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_locale = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_nullVal = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQuerySeek_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfo = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_messageId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_bookmarkXml = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_channel = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_logFilePath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetChannelList_channelPaths = -1;
+static gint hf_eventlog6_opnum = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadataProps = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_sizeEventId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numActualRecords = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcExportLog_channelPath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidArray = -1;
+static gint hf_eventlog6_eventlog6_RpcInfo_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_propertyId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBufferSize = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcClearLog_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcAssertConfig_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_actualSizeString = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_path = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_pubCfgObj = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQuerySeek_pos = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcClearLog_control = -1;
+static gint hf_eventlog6_eventlog6_RpcInfo_sub_err = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_flags = -1;
+static gint hf_eventlog6_eventlog6_StringArray_ptr = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_timeOutEnd = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcExportLog_query = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numReturned = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_query = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetaDataEnum = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQuerySeek_logQuery = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_logHandle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_channelPath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfoSize = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetadataInstances = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_control = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_status = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantList_props = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint64Array = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetChannelList_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_logName = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariant_type = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataSizes = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_flags = -1;
+static gint hf_eventlog6_eventlog6_UInt32Array_count = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcExportLog_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_numRequestedRecords = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionWaitAsync_handle = -1;
+static gint hf_eventlog6_eventlog6_RpcInfo_sub_err_param = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcAssertConfig_path = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_opControl = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_logFilePath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_publisherIds = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_channelName = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_messageId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Val = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_locale = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numActualRecords = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_string = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_numPublisherIds = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantList_count = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_sizeEventId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_values = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_reservedForFilter = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRetractConfig_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariant_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcClearLog_backupPath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcClose_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_locale = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQuerySeek_timeOut = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint64Val = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherList_publisherIds = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_neededSizeString = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataIndices = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_query = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_channelPath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringArray = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_displayName = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numRequested = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterControllableOperation_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_timeOut = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcExportLog_control = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherList_flags = -1;
+static gint hf_eventlog6_eventlog6_UInt64Array_ptr = -1;
+static gint hf_eventlog6_eventlog6_boolean8Array_count = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadata = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_props = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcExportLog_error = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_publisherId = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_flags = -1;
+static gint hf_eventlog6_eventlog6_UInt32Array_ptr = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint32Array = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_props = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_eventMetaDataEnum = -1;
+static gint hf_eventlog6_eventlog6_UInt64Array_count = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferSize = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRender_maxSizeString = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_actualSizeString = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numRequestedRecords = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcExportLog_backupPath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcCancel_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_handle = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetChannelList_numChannelPaths = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_channelPath = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringVal = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Array = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_numActualRecords = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRetractConfig_path = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_pubMetadata = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_neededSizeString = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer = -1;
+static gint hf_eventlog6_eventlog6_boolean8Array_ptr = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcClearLog_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBufferSize = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataIndices = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcGetPublisherList_numPublisherIds = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_flags = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcClearLog_channelPath = -1;
+static gint hf_eventlog6_eventlog6_GuidArray_count = -1;
+static gint hf_eventlog6_eventlog6_EvtRpcQueryNext_logQuery = -1;
+
+static gint proto_dcerpc_eventlog6 = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_eventlog6 = {
+       0x6beaff7-, 0xe19-, 0xfbb-,
+       { 0xf8, 0xf-, 0x89, 0xe2, 0x01, 0x83, 0x37, 0xc }
+};
+static guint16 ver_dcerpc_eventlog6 = 1;
+
+static int eventlog6_dissect_element_RpcInfo_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_RpcInfo_sub_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_RpcInfo_sub_err_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_boolean8Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_boolean8Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_boolean8Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_boolean8Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt32Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt32Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt32Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt32Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt64Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt64Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt64Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_UInt64Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_StringArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_StringArray_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_StringArray_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_StringArray_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_StringArray_ptr___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_GuidArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_GuidArray_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_GuidArray_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_GuidArray_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string eventlog6_eventlog6_EvtRpcVariantType_vals[] = {
+       { EvtRpcVarTypeNull, "EvtRpcVarTypeNull" },
+       { EvtRpcVarTypeboolean8, "EvtRpcVarTypeboolean8" },
+       { EvtRpcVarTypeUInt32, "EvtRpcVarTypeUInt32" },
+       { EvtRpcVarTypeUInt64, "EvtRpcVarTypeUInt64" },
+       { EvtRpcVarTypeString, "EvtRpcVarTypeString" },
+       { EvtRpcVarTypeGuid, "EvtRpcVarTypeGuid" },
+       { EvtRpcVarTypeboolean8Array, "EvtRpcVarTypeboolean8Array" },
+       { EvtRpcVarTypeUInt32Array, "EvtRpcVarTypeUInt32Array" },
+       { EvtRpcVarTypeUInt64Array, "EvtRpcVarTypeUInt64Array" },
+       { EvtRpcVarTypeStringArray, "EvtRpcVarTypeStringArray" },
+       { EvtRpcVarTypeGuidArray, "EvtRpcVarTypeGuidArray" },
+{ 0, NULL }
+};
+const value_string eventlog6_eventlog6_EvtRpcAssertConfigFlags_vals[] = {
+       { EvtRpcChannelPath, "EvtRpcChannelPath" },
+       { EvtRpcPublisherName, "EvtRpcPublisherName" },
+{ 0, NULL }
+};
+static int eventlog6_dissect_element_EvtRpcVariantUnion_nullVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_boolean8Val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_uint32Val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_uint64Val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_stringVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_stringVal_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_guidVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_guidVal_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_boolean8Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_uint32Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_uint64Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_stringArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantUnion_guidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariant_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int eventlog6_dissect_element_EvtRpcVariant_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariant_var(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int eventlog6_dissect_element_EvtRpcVariant_var_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int eventlog6_dissect_element_EvtRpcVariantList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantList_props(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantList_props_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcVariantList_props__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryChannelInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryChannelInfo_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryChannelInfo_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_bookmarkXml(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_bookmarkXml_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numActualRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numActualRecords_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_timeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numActualRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numActualRecords_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_opControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_opControl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfoSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRegisterLogQuery_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_backupPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_backupPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClearLog_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_backupPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_backupPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcExportLog_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_logFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_logFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcLocalizeExportLog_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_sizeEventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_eventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_messageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_maxSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_actualSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_actualSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRender_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_sizeEventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_messageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_maxSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_actualSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_actualSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcMessageRenderDefault_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_logQuery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_logQuery_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_timeOutEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_numActualRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_numActualRecords_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_logQuery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_logQuery_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_pos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_bookmarkXml(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_bookmarkXml_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_timeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcQuerySeek_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClose_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClose_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcClose_handle__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcCancel_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcCancel_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcAssertConfig_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcAssertConfig_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcAssertConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRetractConfig_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRetractConfig_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcRetractConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_channel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_channel_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcOpenLogHandle_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_logHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_logHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_numChannelPaths(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_numChannelPaths_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelConfig_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelConfig_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelConfig_props(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetChannelConfig_props_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_props(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_props_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcPutChannelConfig_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_numPublisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_numPublisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_channelName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_channelName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_numPublisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_numPublisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_publisherId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_publisherId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_logFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_logFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadataProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadataProps_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_propertyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_pubMetadataProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_pubMetadataProps_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_pubMetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_pubMetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_reservedForFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_reservedForFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_eventMetaDataEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_eventMetaDataEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetaDataEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetaDataEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numRequested(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_logName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_logName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        uint32 error; */
+/* IDL:        uint32 sub_err; */
+/* IDL:        uint32 sub_err_param; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_RpcInfo_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_RpcInfo_error, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_RpcInfo_sub_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_RpcInfo_sub_err, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_RpcInfo_sub_err_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_RpcInfo_sub_err_param, 0);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_RpcInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_RpcInfo);
+       }
+       
+       offset = eventlog6_dissect_element_RpcInfo_error(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_RpcInfo_sub_err(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_RpcInfo_sub_err_param(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,MAX_RPC_BOOLEAN8_ARRAY_COUNT)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] uint8 *ptr; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_boolean8Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_boolean8Array_count, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_boolean8Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_boolean8Array_ptr_, NDR_POINTER_UNIQUE, "Pointer to Ptr (uint8)",hf_eventlog6_eventlog6_boolean8Array_ptr);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_boolean8Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_boolean8Array_ptr__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_boolean8Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_boolean8Array_ptr, 0);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_boolean8Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_boolean8Array);
+       }
+       
+       offset = eventlog6_dissect_element_boolean8Array_count(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_boolean8Array_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,MAX_RPC_UINT32_ARRAY_COUNT)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] uint32 *ptr; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_UInt32Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_UInt32Array_count, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_UInt32Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_UInt32Array_ptr_, NDR_POINTER_UNIQUE, "Pointer to Ptr (uint32)",hf_eventlog6_eventlog6_UInt32Array_ptr);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_UInt32Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_UInt32Array_ptr__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_UInt32Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_UInt32Array_ptr, 0);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_UInt32Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_UInt32Array);
+       }
+       
+       offset = eventlog6_dissect_element_UInt32Array_count(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_UInt32Array_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,MAX_RPC_UINT64_ARRAY_COUNT)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] hyper *ptr; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_UInt64Array_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_UInt64Array_count, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_UInt64Array_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_UInt64Array_ptr_, NDR_POINTER_UNIQUE, "Pointer to Ptr (hyper)",hf_eventlog6_eventlog6_UInt64Array_ptr);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_UInt64Array_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_UInt64Array_ptr__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_UInt64Array_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_UInt64Array_ptr, NULL);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_UInt64Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_UInt64Array);
+       }
+       
+       offset = eventlog6_dissect_element_UInt64Array_count(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_UInt64Array_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,MAX_RPC_STRING_ARRAY_COUNT)] uint32 count; */
+/* IDL:        [unique(1)] [charset(UTF16)] [size_is(count)] uint16 **ptr; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_StringArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_StringArray_count, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_StringArray_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_StringArray_ptr_, NDR_POINTER_UNIQUE, "Pointer to Ptr (uint16)",hf_eventlog6_eventlog6_StringArray_ptr);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_StringArray_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_StringArray_ptr__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_StringArray_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_StringArray_ptr___, NDR_POINTER_UNIQUE, "Pointer to Ptr (uint16)",hf_eventlog6_eventlog6_StringArray_ptr);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_StringArray_ptr___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_StringArray_ptr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_StringArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_StringArray);
+       }
+       
+       offset = eventlog6_dissect_element_StringArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_StringArray_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,MAX_RPC_GUID_ARRAY_COUNT)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] GUID *ptr; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_GuidArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_GuidArray_count, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_GuidArray_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_GuidArray_ptr_, NDR_POINTER_UNIQUE, "Pointer to Ptr (GUID)",hf_eventlog6_eventlog6_GuidArray_ptr);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_GuidArray_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_GuidArray_ptr__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_GuidArray_ptr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_GuidArray_ptr, NULL);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_GuidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_GuidArray);
+       }
+       
+       offset = eventlog6_dissect_element_GuidArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_GuidArray_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        EvtRpcVarTypeNull=0, */
+/* IDL:        EvtRpcVarTypeboolean8=1, */
+/* IDL:        EvtRpcVarTypeUInt32=2, */
+/* IDL:        EvtRpcVarTypeUInt64=3, */
+/* IDL:        EvtRpcVarTypeString=4, */
+/* IDL:        EvtRpcVarTypeGuid=5, */
+/* IDL:        EvtRpcVarTypeboolean8Array=6, */
+/* IDL:        EvtRpcVarTypeUInt32Array=7, */
+/* IDL:        EvtRpcVarTypeUInt64Array=8, */
+/* IDL:        EvtRpcVarTypeStringArray=9, */
+/* IDL:        EvtRpcVarTypeGuidArray=10, */
+/* IDL: } */
+
+int
+eventlog6_dissect_enum_EvtRpcVariantType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        EvtRpcChannelPath=0, */
+/* IDL:        EvtRpcPublisherName=1, */
+/* IDL: } */
+
+int
+eventlog6_dissect_enum_EvtRpcAssertConfigFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(eventlog6_EvtRpcVariantType)] union { */
+/* IDL: [case(EvtRpcVarTypeNull)] [case(EvtRpcVarTypeNull)] int32 nullVal; */
+/* IDL: [case(EvtRpcVarTypeboolean8)] [case(EvtRpcVarTypeboolean8)] uint8 boolean8Val; */
+/* IDL: [case(EvtRpcVarTypeUInt32)] [case(EvtRpcVarTypeUInt32)] uint32 uint32Val; */
+/* IDL: [case(EvtRpcVarTypeUInt64)] [case(EvtRpcVarTypeUInt64)] hyper uint64Val; */
+/* IDL: [case(EvtRpcVarTypeString)] [unique(1)] [charset(UTF16)] [case(EvtRpcVarTypeString)] uint16 *stringVal; */
+/* IDL: [case(EvtRpcVarTypeGuid)] [unique(1)] [case(EvtRpcVarTypeGuid)] GUID *guidVal; */
+/* IDL: [case(EvtRpcVarTypeboolean8Array)] [case(EvtRpcVarTypeboolean8Array)] eventlog6_boolean8Array boolean8Array; */
+/* IDL: [case(EvtRpcVarTypeUInt32Array)] [case(EvtRpcVarTypeUInt32Array)] eventlog6_UInt32Array uint32Array; */
+/* IDL: [case(EvtRpcVarTypeUInt64Array)] [case(EvtRpcVarTypeUInt64Array)] eventlog6_UInt64Array uint64Array; */
+/* IDL: [case(EvtRpcVarTypeStringArray)] [case(EvtRpcVarTypeStringArray)] eventlog6_StringArray stringArray; */
+/* IDL: [case(EvtRpcVarTypeGuidArray)] [case(EvtRpcVarTypeGuidArray)] eventlog6_GuidArray guidArray; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_nullVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariantUnion_nullVal, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_boolean8Val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Val, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_uint32Val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint32Val, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_uint64Val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint64Val, NULL);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_stringVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcVariantUnion_stringVal_, NDR_POINTER_UNIQUE, "Pointer to Stringval (uint16)",hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringVal);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_stringVal_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringVal, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_guidVal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcVariantUnion_guidVal_, NDR_POINTER_UNIQUE, "Pointer to Guidval (GUID)",hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidVal);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_guidVal_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidVal, NULL);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_boolean8Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_boolean8Array(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Array,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_uint32Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_UInt32Array(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint32Array,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_uint64Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_UInt64Array(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint64Array,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_stringArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringArray,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantUnion_guidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_GuidArray(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidArray,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcVariantUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "eventlog6_EvtRpcVariantUnion");
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_EvtRpcVariantUnion);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case EvtRpcVarTypeNull:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_nullVal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeboolean8:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_boolean8Val(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeUInt32:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_uint32Val(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeUInt64:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_uint64Val(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeString:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_stringVal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeGuid:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_guidVal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeboolean8Array:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_boolean8Array(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeUInt32Array:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_uint32Array(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeUInt64Array:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_uint64Array(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeStringArray:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_stringArray(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case EvtRpcVarTypeGuidArray:
+                       offset = eventlog6_dissect_element_EvtRpcVariantUnion_guidArray(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        eventlog6_EvtRpcVariantType type; */
+/* IDL:        uint32 flags; */
+/* IDL:        [ref] [in] [switch_is(type)] eventlog6_EvtRpcVariantUnion *var; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_EvtRpcVariant_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = eventlog6_dissect_enum_EvtRpcVariantType(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariant_type, type);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariant_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariant_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariant_var(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcVariant_var_, NDR_POINTER_REF, "Pointer to Var (eventlog6_EvtRpcVariantUnion)",hf_eventlog6_eventlog6_EvtRpcVariant_var);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariant_var_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = eventlog6_dissect_EvtRpcVariantUnion(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariant_var, *type);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_EvtRpcVariant(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_EvtRpcVariant);
+       }
+       
+       offset = eventlog6_dissect_element_EvtRpcVariant_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = eventlog6_dissect_element_EvtRpcVariant_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcVariant_var(tvb, offset, pinfo, tree, drep, &type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,MAX_RPC_VARIANT_LIST_COUNT)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] eventlog6_EvtRpcVariant *props; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_EvtRpcVariantList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcVariantList_count, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantList_props(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcVariantList_props_, NDR_POINTER_UNIQUE, "Pointer to Props (eventlog6_EvtRpcVariant)",hf_eventlog6_eventlog6_EvtRpcVariantList_props);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantList_props_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcVariantList_props__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcVariantList_props__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariant(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcVariantList_props,0);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_EvtRpcVariantList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_EvtRpcVariantList);
+       }
+       
+       offset = eventlog6_dissect_element_EvtRpcVariantList_count(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcVariantList_props(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        uint32 status; */
+/* IDL: } */
+
+static int
+eventlog6_dissect_element_EvtRpcQueryChannelInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryChannelInfo_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_name);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryChannelInfo_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryChannelInfo_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_status, 0);
+
+       return offset;
+}
+
+int
+eventlog6_dissect_struct_EvtRpcQueryChannelInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_eventlog6_eventlog6_EvtRpcQueryChannelInfo);
+       }
+       
+       offset = eventlog6_dissect_element_EvtRpcQueryChannelInfo_name(tvb, offset, pinfo, tree, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcQueryChannelInfo_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_channelPath_, NDR_POINTER_UNIQUE, "Pointer to Channelpath (uint16)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_channelPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_channelPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_query_, NDR_POINTER_REF, "Pointer to Query (uint16)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_query);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_query, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_bookmarkXml(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_bookmarkXml_, NDR_POINTER_UNIQUE, "Pointer to Bookmarkxml (uint16)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_bookmarkXml);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_bookmarkXml_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_bookmarkXml, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_control_, NDR_POINTER_REF, "Pointer to Control (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_control);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_control, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize_, NDR_POINTER_REF, "Pointer to Querychannelinfosize (uint32)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo_, NDR_POINTER_REF, "Pointer to Querychannelinfo (eventlog6_EvtRpcQueryChannelInfo)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfo);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo__, NDR_POINTER_UNIQUE, "Pointer to Querychannelinfo (eventlog6_EvtRpcQueryChannelInfo)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfo);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcQueryChannelInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfo,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRegisterRemoteSubscription( */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *channelPath, */
+/* IDL: [ref] [in] [range(1,MAX_RPC_QUERY_LENGTH)] [charset(UTF16)] uint16 *query, */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_BOOKMARK_LENGTH)] [charset(UTF16)] uint16 *bookmarkXml, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] policy_handle *control, */
+/* IDL: [out] [ref] uint32 *queryChannelInfoSize, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_QUERY_CHANNEL_SIZE)] [size_is(,*queryChannelInfoSize)] eventlog6_EvtRpcQueryChannelInfo **queryChannelInfo, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRegisterRemoteSubscription_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRegisterRemoteSubscription";
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_queryChannelInfo(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRegisterRemoteSubscription_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRegisterRemoteSubscription";
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_channelPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_bookmarkXml(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRegisterRemoteSubscription_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numRequestedRecords, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numActualRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numActualRecords_, NDR_POINTER_REF, "Pointer to Numactualrecords (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numActualRecords);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numActualRecords_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numActualRecords, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices_, NDR_POINTER_REF, "Pointer to Eventdataindices (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices__, NDR_POINTER_UNIQUE, "Pointer to Eventdataindices (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes_, NDR_POINTER_REF, "Pointer to Eventdatasizes (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes__, NDR_POINTER_UNIQUE, "Pointer to Eventdatasizes (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize_, NDR_POINTER_REF, "Pointer to Resultbuffersize (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer_, NDR_POINTER_REF, "Pointer to Resultbuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer__, NDR_POINTER_UNIQUE, "Pointer to Resultbuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRemoteSubscriptionNextAsync( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 numRequestedRecords, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint32 *numActualRecords, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RECORD_COUNT)] [size_is(,*numActualRecords)] uint32 **eventDataIndices, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RECORD_COUNT)] [size_is(,*numActualRecords)] uint32 **eventDataSizes, */
+/* IDL: [out] [ref] uint32 *resultBufferSize, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_BATCH_SIZE)] [size_is(,*resultBufferSize)] uint8 **resultBuffer */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRemoteSubscriptionNextAsync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRemoteSubscriptionNextAsync";
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numActualRecords(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_resultBuffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRemoteSubscriptionNextAsync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRemoteSubscriptionNextAsync";
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_numRequestedRecords(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNextAsync_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numRequestedRecords, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_timeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_timeOut, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numActualRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numActualRecords_, NDR_POINTER_REF, "Pointer to Numactualrecords (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numActualRecords);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numActualRecords_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numActualRecords, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices_, NDR_POINTER_REF, "Pointer to Eventdataindices (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataIndices);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices__, NDR_POINTER_UNIQUE, "Pointer to Eventdataindices (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataIndices);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataIndices, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes_, NDR_POINTER_REF, "Pointer to Eventdatasizes (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataSizes);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes__, NDR_POINTER_UNIQUE, "Pointer to Eventdatasizes (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataSizes);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataSizes, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSize_, NDR_POINTER_REF, "Pointer to Resultbuffersize (uint32)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBufferSize);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBufferSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer_, NDR_POINTER_REF, "Pointer to Resultbuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer__, NDR_POINTER_UNIQUE, "Pointer to Resultbuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRemoteSubscriptionNext( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 numRequestedRecords, */
+/* IDL: [in] uint32 timeOut, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint32 *numActualRecords, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RECORD_COUNT)] [size_is(,*numActualRecords)] uint32 **eventDataIndices, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RECORD_COUNT)] [size_is(,*numActualRecords)] uint32 **eventDataSizes, */
+/* IDL: [out] [ref] uint32 *resultBufferSize, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_BATCH_SIZE)] [size_is(,*resultBufferSize)] uint8 **resultBuffer */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRemoteSubscriptionNext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRemoteSubscriptionNext";
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numActualRecords(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataIndices(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_eventDataSizes(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBufferSize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_resultBuffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRemoteSubscriptionNext_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRemoteSubscriptionNext";
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_numRequestedRecords(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_timeOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionNext_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionWaitAsync_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionWaitAsync_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRemoteSubscriptionWaitAsync( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRemoteSubscriptionWaitAsync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRemoteSubscriptionWaitAsync";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRemoteSubscriptionWaitAsync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRemoteSubscriptionWaitAsync";
+       offset = eventlog6_dissect_element_EvtRpcRemoteSubscriptionWaitAsync_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRegisterControllableOperation_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterControllableOperation_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRegisterControllableOperation( */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRegisterControllableOperation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRegisterControllableOperation";
+       offset = eventlog6_dissect_element_EvtRpcRegisterControllableOperation_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRegisterControllableOperation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRegisterControllableOperation";
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_path);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_query_, NDR_POINTER_REF, "Pointer to Query (uint16)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_query);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_query, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_opControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_opControl_, NDR_POINTER_REF, "Pointer to Opcontrol (policy_handle)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_opControl);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_opControl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_opControl, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfoSize_, NDR_POINTER_REF, "Pointer to Querychannelinfosize (uint32)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfoSize);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfoSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfoSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo_, NDR_POINTER_REF, "Pointer to Querychannelinfo (eventlog6_EvtRpcQueryChannelInfo)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfo);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo__, NDR_POINTER_UNIQUE, "Pointer to Querychannelinfo (eventlog6_EvtRpcQueryChannelInfo)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfo);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcQueryChannelInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfo,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRegisterLogQuery_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRegisterLogQuery_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRegisterLogQuery( */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_CHANNEL_PATH_LENGTH)] [charset(UTF16)] uint16 *path, */
+/* IDL: [ref] [in] [range(1,MAX_RPC_QUERY_LENGTH)] [charset(UTF16)] uint16 *query, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] policy_handle *opControl, */
+/* IDL: [out] [ref] uint32 *queryChannelInfoSize, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_QUERY_CHANNEL_SIZE)] [size_is(,*queryChannelInfoSize)] eventlog6_EvtRpcQueryChannelInfo **queryChannelInfo, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRegisterLogQuery_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRegisterLogQuery";
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_opControl(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfoSize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_queryChannelInfo(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRegisterLogQuery_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRegisterLogQuery";
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRegisterLogQuery_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcClearLog_control_, NDR_POINTER_REF, "Pointer to Control (policy_handle)",hf_eventlog6_eventlog6_EvtRpcClearLog_control);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcClearLog_control, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcClearLog_channelPath_, NDR_POINTER_REF, "Pointer to Channelpath (uint16)",hf_eventlog6_eventlog6_EvtRpcClearLog_channelPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcClearLog_channelPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_backupPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcClearLog_backupPath_, NDR_POINTER_UNIQUE, "Pointer to Backuppath (uint16)",hf_eventlog6_eventlog6_EvtRpcClearLog_backupPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_backupPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcClearLog_backupPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcClearLog_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcClearLog_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcClearLog_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClearLog_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcClearLog_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcClearLog( */
+/* IDL: [in] [ref] policy_handle *control, */
+/* IDL: [ref] [in] [range(0,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *channelPath, */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_FILE_PATH_LENGTH)] [charset(UTF16)] uint16 *backupPath, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcClearLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcClearLog";
+       offset = eventlog6_dissect_element_EvtRpcClearLog_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcClearLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcClearLog";
+       offset = eventlog6_dissect_element_EvtRpcClearLog_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcClearLog_channelPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcClearLog_backupPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcClearLog_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcExportLog_control_, NDR_POINTER_REF, "Pointer to Control (policy_handle)",hf_eventlog6_eventlog6_EvtRpcExportLog_control);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcExportLog_control, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcExportLog_channelPath_, NDR_POINTER_UNIQUE, "Pointer to Channelpath (uint16)",hf_eventlog6_eventlog6_EvtRpcExportLog_channelPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcExportLog_channelPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcExportLog_query_, NDR_POINTER_REF, "Pointer to Query (uint16)",hf_eventlog6_eventlog6_EvtRpcExportLog_query);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcExportLog_query, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_backupPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcExportLog_backupPath_, NDR_POINTER_REF, "Pointer to Backuppath (uint16)",hf_eventlog6_eventlog6_EvtRpcExportLog_backupPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_backupPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcExportLog_backupPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcExportLog_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcExportLog_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcExportLog_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcExportLog_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcExportLog_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcExportLog( */
+/* IDL: [in] [ref] policy_handle *control, */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *channelPath, */
+/* IDL: [ref] [in] [range(1,MAX_RPC_QUERY_LENGTH)] [charset(UTF16)] uint16 *query, */
+/* IDL: [ref] [in] [range(1,MAX_RPC_FILE_PATH_LENGTH)] [charset(UTF16)] uint16 *backupPath, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcExportLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcExportLog";
+       offset = eventlog6_dissect_element_EvtRpcExportLog_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcExportLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcExportLog";
+       offset = eventlog6_dissect_element_EvtRpcExportLog_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcExportLog_channelPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcExportLog_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcExportLog_backupPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcExportLog_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcLocalizeExportLog_control_, NDR_POINTER_REF, "Pointer to Control (policy_handle)",hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_control);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_control_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_control, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_logFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcLocalizeExportLog_logFilePath_, NDR_POINTER_REF, "Pointer to Logfilepath (uint16)",hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_logFilePath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_logFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_logFilePath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_locale, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcLocalizeExportLog_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcLocalizeExportLog_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcLocalizeExportLog( */
+/* IDL: [in] [ref] policy_handle *control, */
+/* IDL: [ref] [in] [range(1,MAX_RPC_FILE_PATH_LENGTH)] [charset(UTF16)] uint16 *logFilePath, */
+/* IDL: [in] uint32 locale, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcLocalizeExportLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcLocalizeExportLog";
+       offset = eventlog6_dissect_element_EvtRpcLocalizeExportLog_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcLocalizeExportLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcLocalizeExportLog";
+       offset = eventlog6_dissect_element_EvtRpcLocalizeExportLog_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcLocalizeExportLog_logFilePath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcLocalizeExportLog_locale(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcLocalizeExportLog_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj_, NDR_POINTER_REF, "Pointer to Pubcfgobj (policy_handle)",hf_eventlog6_eventlog6_EvtRpcMessageRender_pubCfgObj);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_pubCfgObj, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_sizeEventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_sizeEventId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_eventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_eventId_, NDR_POINTER_REF, "Pointer to Eventid (uint8)",hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_eventId__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_messageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_messageId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_values_, NDR_POINTER_REF, "Pointer to Values (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcMessageRender_values);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcMessageRender_values,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_maxSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_maxSizeString, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_actualSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_actualSizeString_, NDR_POINTER_REF, "Pointer to Actualsizestring (uint32)",hf_eventlog6_eventlog6_EvtRpcMessageRender_actualSizeString);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_actualSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_actualSizeString, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString_, NDR_POINTER_REF, "Pointer to Neededsizestring (uint32)",hf_eventlog6_eventlog6_EvtRpcMessageRender_neededSizeString);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_neededSizeString, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_string_, NDR_POINTER_REF, "Pointer to String (uint8)",hf_eventlog6_eventlog6_EvtRpcMessageRender_string);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_string__, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_eventlog6_eventlog6_EvtRpcMessageRender_string);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_string___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRender_string, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRender_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcMessageRender_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRender_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcMessageRender_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcMessageRender( */
+/* IDL: [in] [ref] policy_handle *pubCfgObj, */
+/* IDL: [in] [range(1,MAX_RPC_EVENT_ID_SIZE)] uint32 sizeEventId, */
+/* IDL: [ref] [in] [size_is(sizeEventId)] uint8 *eventId, */
+/* IDL: [in] uint32 messageId, */
+/* IDL: [ref] [in] eventlog6_EvtRpcVariantList *values, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [in] uint32 maxSizeString, */
+/* IDL: [out] [ref] uint32 *actualSizeString, */
+/* IDL: [out] [ref] uint32 *neededSizeString, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RENDERED_STRING_SIZE)] [size_is(,*actualSizeString)] uint8 **string, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcMessageRender_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcMessageRender";
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_actualSizeString(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_neededSizeString(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_string(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcMessageRender_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcMessageRender";
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_pubCfgObj(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_sizeEventId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_eventId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_messageId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_values(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRender_maxSizeString(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_sizeEventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_sizeEventId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId_, NDR_POINTER_REF, "Pointer to Eventid (uint8)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_messageId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_messageId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_values_, NDR_POINTER_REF, "Pointer to Values (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_values);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_values,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_maxSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_maxSizeString, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_actualSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_actualSizeString_, NDR_POINTER_REF, "Pointer to Actualsizestring (uint32)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_actualSizeString);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_actualSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_actualSizeString, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString_, NDR_POINTER_REF, "Pointer to Neededsizestring (uint32)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_neededSizeString);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_neededSizeString, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_string_, NDR_POINTER_REF, "Pointer to String (uint8)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_string__, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_string___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcMessageRenderDefault_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcMessageRenderDefault_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcMessageRenderDefault( */
+/* IDL: [in] [range(1,MAX_RPC_EVENT_ID_SIZE)] uint32 sizeEventId, */
+/* IDL: [ref] [in] [size_is(sizeEventId)] uint8 *eventId, */
+/* IDL: [in] uint32 messageId, */
+/* IDL: [ref] [in] eventlog6_EvtRpcVariantList *values, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [in] uint32 maxSizeString, */
+/* IDL: [out] [ref] uint32 *actualSizeString, */
+/* IDL: [out] [ref] uint32 *neededSizeString, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RENDERED_STRING_SIZE)] [size_is(,*actualSizeString)] uint8 **string, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcMessageRenderDefault_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcMessageRenderDefault";
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_actualSizeString(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_neededSizeString(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_string(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcMessageRenderDefault_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcMessageRenderDefault";
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_sizeEventId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_eventId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_messageId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_values(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcMessageRenderDefault_maxSizeString(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_logQuery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_logQuery_, NDR_POINTER_REF, "Pointer to Logquery (policy_handle)",hf_eventlog6_eventlog6_EvtRpcQueryNext_logQuery);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_logQuery_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_logQuery, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_numRequestedRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_numRequestedRecords, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_timeOutEnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_timeOutEnd, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_numActualRecords(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_numActualRecords_, NDR_POINTER_REF, "Pointer to Numactualrecords (uint32)",hf_eventlog6_eventlog6_EvtRpcQueryNext_numActualRecords);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_numActualRecords_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_numActualRecords, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices_, NDR_POINTER_REF, "Pointer to Eventdataindices (uint32)",hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataIndices);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices__, NDR_POINTER_UNIQUE, "Pointer to Eventdataindices (uint32)",hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataIndices);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataIndices, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes_, NDR_POINTER_REF, "Pointer to Eventdatasizes (uint32)",hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataSizes);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes__, NDR_POINTER_UNIQUE, "Pointer to Eventdatasizes (uint32)",hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataSizes);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataSizes, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize_, NDR_POINTER_REF, "Pointer to Resultbuffersize (uint32)",hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBufferSize);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBufferSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer_, NDR_POINTER_REF, "Pointer to Resultbuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer__, NDR_POINTER_UNIQUE, "Pointer to Resultbuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcQueryNext( */
+/* IDL: [in] [ref] policy_handle *logQuery, */
+/* IDL: [in] uint32 numRequestedRecords, */
+/* IDL: [in] uint32 timeOutEnd, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint32 *numActualRecords, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RECORD_COUNT)] [size_is(,*numActualRecords)] uint32 **eventDataIndices, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_RECORD_COUNT)] [size_is(,*numActualRecords)] uint32 **eventDataSizes, */
+/* IDL: [out] [ref] uint32 *resultBufferSize, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_BATCH_SIZE)] [size_is(,*resultBufferSize)] uint8 **resultBuffer */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcQueryNext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcQueryNext";
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_numActualRecords(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_eventDataIndices(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_eventDataSizes(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_resultBufferSize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_resultBuffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcQueryNext_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcQueryNext";
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_logQuery(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_numRequestedRecords(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_timeOutEnd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQueryNext_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_logQuery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQuerySeek_logQuery_, NDR_POINTER_REF, "Pointer to Logquery (policy_handle)",hf_eventlog6_eventlog6_EvtRpcQuerySeek_logQuery);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_logQuery_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQuerySeek_logQuery, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_pos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQuerySeek_pos, NULL);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_bookmarkXml(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQuerySeek_bookmarkXml_, NDR_POINTER_UNIQUE, "Pointer to Bookmarkxml (uint16)",hf_eventlog6_eventlog6_EvtRpcQuerySeek_bookmarkXml);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_bookmarkXml_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcQuerySeek_bookmarkXml, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_timeOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQuerySeek_timeOut, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcQuerySeek_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcQuerySeek_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcQuerySeek_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcQuerySeek_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcQuerySeek_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcQuerySeek( */
+/* IDL: [in] [ref] policy_handle *logQuery, */
+/* IDL: [in] hyper pos, */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_BOOKMARK_LENGTH)] [charset(UTF16)] uint16 *bookmarkXml, */
+/* IDL: [in] uint32 timeOut, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcQuerySeek_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcQuerySeek";
+       offset = eventlog6_dissect_element_EvtRpcQuerySeek_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcQuerySeek_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcQuerySeek";
+       offset = eventlog6_dissect_element_EvtRpcQuerySeek_logQuery(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQuerySeek_pos(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQuerySeek_bookmarkXml(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQuerySeek_timeOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcQuerySeek_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClose_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcClose_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcClose_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClose_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcClose_handle__, NDR_POINTER_UNIQUE, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcClose_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcClose_handle__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcClose_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcClose( */
+/* IDL: [out] [in] [ref] policy_handle **handle */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcClose_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcClose";
+       offset = eventlog6_dissect_element_EvtRpcClose_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcClose_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcClose";
+       offset = eventlog6_dissect_element_EvtRpcClose_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcCancel_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcCancel_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcCancel_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcCancel_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcCancel_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcCancel( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcCancel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcCancel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcCancel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcCancel";
+       offset = eventlog6_dissect_element_EvtRpcCancel_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcAssertConfig_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcAssertConfig_path_, NDR_POINTER_REF, "Pointer to Path (uint16)",hf_eventlog6_eventlog6_EvtRpcAssertConfig_path);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcAssertConfig_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcAssertConfig_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcAssertConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcAssertConfig_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcAssertConfig( */
+/* IDL: [ref] [in] [range(1,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *path, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcAssertConfig_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcAssertConfig";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcAssertConfig_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcAssertConfig";
+       offset = eventlog6_dissect_element_EvtRpcAssertConfig_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcAssertConfig_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRetractConfig_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcRetractConfig_path_, NDR_POINTER_REF, "Pointer to Path (uint16)",hf_eventlog6_eventlog6_EvtRpcRetractConfig_path);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRetractConfig_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcRetractConfig_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcRetractConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcRetractConfig_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcRetractConfig( */
+/* IDL: [ref] [in] [range(1,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *path, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcRetractConfig_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcRetractConfig";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcRetractConfig_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcRetractConfig";
+       offset = eventlog6_dissect_element_EvtRpcRetractConfig_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcRetractConfig_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_channel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcOpenLogHandle_channel_, NDR_POINTER_REF, "Pointer to Channel (uint16)",hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_channel);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_channel_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_channel, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcOpenLogHandle_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcOpenLogHandle_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcOpenLogHandle_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcOpenLogHandle( */
+/* IDL: [ref] [in] [range(1,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *channel, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcOpenLogHandle_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcOpenLogHandle";
+       offset = eventlog6_dissect_element_EvtRpcOpenLogHandle_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcOpenLogHandle_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcOpenLogHandle_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcOpenLogHandle";
+       offset = eventlog6_dissect_element_EvtRpcOpenLogHandle_channel(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcOpenLogHandle_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_logHandle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetLogFileInfo_logHandle_, NDR_POINTER_REF, "Pointer to Loghandle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_logHandle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_logHandle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_logHandle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferSize, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer_, NDR_POINTER_REF, "Pointer to Propertyvaluebuffer (uint8)",hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength_, NDR_POINTER_REF, "Pointer to Propertyvaluebufferlength (uint32)",hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferLength);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferLength, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetLogFileInfo( */
+/* IDL: [in] [ref] policy_handle *logHandle, */
+/* IDL: [in] uint32 propertyId, */
+/* IDL: [in] [range(0,MAX_RPC_PROPERTY_BUFFER_SIZE)] uint32 propertyValueBufferSize, */
+/* IDL: [out] [ref] [size_is(propertyValueBufferSize)] uint8 *propertyValueBuffer, */
+/* IDL: [out] [ref] uint32 *propertyValueBufferLength */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetLogFileInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetLogFileInfo";
+       offset = eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBuffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferLength(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetLogFileInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetLogFileInfo";
+       offset = eventlog6_dissect_element_EvtRpcGetLogFileInfo_logHandle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetLogFileInfo_propertyValueBufferSize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetChannelList_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_numChannelPaths(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelList_numChannelPaths_, NDR_POINTER_REF, "Pointer to Numchannelpaths (uint32)",hf_eventlog6_eventlog6_EvtRpcGetChannelList_numChannelPaths);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_numChannelPaths_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetChannelList_numChannelPaths, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths_, NDR_POINTER_REF, "Pointer to Channelpaths (uint16)",hf_eventlog6_eventlog6_EvtRpcGetChannelList_channelPaths);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths__, NDR_POINTER_UNIQUE, "Pointer to Channelpaths (uint16)",hf_eventlog6_eventlog6_EvtRpcGetChannelList_channelPaths);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths____, NDR_POINTER_UNIQUE, "Pointer to Channelpaths (uint16)",hf_eventlog6_eventlog6_EvtRpcGetChannelList_channelPaths);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetChannelList_channelPaths, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetChannelList( */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint32 *numChannelPaths, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_CHANNEL_COUNT)] [charset(UTF16)] [size_is(,*numChannelPaths)] uint16 ***channelPaths */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetChannelList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetChannelList";
+       offset = eventlog6_dissect_element_EvtRpcGetChannelList_numChannelPaths(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcGetChannelList_channelPaths(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetChannelList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetChannelList";
+       offset = eventlog6_dissect_element_EvtRpcGetChannelList_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelConfig_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelConfig_channelPath_, NDR_POINTER_REF, "Pointer to Channelpath (uint16)",hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_channelPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelConfig_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_channelPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelConfig_props(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetChannelConfig_props_, NDR_POINTER_REF, "Pointer to Props (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_props);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetChannelConfig_props_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_props,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetChannelConfig( */
+/* IDL: [ref] [in] [range(1,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *channelPath, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_EvtRpcVariantList *props */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetChannelConfig_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetChannelConfig";
+       offset = eventlog6_dissect_element_EvtRpcGetChannelConfig_props(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetChannelConfig_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetChannelConfig";
+       offset = eventlog6_dissect_element_EvtRpcGetChannelConfig_channelPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetChannelConfig_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_channelPath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcPutChannelConfig_channelPath_, NDR_POINTER_REF, "Pointer to Channelpath (uint16)",hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_channelPath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_channelPath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_channelPath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_props(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcPutChannelConfig_props_, NDR_POINTER_REF, "Pointer to Props (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_props);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_props_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_props,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcPutChannelConfig_error_, NDR_POINTER_REF, "Pointer to Error (eventlog6_RpcInfo)",hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_error);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcPutChannelConfig_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_RpcInfo(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_error,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcPutChannelConfig( */
+/* IDL: [ref] [in] [range(1,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *channelPath, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [ref] [in] eventlog6_EvtRpcVariantList *props, */
+/* IDL: [out] [ref] eventlog6_RpcInfo *error */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcPutChannelConfig_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcPutChannelConfig";
+       offset = eventlog6_dissect_element_EvtRpcPutChannelConfig_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcPutChannelConfig_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcPutChannelConfig";
+       offset = eventlog6_dissect_element_EvtRpcPutChannelConfig_channelPath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcPutChannelConfig_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcPutChannelConfig_props(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherList_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_numPublisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherList_numPublisherIds_, NDR_POINTER_REF, "Pointer to Numpublisherids (uint32)",hf_eventlog6_eventlog6_EvtRpcGetPublisherList_numPublisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_numPublisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherList_numPublisherIds, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds_, NDR_POINTER_REF, "Pointer to Publisherids (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherList_publisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds__, NDR_POINTER_UNIQUE, "Pointer to Publisherids (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherList_publisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds____, NDR_POINTER_UNIQUE, "Pointer to Publisherids (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherList_publisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetPublisherList_publisherIds, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetPublisherList( */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint32 *numPublisherIds, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_PUBLISHER_COUNT)] [charset(UTF16)] [size_is(,*numPublisherIds)] uint16 ***publisherIds */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherList";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherList_numPublisherIds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherList_publisherIds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherList";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherList_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_channelName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_channelName_, NDR_POINTER_REF, "Pointer to Channelname (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_channelName);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_channelName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_channelName, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_numPublisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_numPublisherIds_, NDR_POINTER_REF, "Pointer to Numpublisherids (uint32)",hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_numPublisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_numPublisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_numPublisherIds, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds_, NDR_POINTER_REF, "Pointer to Publisherids (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_publisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds__, NDR_POINTER_UNIQUE, "Pointer to Publisherids (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_publisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds____, NDR_POINTER_UNIQUE, "Pointer to Publisherids (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_publisherIds);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_publisherIds, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetPublisherListForChannel( */
+/* IDL: [ref] [in] uint16 *channelName, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint32 *numPublisherIds, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_PUBLISHER_COUNT)] [charset(UTF16)] [size_is(,*numPublisherIds)] uint16 ***publisherIds */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherListForChannel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherListForChannel";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_numPublisherIds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_publisherIds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherListForChannel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherListForChannel";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_channelName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherListForChannel_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_publisherId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherMetadata_publisherId_, NDR_POINTER_UNIQUE, "Pointer to Publisherid (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_publisherId);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_publisherId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_publisherId, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_logFilePath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherMetadata_logFilePath_, NDR_POINTER_UNIQUE, "Pointer to Logfilepath (uint16)",hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_logFilePath);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_logFilePath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_logFilePath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_locale, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadataProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadataProps_, NDR_POINTER_REF, "Pointer to Pubmetadataprops (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadataProps);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadataProps_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadataProps,0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadata_, NDR_POINTER_REF, "Pointer to Pubmetadata (policy_handle)",hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadata);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadata, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetPublisherMetadata( */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_PUBLISHER_ID_LENGTH)] [charset(UTF16)] uint16 *publisherId, */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_FILE_PATH_LENGTH)] [charset(UTF16)] uint16 *logFilePath, */
+/* IDL: [in] uint32 locale, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_EvtRpcVariantList *pubMetadataProps, */
+/* IDL: [out] [ref] policy_handle *pubMetadata */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherMetadata_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherMetadata";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadataProps(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherMetadata_pubMetadata(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherMetadata_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherMetadata";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherMetadata_publisherId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherMetadata_logFilePath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherMetadata_locale(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherMetadata_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_handle);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_handle, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_propertyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_propertyId, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_pubMetadataProps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_pubMetadataProps_, NDR_POINTER_REF, "Pointer to Pubmetadataprops (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_pubMetadataProps);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_pubMetadataProps_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_pubMetadataProps,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetPublisherResourceMetadata( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 propertyId, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] eventlog6_EvtRpcVariantList *pubMetadataProps */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherResourceMetadata_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherResourceMetadata";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_pubMetadataProps(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetPublisherResourceMetadata_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetPublisherResourceMetadata";
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_propertyId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetPublisherResourceMetadata_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_pubMetadata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_pubMetadata_, NDR_POINTER_REF, "Pointer to Pubmetadata (policy_handle)",hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_pubMetadata);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_pubMetadata_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_pubMetadata, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_reservedForFilter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_reservedForFilter_, NDR_POINTER_UNIQUE, "Pointer to Reservedforfilter (uint16)",hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_reservedForFilter);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_reservedForFilter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_reservedForFilter, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_eventMetaDataEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_eventMetaDataEnum_, NDR_POINTER_REF, "Pointer to Eventmetadataenum (policy_handle)",hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_eventMetaDataEnum);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_eventMetaDataEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_eventMetaDataEnum, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetEventMetadataEnum( */
+/* IDL: [in] [ref] policy_handle *pubMetadata, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [unique(1)] [in] [range(0,MAX_RPC_FILTER_LENGTH)] [charset(UTF16)] uint16 *reservedForFilter, */
+/* IDL: [out] [ref] policy_handle *eventMetaDataEnum */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetEventMetadataEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetEventMetadataEnum";
+       offset = eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_eventMetaDataEnum(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetEventMetadataEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetEventMetadataEnum";
+       offset = eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_pubMetadata(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetEventMetadataEnum_reservedForFilter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetaDataEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetaDataEnum_, NDR_POINTER_REF, "Pointer to Eventmetadataenum (policy_handle)",hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetaDataEnum);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetaDataEnum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetaDataEnum, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numRequested(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numRequested, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numReturned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numReturned_, NDR_POINTER_REF, "Pointer to Numreturned (uint32)",hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numReturned);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numReturned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numReturned, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances_, NDR_POINTER_REF, "Pointer to Eventmetadatainstances (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetadataInstances);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances__, NDR_POINTER_UNIQUE, "Pointer to Eventmetadatainstances (eventlog6_EvtRpcVariantList)",hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetadataInstances);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances___);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = eventlog6_dissect_struct_EvtRpcVariantList(tvb,offset,pinfo,tree,drep,hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetadataInstances,0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetNextEventMetadata( */
+/* IDL: [in] [ref] policy_handle *eventMetaDataEnum, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [in] uint32 numRequested, */
+/* IDL: [out] [ref] uint32 *numReturned, */
+/* IDL: [out] [ref] [range(0,MAX_RPC_EVENT_METADATA_COUNT)] [size_is(,*numReturned)] eventlog6_EvtRpcVariantList **eventMetadataInstances */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetNextEventMetadata_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetNextEventMetadata";
+       offset = eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numReturned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetadataInstances(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetNextEventMetadata_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetNextEventMetadata";
+       offset = eventlog6_dissect_element_EvtRpcGetNextEventMetadata_eventMetaDataEnum(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetNextEventMetadata_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetNextEventMetadata_numRequested(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_logName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_logName_, NDR_POINTER_REF, "Pointer to Logname (uint16)",hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_logName);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_logName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_logName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_locale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_locale, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_flags, 0);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName_, NDR_POINTER_REF, "Pointer to Displayname (uint16)",hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_displayName);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName__, NDR_POINTER_UNIQUE, "Pointer to Displayname (uint16)",hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_displayName);
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_displayName, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR eventlog6_EvtRpcGetClassicLogDisplayName( */
+/* IDL: [ref] [in] [range(1,MAX_RPC_CHANNEL_NAME_LENGTH)] [charset(UTF16)] uint16 *logName, */
+/* IDL: [in] uint32 locale, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] uint16 **displayName */
+/* IDL: ); */
+
+static int
+eventlog6_dissect_EvtRpcGetClassicLogDisplayName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EvtRpcGetClassicLogDisplayName";
+       offset = eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_displayName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_eventlog6_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+eventlog6_dissect_EvtRpcGetClassicLogDisplayName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EvtRpcGetClassicLogDisplayName";
+       offset = eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_logName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_locale(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = eventlog6_dissect_element_EvtRpcGetClassicLogDisplayName_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector eventlog6_dissectors[] = {
+       { 0, "EvtRpcRegisterRemoteSubscription",
+          eventlog6_dissect_EvtRpcRegisterRemoteSubscription_request, eventlog6_dissect_EvtRpcRegisterRemoteSubscription_response},
+       { 1, "EvtRpcRemoteSubscriptionNextAsync",
+          eventlog6_dissect_EvtRpcRemoteSubscriptionNextAsync_request, eventlog6_dissect_EvtRpcRemoteSubscriptionNextAsync_response},
+       { 2, "EvtRpcRemoteSubscriptionNext",
+          eventlog6_dissect_EvtRpcRemoteSubscriptionNext_request, eventlog6_dissect_EvtRpcRemoteSubscriptionNext_response},
+       { 3, "EvtRpcRemoteSubscriptionWaitAsync",
+          eventlog6_dissect_EvtRpcRemoteSubscriptionWaitAsync_request, eventlog6_dissect_EvtRpcRemoteSubscriptionWaitAsync_response},
+       { 4, "EvtRpcRegisterControllableOperation",
+          eventlog6_dissect_EvtRpcRegisterControllableOperation_request, eventlog6_dissect_EvtRpcRegisterControllableOperation_response},
+       { 5, "EvtRpcRegisterLogQuery",
+          eventlog6_dissect_EvtRpcRegisterLogQuery_request, eventlog6_dissect_EvtRpcRegisterLogQuery_response},
+       { 6, "EvtRpcClearLog",
+          eventlog6_dissect_EvtRpcClearLog_request, eventlog6_dissect_EvtRpcClearLog_response},
+       { 7, "EvtRpcExportLog",
+          eventlog6_dissect_EvtRpcExportLog_request, eventlog6_dissect_EvtRpcExportLog_response},
+       { 8, "EvtRpcLocalizeExportLog",
+          eventlog6_dissect_EvtRpcLocalizeExportLog_request, eventlog6_dissect_EvtRpcLocalizeExportLog_response},
+       { 9, "EvtRpcMessageRender",
+          eventlog6_dissect_EvtRpcMessageRender_request, eventlog6_dissect_EvtRpcMessageRender_response},
+       { 10, "EvtRpcMessageRenderDefault",
+          eventlog6_dissect_EvtRpcMessageRenderDefault_request, eventlog6_dissect_EvtRpcMessageRenderDefault_response},
+       { 11, "EvtRpcQueryNext",
+          eventlog6_dissect_EvtRpcQueryNext_request, eventlog6_dissect_EvtRpcQueryNext_response},
+       { 12, "EvtRpcQuerySeek",
+          eventlog6_dissect_EvtRpcQuerySeek_request, eventlog6_dissect_EvtRpcQuerySeek_response},
+       { 13, "EvtRpcClose",
+          eventlog6_dissect_EvtRpcClose_request, eventlog6_dissect_EvtRpcClose_response},
+       { 14, "EvtRpcCancel",
+          eventlog6_dissect_EvtRpcCancel_request, eventlog6_dissect_EvtRpcCancel_response},
+       { 15, "EvtRpcAssertConfig",
+          eventlog6_dissect_EvtRpcAssertConfig_request, eventlog6_dissect_EvtRpcAssertConfig_response},
+       { 16, "EvtRpcRetractConfig",
+          eventlog6_dissect_EvtRpcRetractConfig_request, eventlog6_dissect_EvtRpcRetractConfig_response},
+       { 17, "EvtRpcOpenLogHandle",
+          eventlog6_dissect_EvtRpcOpenLogHandle_request, eventlog6_dissect_EvtRpcOpenLogHandle_response},
+       { 18, "EvtRpcGetLogFileInfo",
+          eventlog6_dissect_EvtRpcGetLogFileInfo_request, eventlog6_dissect_EvtRpcGetLogFileInfo_response},
+       { 19, "EvtRpcGetChannelList",
+          eventlog6_dissect_EvtRpcGetChannelList_request, eventlog6_dissect_EvtRpcGetChannelList_response},
+       { 20, "EvtRpcGetChannelConfig",
+          eventlog6_dissect_EvtRpcGetChannelConfig_request, eventlog6_dissect_EvtRpcGetChannelConfig_response},
+       { 21, "EvtRpcPutChannelConfig",
+          eventlog6_dissect_EvtRpcPutChannelConfig_request, eventlog6_dissect_EvtRpcPutChannelConfig_response},
+       { 22, "EvtRpcGetPublisherList",
+          eventlog6_dissect_EvtRpcGetPublisherList_request, eventlog6_dissect_EvtRpcGetPublisherList_response},
+       { 23, "EvtRpcGetPublisherListForChannel",
+          eventlog6_dissect_EvtRpcGetPublisherListForChannel_request, eventlog6_dissect_EvtRpcGetPublisherListForChannel_response},
+       { 24, "EvtRpcGetPublisherMetadata",
+          eventlog6_dissect_EvtRpcGetPublisherMetadata_request, eventlog6_dissect_EvtRpcGetPublisherMetadata_response},
+       { 25, "EvtRpcGetPublisherResourceMetadata",
+          eventlog6_dissect_EvtRpcGetPublisherResourceMetadata_request, eventlog6_dissect_EvtRpcGetPublisherResourceMetadata_response},
+       { 26, "EvtRpcGetEventMetadataEnum",
+          eventlog6_dissect_EvtRpcGetEventMetadataEnum_request, eventlog6_dissect_EvtRpcGetEventMetadataEnum_response},
+       { 27, "EvtRpcGetNextEventMetadata",
+          eventlog6_dissect_EvtRpcGetNextEventMetadata_request, eventlog6_dissect_EvtRpcGetNextEventMetadata_response},
+       { 28, "EvtRpcGetClassicLogDisplayName",
+          eventlog6_dissect_EvtRpcGetClassicLogDisplayName_request, eventlog6_dissect_EvtRpcGetClassicLogDisplayName_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_eventlog6(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_pubMetadataProps,
+         { "Pubmetadataprops", "eventlog6.eventlog6_EvtRpcGetPublisherResourceMetadata.pubMetadataProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_control,
+         { "Control", "eventlog6.eventlog6_EvtRpcLocalizeExportLog.control", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint32Val,
+         { "Uint32val", "eventlog6.eventlog6_EvtRpcVariantUnion.uint32Val", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_name,
+         { "Name", "eventlog6.eventlog6_EvtRpcQueryChannelInfo.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetClassicLogDisplayName.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfo,
+         { "Querychannelinfo", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.queryChannelInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfoSize,
+         { "Querychannelinfosize", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.queryChannelInfoSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBuffer,
+         { "Propertyvaluebuffer", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.propertyValueBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_bookmarkXml,
+         { "Bookmarkxml", "eventlog6.eventlog6_EvtRpcQuerySeek.bookmarkXml", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_values,
+         { "Values", "eventlog6.eventlog6_EvtRpcMessageRender.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numRequestedRecords,
+         { "Numrequestedrecords", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.numRequestedRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_GuidArray_ptr,
+         { "Ptr", "eventlog6.eventlog6_GuidArray.ptr", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_werror,
+         { "Windows Error", "eventlog6.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcLocalizeExportLog.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataSizes,
+         { "Eventdatasizes", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.eventDataSizes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferLength,
+         { "Propertyvaluebufferlength", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.propertyValueBufferLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyId,
+         { "Propertyid", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.propertyId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_StringArray_count,
+         { "Count", "eventlog6.eventlog6_StringArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcQuerySeek.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidVal,
+         { "Guidval", "eventlog6.eventlog6_EvtRpcVariantUnion.guidVal", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_maxSizeString,
+         { "Maxsizestring", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.maxSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariant_var,
+         { "Var", "eventlog6.eventlog6_EvtRpcVariant.var", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_locale,
+         { "Locale", "eventlog6.eventlog6_EvtRpcGetPublisherMetadata.locale", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_nullVal,
+         { "Nullval", "eventlog6.eventlog6_EvtRpcVariantUnion.nullVal", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcQuerySeek.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_queryChannelInfo,
+         { "Querychannelinfo", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.queryChannelInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_messageId,
+         { "Messageid", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.messageId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_bookmarkXml,
+         { "Bookmarkxml", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.bookmarkXml", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_channel,
+         { "Channel", "eventlog6.eventlog6_EvtRpcOpenLogHandle.channel", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_logFilePath,
+         { "Logfilepath", "eventlog6.eventlog6_EvtRpcLocalizeExportLog.logFilePath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetChannelList_channelPaths,
+         { "Channelpaths", "eventlog6.eventlog6_EvtRpcGetChannelList.channelPaths", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_opnum,
+         { "Operation", "eventlog6.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadataProps,
+         { "Pubmetadataprops", "eventlog6.eventlog6_EvtRpcGetPublisherMetadata.pubMetadataProps", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_sizeEventId,
+         { "Sizeeventid", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.sizeEventId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_numActualRecords,
+         { "Numactualrecords", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.numActualRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcExportLog_channelPath,
+         { "Channelpath", "eventlog6.eventlog6_EvtRpcExportLog.channelPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_guidArray,
+         { "Guidarray", "eventlog6.eventlog6_EvtRpcVariantUnion.guidArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_RpcInfo_error,
+         { "Error", "eventlog6.eventlog6_RpcInfo.error", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcOpenLogHandle.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_propertyId,
+         { "Propertyid", "eventlog6.eventlog6_EvtRpcGetPublisherResourceMetadata.propertyId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBufferSize,
+         { "Resultbuffersize", "eventlog6.eventlog6_EvtRpcQueryNext.resultBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcClearLog_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcClearLog.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcAssertConfig_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcAssertConfig.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_actualSizeString,
+         { "Actualsizestring", "eventlog6.eventlog6_EvtRpcMessageRender.actualSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_path,
+         { "Path", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_pubCfgObj,
+         { "Pubcfgobj", "eventlog6.eventlog6_EvtRpcMessageRender.pubCfgObj", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetPublisherResourceMetadata.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_pos,
+         { "Pos", "eventlog6.eventlog6_EvtRpcQuerySeek.pos", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcClearLog_control,
+         { "Control", "eventlog6.eventlog6_EvtRpcClearLog.control", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_RpcInfo_sub_err,
+         { "Sub Err", "eventlog6.eventlog6_RpcInfo.sub_err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetEventMetadataEnum.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_StringArray_ptr,
+         { "Ptr", "eventlog6.eventlog6_StringArray.ptr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_timeOutEnd,
+         { "Timeoutend", "eventlog6.eventlog6_EvtRpcQueryNext.timeOutEnd", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcExportLog_query,
+         { "Query", "eventlog6.eventlog6_EvtRpcExportLog.query", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numReturned,
+         { "Numreturned", "eventlog6.eventlog6_EvtRpcGetNextEventMetadata.numReturned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_eventId,
+         { "Eventid", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.eventId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcMessageRender.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_query,
+         { "Query", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.query", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetaDataEnum,
+         { "Eventmetadataenum", "eventlog6.eventlog6_EvtRpcGetNextEventMetadata.eventMetaDataEnum", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_logQuery,
+         { "Logquery", "eventlog6.eventlog6_EvtRpcQuerySeek.logQuery", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_resultBuffer,
+         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcQueryNext.resultBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_logHandle,
+         { "Loghandle", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.logHandle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_channelPath,
+         { "Channelpath", "eventlog6.eventlog6_EvtRpcPutChannelConfig.channelPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_queryChannelInfoSize,
+         { "Querychannelinfosize", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.queryChannelInfoSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_eventMetadataInstances,
+         { "Eventmetadatainstances", "eventlog6.eventlog6_EvtRpcGetNextEventMetadata.eventMetadataInstances", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_control,
+         { "Control", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.control", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryChannelInfo_status,
+         { "Status", "eventlog6.eventlog6_EvtRpcQueryChannelInfo.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantList_props,
+         { "Props", "eventlog6.eventlog6_EvtRpcVariantList.props", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint64Array,
+         { "Uint64array", "eventlog6.eventlog6_EvtRpcVariantUnion.uint64Array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetChannelList_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetChannelList.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_logName,
+         { "Logname", "eventlog6.eventlog6_EvtRpcGetClassicLogDisplayName.logName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariant_type,
+         { "Type", "eventlog6.eventlog6_EvtRpcVariant.type", FT_UINT32, BASE_DEC, VALS(eventlog6_eventlog6_EvtRpcVariantType_vals), 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataSizes,
+         { "Eventdatasizes", "eventlog6.eventlog6_EvtRpcQueryNext.eventDataSizes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_UInt32Array_count,
+         { "Count", "eventlog6.eventlog6_UInt32Array.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcExportLog_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcExportLog.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_numRequestedRecords,
+         { "Numrequestedrecords", "eventlog6.eventlog6_EvtRpcQueryNext.numRequestedRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionWaitAsync_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionWaitAsync.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_RpcInfo_sub_err_param,
+         { "Sub Err Param", "eventlog6.eventlog6_RpcInfo.sub_err_param", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetNextEventMetadata.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcAssertConfig_path,
+         { "Path", "eventlog6.eventlog6_EvtRpcAssertConfig.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_opControl,
+         { "Opcontrol", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.opControl", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_logFilePath,
+         { "Logfilepath", "eventlog6.eventlog6_EvtRpcGetPublisherMetadata.logFilePath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBufferSize,
+         { "Resultbuffersize", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.resultBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_publisherIds,
+         { "Publisherids", "eventlog6.eventlog6_EvtRpcGetPublisherListForChannel.publisherIds", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_channelName,
+         { "Channelname", "eventlog6.eventlog6_EvtRpcGetPublisherListForChannel.channelName", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_messageId,
+         { "Messageid", "eventlog6.eventlog6_EvtRpcMessageRender.messageId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_resultBuffer,
+         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.resultBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Val,
+         { "Boolean8val", "eventlog6.eventlog6_EvtRpcVariantUnion.boolean8Val", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_locale,
+         { "Locale", "eventlog6.eventlog6_EvtRpcLocalizeExportLog.locale", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numActualRecords,
+         { "Numactualrecords", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.numActualRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_string,
+         { "String", "eventlog6.eventlog6_EvtRpcMessageRender.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_numPublisherIds,
+         { "Numpublisherids", "eventlog6.eventlog6_EvtRpcGetPublisherListForChannel.numPublisherIds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcOpenLogHandle.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantList_count,
+         { "Count", "eventlog6.eventlog6_EvtRpcVariantList.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_sizeEventId,
+         { "Sizeeventid", "eventlog6.eventlog6_EvtRpcMessageRender.sizeEventId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_values,
+         { "Values", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.values", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_reservedForFilter,
+         { "Reservedforfilter", "eventlog6.eventlog6_EvtRpcGetEventMetadataEnum.reservedForFilter", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetPublisherMetadata.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRetractConfig_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcRetractConfig.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcQueryNext.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcMessageRender.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcLocalizeExportLog_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcLocalizeExportLog.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariant_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcVariant.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcClearLog_backupPath,
+         { "Backuppath", "eventlog6.eventlog6_EvtRpcClearLog.backupPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcClose_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcClose.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_locale,
+         { "Locale", "eventlog6.eventlog6_EvtRpcGetClassicLogDisplayName.locale", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_string,
+         { "String", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQuerySeek_timeOut,
+         { "Timeout", "eventlog6.eventlog6_EvtRpcQuerySeek.timeOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcPutChannelConfig.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint64Val,
+         { "Uint64val", "eventlog6.eventlog6_EvtRpcVariantUnion.uint64Val", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherList_publisherIds,
+         { "Publisherids", "eventlog6.eventlog6_EvtRpcGetPublisherList.publisherIds", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_neededSizeString,
+         { "Neededsizestring", "eventlog6.eventlog6_EvtRpcMessageRender.neededSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_eventDataIndices,
+         { "Eventdataindices", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.eventDataIndices", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_query,
+         { "Query", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.query", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_eventId,
+         { "Eventid", "eventlog6.eventlog6_EvtRpcMessageRender.eventId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherListForChannel_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetPublisherListForChannel.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterRemoteSubscription_channelPath,
+         { "Channelpath", "eventlog6.eventlog6_EvtRpcRegisterRemoteSubscription.channelPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringArray,
+         { "Stringarray", "eventlog6.eventlog6_EvtRpcVariantUnion.stringArray", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetClassicLogDisplayName_displayName,
+         { "Displayname", "eventlog6.eventlog6_EvtRpcGetClassicLogDisplayName.displayName", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetNextEventMetadata_numRequested,
+         { "Numrequested", "eventlog6.eventlog6_EvtRpcGetNextEventMetadata.numRequested", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterControllableOperation_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcRegisterControllableOperation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_timeOut,
+         { "Timeout", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.timeOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcExportLog_control,
+         { "Control", "eventlog6.eventlog6_EvtRpcExportLog.control", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherList_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetPublisherList.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_UInt64Array_ptr,
+         { "Ptr", "eventlog6.eventlog6_UInt64Array.ptr", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_boolean8Array_count,
+         { "Count", "eventlog6.eventlog6_boolean8Array.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_pubMetadata,
+         { "Pubmetadata", "eventlog6.eventlog6_EvtRpcGetPublisherMetadata.pubMetadata", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcGetChannelConfig.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataIndices,
+         { "Eventdataindices", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.eventDataIndices", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_props,
+         { "Props", "eventlog6.eventlog6_EvtRpcPutChannelConfig.props", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcExportLog_error,
+         { "Error", "eventlog6.eventlog6_EvtRpcExportLog.error", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherMetadata_publisherId,
+         { "Publisherid", "eventlog6.eventlog6_EvtRpcGetPublisherMetadata.publisherId", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcOpenLogHandle_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcOpenLogHandle.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_UInt32Array_ptr,
+         { "Ptr", "eventlog6.eventlog6_UInt32Array.ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_uint32Array,
+         { "Uint32array", "eventlog6.eventlog6_EvtRpcVariantUnion.uint32Array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_props,
+         { "Props", "eventlog6.eventlog6_EvtRpcGetChannelConfig.props", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRegisterLogQuery_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcRegisterLogQuery.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_eventMetaDataEnum,
+         { "Eventmetadataenum", "eventlog6.eventlog6_EvtRpcGetEventMetadataEnum.eventMetaDataEnum", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_UInt64Array_count,
+         { "Count", "eventlog6.eventlog6_UInt64Array.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetLogFileInfo_propertyValueBufferSize,
+         { "Propertyvaluebuffersize", "eventlog6.eventlog6_EvtRpcGetLogFileInfo.propertyValueBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRender_maxSizeString,
+         { "Maxsizestring", "eventlog6.eventlog6_EvtRpcMessageRender.maxSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_actualSizeString,
+         { "Actualsizestring", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.actualSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_numRequestedRecords,
+         { "Numrequestedrecords", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.numRequestedRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcExportLog_backupPath,
+         { "Backuppath", "eventlog6.eventlog6_EvtRpcExportLog.backupPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcCancel_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcCancel.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherResourceMetadata_handle,
+         { "Handle", "eventlog6.eventlog6_EvtRpcGetPublisherResourceMetadata.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetChannelList_numChannelPaths,
+         { "Numchannelpaths", "eventlog6.eventlog6_EvtRpcGetChannelList.numChannelPaths", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetChannelConfig_channelPath,
+         { "Channelpath", "eventlog6.eventlog6_EvtRpcGetChannelConfig.channelPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_stringVal,
+         { "Stringval", "eventlog6.eventlog6_EvtRpcVariantUnion.stringVal", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcVariantUnion_boolean8Array,
+         { "Boolean8array", "eventlog6.eventlog6_EvtRpcVariantUnion.boolean8Array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_numActualRecords,
+         { "Numactualrecords", "eventlog6.eventlog6_EvtRpcQueryNext.numActualRecords", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRetractConfig_path,
+         { "Path", "eventlog6.eventlog6_EvtRpcRetractConfig.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetEventMetadataEnum_pubMetadata,
+         { "Pubmetadata", "eventlog6.eventlog6_EvtRpcGetEventMetadataEnum.pubMetadata", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcMessageRenderDefault_neededSizeString,
+         { "Neededsizestring", "eventlog6.eventlog6_EvtRpcMessageRenderDefault.neededSizeString", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBuffer,
+         { "Resultbuffer", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.resultBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_boolean8Array_ptr,
+         { "Ptr", "eventlog6.eventlog6_boolean8Array.ptr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcClearLog_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcClearLog.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNext_resultBufferSize,
+         { "Resultbuffersize", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNext.resultBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcRemoteSubscriptionNextAsync_eventDataSizes,
+         { "Eventdatasizes", "eventlog6.eventlog6_EvtRpcRemoteSubscriptionNextAsync.eventDataSizes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_eventDataIndices,
+         { "Eventdataindices", "eventlog6.eventlog6_EvtRpcQueryNext.eventDataIndices", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcGetPublisherList_numPublisherIds,
+         { "Numpublisherids", "eventlog6.eventlog6_EvtRpcGetPublisherList.numPublisherIds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcPutChannelConfig_flags,
+         { "Flags", "eventlog6.eventlog6_EvtRpcPutChannelConfig.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcClearLog_channelPath,
+         { "Channelpath", "eventlog6.eventlog6_EvtRpcClearLog.channelPath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_GuidArray_count,
+         { "Count", "eventlog6.eventlog6_GuidArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_eventlog6_eventlog6_EvtRpcQueryNext_logQuery,
+         { "Logquery", "eventlog6.eventlog6_EvtRpcQueryNext.logQuery", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_eventlog6,
+               &ett_eventlog6_eventlog6_RpcInfo,
+               &ett_eventlog6_eventlog6_boolean8Array,
+               &ett_eventlog6_eventlog6_UInt32Array,
+               &ett_eventlog6_eventlog6_UInt64Array,
+               &ett_eventlog6_eventlog6_StringArray,
+               &ett_eventlog6_eventlog6_GuidArray,
+               &ett_eventlog6_eventlog6_EvtRpcVariantUnion,
+               &ett_eventlog6_eventlog6_EvtRpcVariant,
+               &ett_eventlog6_eventlog6_EvtRpcVariantList,
+               &ett_eventlog6_eventlog6_EvtRpcQueryChannelInfo,
+       };
+
+       proto_dcerpc_eventlog6 = proto_register_protocol("Eventlog6", "EVENTLOG6", "eventlog6");
+       proto_register_field_array(proto_dcerpc_eventlog6, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_eventlog6(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_eventlog6, ett_dcerpc_eventlog6,
+               &uuid_dcerpc_eventlog6, ver_dcerpc_eventlog6,
+               eventlog6_dissectors, hf_eventlog6_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.h b/bin/default/librpc/gen_ndr/packet-dcerpc-eventlog6.h
new file mode 100644 (file)
index 0000000..855557f
--- /dev/null
@@ -0,0 +1,95 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog6.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/eventlog6.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_EVENTLOG6_H
+#define __PACKET_DCERPC_EVENTLOG6_H
+
+#define MAX_PAYLOAD    ( 2*1024*1024 )
+
+#define MAX_RPC_QUERY_LENGTH   ( MAX_PAYLOAD/sizeof(uint16_t) )
+
+#define MAX_RPC_CHANNEL_NAME_LENGTH    ( 512 )
+
+#define MAX_RPC_QUERY_CHANNEL_SIZE     ( 512 )
+
+#define MAX_RPC_EVENT_ID_SIZE  ( 256 )
+
+#define MAX_RPC_FILE_PATH_LENGTH       ( 32768 )
+
+#define MAX_RPC_CHANNEL_PATH_LENGTH    ( 32768 )
+
+#define MAX_RPC_BOOKMARK_LENGTH        ( MAX_PAYLOAD/sizeof(uint16_t) )
+
+#define MAX_RPC_PUBLISHER_ID_LENGTH    ( 2048 )
+
+#define MAX_RPC_PROPERTY_BUFFER_SIZE   ( MAX_PAYLOAD )
+
+#define MAX_RPC_FILTER_LENGTH  ( MAX_RPC_QUERY_LENGTH )
+
+#define MAX_RPC_RECORD_COUNT   ( 1024 )
+
+#define MAX_RPC_EVENT_SIZE     ( MAX_PAYLOAD )
+
+#define MAX_RPC_BATCH_SIZE     ( MAX_PAYLOAD )
+
+#define MAX_RPC_RENDERED_STRING_SIZE   ( MAX_PAYLOAD )
+
+#define MAX_RPC_CHANNEL_COUNT  ( 8192 )
+
+#define MAX_RPC_PUBLISHER_COUNT        ( 8192 )
+
+#define MAX_RPC_EVENT_METADATA_COUNT   ( 256 )
+
+#define MAX_RPC_VARIANT_LIST_COUNT     ( 256 )
+
+#define MAX_RPC_BOOLEAN8_ARRAY_COUNT   ( MAX_PAYLOAD/sizeof(uint8_t) )
+
+#define MAX_RPC_UINT32_ARRAY_COUNT     ( MAX_PAYLOAD/sizeof(uint32_t) )
+
+#define MAX_RPC_UINT64_ARRAY_COUNT     ( MAX_PAYLOAD/sizeof(uint64_t) )
+
+#define MAX_RPC_STRING_ARRAY_COUNT     ( MAX_PAYLOAD/512 )
+
+#define MAX_RPC_STRING_LENGTH  ( MAX_PAYLOAD/sizeof(uint16_t) )
+
+int eventlog6_dissect_struct_RpcInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_boolean8Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_UInt32Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_UInt64Array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_StringArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_GuidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define EvtRpcVarTypeNull (0)
+#define EvtRpcVarTypeboolean8 (1)
+#define EvtRpcVarTypeUInt32 (2)
+#define EvtRpcVarTypeUInt64 (3)
+#define EvtRpcVarTypeString (4)
+#define EvtRpcVarTypeGuid (5)
+#define EvtRpcVarTypeboolean8Array (6)
+#define EvtRpcVarTypeUInt32Array (7)
+#define EvtRpcVarTypeUInt64Array (8)
+#define EvtRpcVarTypeStringArray (9)
+#define EvtRpcVarTypeGuidArray (10)
+extern const value_string eventlog6_eventlog6_EvtRpcVariantType_vals[];
+int eventlog6_dissect_enum_EvtRpcVariantType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define EvtRpcChannelPath (0)
+#define EvtRpcPublisherName (1)
+extern const value_string eventlog6_eventlog6_EvtRpcAssertConfigFlags_vals[];
+int eventlog6_dissect_enum_EvtRpcAssertConfigFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int eventlog6_dissect_struct_EvtRpcVariant(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_EvtRpcVariantList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int eventlog6_dissect_struct_EvtRpcQueryChannelInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_EVENTLOG6_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-file_id.c b/bin/default/librpc/gen_ndr/packet-dcerpc-file_id.c
new file mode 100644 (file)
index 0000000..00965b8
--- /dev/null
@@ -0,0 +1,155 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/file_id.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/file_id.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-file_id.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_file_id = -1;
+static gint ett_file_id_file_id = -1;
+
+
+/* Header field declarations */
+static gint hf_file_id_file_id_inode = -1;
+static gint hf_file_id_file_id_extid = -1;
+static gint hf_file_id_opnum = -1;
+static gint hf_file_id_file_id_devid = -1;
+
+static gint proto_dcerpc_file_id = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_file_id = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_file_id = 0;
+
+static int file_id_dissect_element_file_id_devid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int file_id_dissect_element_file_id_inode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int file_id_dissect_element_file_id_extid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        udlong devid; */
+/* IDL:        udlong inode; */
+/* IDL:        udlong extid; */
+/* IDL: } */
+
+static int
+file_id_dissect_element_file_id_devid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_file_id_file_id_devid, NULL);
+
+       return offset;
+}
+
+static int
+file_id_dissect_element_file_id_inode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_file_id_file_id_inode, NULL);
+
+       return offset;
+}
+
+static int
+file_id_dissect_element_file_id_extid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_file_id_file_id_extid, NULL);
+
+       return offset;
+}
+
+int
+file_id_dissect_struct_file_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_file_id_file_id);
+       }
+       
+       offset = file_id_dissect_element_file_id_devid(tvb, offset, pinfo, tree, drep);
+
+       offset = file_id_dissect_element_file_id_inode(tvb, offset, pinfo, tree, drep);
+
+       offset = file_id_dissect_element_file_id_extid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector file_id_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_file_id(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_file_id_file_id_inode,
+         { "Inode", "file_id.file_id.inode", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_file_id_file_id_extid,
+         { "Extid", "file_id.file_id.extid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_file_id_opnum,
+         { "Operation", "file_id.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_file_id_file_id_devid,
+         { "Devid", "file_id.file_id.devid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_file_id,
+               &ett_file_id_file_id,
+       };
+
+       proto_dcerpc_file_id = proto_register_protocol("FILE_ID (pidl)", "FILE_ID", "file_id");
+       proto_register_field_array(proto_dcerpc_file_id, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_file_id(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_file_id, ett_dcerpc_file_id,
+               &uuid_dcerpc_file_id, ver_dcerpc_file_id,
+               file_id_dissectors, hf_file_id_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-file_id.h b/bin/default/librpc/gen_ndr/packet-dcerpc-file_id.h
new file mode 100644 (file)
index 0000000..1df0f28
--- /dev/null
@@ -0,0 +1,20 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/file_id.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/file_id.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_FILE_ID_H
+#define __PACKET_DCERPC_FILE_ID_H
+
+int file_id_dissect_struct_file_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_FILE_ID_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-frsapi.c b/bin/default/librpc/gen_ndr/packet-dcerpc-frsapi.c
new file mode 100644 (file)
index 0000000..aa27dff
--- /dev/null
@@ -0,0 +1,1058 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsapi.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsapi.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-frsapi.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_frsapi = -1;
+static gint ett_frsapi_frsapi_Info = -1;
+
+
+/* Header field declarations */
+static gint hf_frsapi_frsapi_SetDsPollingIntervalW_DsPollingLongInterval = -1;
+static gint hf_frsapi_frsapi_SetDsPollingIntervalW_CurrentInterval = -1;
+static gint hf_frsapi_frsapi_Info_blob_len = -1;
+static gint hf_frsapi_opnum = -1;
+static gint hf_frsapi_frsapi_Info_length2 = -1;
+static gint hf_frsapi_frsapi_Info_unknown2 = -1;
+static gint hf_frsapi_frsapi_SetDsPollingIntervalW_DsPollingShortInterval = -1;
+static gint hf_frsapi_frsapi_Info_offset = -1;
+static gint hf_frsapi_frsapi_Info_level = -1;
+static gint hf_frsapi_werror = -1;
+static gint hf_frsapi_frsapi_Info_blob = -1;
+static gint hf_frsapi_frsapi_GetDsPollingIntervalW_CurrentInterval = -1;
+static gint hf_frsapi_frsapi_IsPathReplicated_root = -1;
+static gint hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingShortInterval = -1;
+static gint hf_frsapi_frsapi_InfoW_length = -1;
+static gint hf_frsapi_frsapi_IsPathReplicated_replicated = -1;
+static gint hf_frsapi_frsapi_ForceReplication_replica_set_name = -1;
+static gint hf_frsapi_frsapi_ForceReplication_partner_dns_name = -1;
+static gint hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingLongInterval = -1;
+static gint hf_frsapi_frsapi_Info_blob_ = -1;
+static gint hf_frsapi_frsapi_IsPathReplicated_replica_set_guid = -1;
+static gint hf_frsapi_frsapi_Info_query_counter = -1;
+static gint hf_frsapi_frsapi_ForceReplication_connection_guid = -1;
+static gint hf_frsapi_frsapi_IsPathReplicated_replica_set_type = -1;
+static gint hf_frsapi_frsapi_IsPathReplicated_primary = -1;
+static gint hf_frsapi_frsapi_WriterCommand_command = -1;
+static gint hf_frsapi_frsapi_ForceReplication_replica_set_guid = -1;
+static gint hf_frsapi_frsapi_Info_guid = -1;
+static gint hf_frsapi_frsapi_Info_length = -1;
+static gint hf_frsapi_frsapi_Info_unknown1 = -1;
+static gint hf_frsapi_frsapi_InfoW_info = -1;
+static gint hf_frsapi_frsapi_IsPathReplicated_path = -1;
+
+static gint proto_dcerpc_frsapi = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_frsapi = {
+       0xd049b186, 0x814f, 0x11d1,
+       { 0x9a, 0x3c, 0x00, 0xc0, 0x4f, 0xc9, 0xb2, 0x32 }
+};
+static guint16 ver_dcerpc_frsapi = 1;
+
+const value_string frsapi_frsapi_InfoEnum_vals[] = {
+       { FRSAPI_INFO_VERSION, "FRSAPI_INFO_VERSION" },
+       { FRSAPI_INFO_SETS, "FRSAPI_INFO_SETS" },
+       { FRSAPI_INFO_DS, "FRSAPI_INFO_DS" },
+       { FRSAPI_INFO_MEMORY, "FRSAPI_INFO_MEMORY" },
+       { FRSAPI_INFO_IDTABLE, "FRSAPI_INFO_IDTABLE" },
+       { FRSAPI_INFO_OUTLOG, "FRSAPI_INFO_OUTLOG" },
+       { FRSAPI_INFO_INLOG, "FRSAPI_INFO_INLOG" },
+       { FRSAPI_INFO_THREADS, "FRSAPI_INFO_THREADS" },
+       { FRSAPI_INFO_STAGE, "FRSAPI_INFO_STAGE" },
+       { FRSAPI_INFO_CONFIGTABLE, "FRSAPI_INFO_CONFIGTABLE" },
+{ 0, NULL }
+};
+static int frsapi_dissect_element_Info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_length2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_query_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_blob_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_Info_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frsapi_frsapi_ReplicaSetType_vals[] = {
+       { FRSAPI_REPLICA_SET_TYPE_0, "FRSAPI_REPLICA_SET_TYPE_0" },
+       { FRSAPI_REPLICA_SET_TYPE_DOMAIN, "FRSAPI_REPLICA_SET_TYPE_DOMAIN" },
+       { FRSAPI_REPLICA_SET_TYPE_DFS, "FRSAPI_REPLICA_SET_TYPE_DFS" },
+{ 0, NULL }
+};
+const value_string frsapi_frsapi_WriterCommandsValues_vals[] = {
+       { FRSAPI_WRITER_COMMAND_FREEZE, "FRSAPI_WRITER_COMMAND_FREEZE" },
+       { FRSAPI_WRITER_COMMAND_THAW, "FRSAPI_WRITER_COMMAND_THAW" },
+{ 0, NULL }
+};
+static int frsapi_dissect_element_SetDsPollingIntervalW_CurrentInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_SetDsPollingIntervalW_DsPollingLongInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_SetDsPollingIntervalW_DsPollingShortInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_GetDsPollingIntervalW_CurrentInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_GetDsPollingIntervalW_CurrentInterval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_GetDsPollingIntervalW_DsPollingLongInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_GetDsPollingIntervalW_DsPollingLongInterval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_GetDsPollingIntervalW_DsPollingShortInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_GetDsPollingIntervalW_DsPollingShortInterval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_InfoW_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_InfoW_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_InfoW_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_replicated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_replicated_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_primary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_IsPathReplicated_replica_set_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_WriterCommand_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_replica_set_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_connection_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_partner_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsapi_dissect_element_ForceReplication_partner_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        FRSAPI_INFO_VERSION=0, */
+/* IDL:        FRSAPI_INFO_SETS=1, */
+/* IDL:        FRSAPI_INFO_DS=2, */
+/* IDL:        FRSAPI_INFO_MEMORY=3, */
+/* IDL:        FRSAPI_INFO_IDTABLE=4, */
+/* IDL:        FRSAPI_INFO_OUTLOG=5, */
+/* IDL:        FRSAPI_INFO_INLOG=6, */
+/* IDL:        FRSAPI_INFO_THREADS=7, */
+/* IDL:        FRSAPI_INFO_STAGE=8, */
+/* IDL:        FRSAPI_INFO_CONFIGTABLE=9, */
+/* IDL: } */
+
+int
+frsapi_dissect_enum_InfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 length; */
+/* IDL:        GUID guid; */
+/* IDL:        uint32 length2; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        frsapi_InfoEnum level; */
+/* IDL:        uint32 query_counter; */
+/* IDL:        uint32 unknown2; */
+/* IDL:        uint32 offset; */
+/* IDL:        uint32 blob_len; */
+/* IDL:        [subcontext_size(length-offset)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB blob; */
+/* IDL: } */
+
+static int
+frsapi_dissect_element_Info_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_length, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_length2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_length2, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_unknown1, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsapi_dissect_enum_InfoEnum(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_level, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_query_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_query_counter, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_unknown2, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_offset, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_blob_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_blob_len, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_blob_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsapi_dissect_element_Info_blob_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_Info_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_Info_blob, 1);
+
+       return offset;
+}
+
+int
+frsapi_dissect_struct_Info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsapi_frsapi_Info);
+       }
+       
+       offset = frsapi_dissect_element_Info_length(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_length2(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_level(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_query_counter(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_blob_len(tvb, offset, pinfo, tree, drep);
+
+       offset = frsapi_dissect_element_Info_blob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSAPI_REPLICA_SET_TYPE_0=0x00000000, */
+/* IDL:        FRSAPI_REPLICA_SET_TYPE_DOMAIN=0x00000002, */
+/* IDL:        FRSAPI_REPLICA_SET_TYPE_DFS=0x00000003, */
+/* IDL: } */
+
+int
+frsapi_dissect_enum_ReplicaSetType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSAPI_WRITER_COMMAND_FREEZE=0x00000001, */
+/* IDL:        FRSAPI_WRITER_COMMAND_THAW=0x00000002, */
+/* IDL: } */
+
+int
+frsapi_dissect_enum_WriterCommandsValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+/* IDL: void FRSAPI_VERIFY_PROMOTION( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsapi_dissect_FRSAPI_VERIFY_PROMOTION_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_VERIFY_PROMOTION";
+       return offset;
+}
+
+static int
+frsapi_dissect_FRSAPI_VERIFY_PROMOTION_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_VERIFY_PROMOTION";
+       return offset;
+}
+
+/* IDL: void FRSAPI_PROMOTION_STATUS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsapi_dissect_FRSAPI_PROMOTION_STATUS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_PROMOTION_STATUS";
+       return offset;
+}
+
+static int
+frsapi_dissect_FRSAPI_PROMOTION_STATUS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_PROMOTION_STATUS";
+       return offset;
+}
+
+/* IDL: void FRSAPI_START_DEMOTION( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsapi_dissect_FRSAPI_START_DEMOTION_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_START_DEMOTION";
+       return offset;
+}
+
+static int
+frsapi_dissect_FRSAPI_START_DEMOTION_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_START_DEMOTION";
+       return offset;
+}
+
+/* IDL: void FRSAPI_COMMIT_DEMOTION( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsapi_dissect_FRSAPI_COMMIT_DEMOTION_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_COMMIT_DEMOTION";
+       return offset;
+}
+
+static int
+frsapi_dissect_FRSAPI_COMMIT_DEMOTION_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_COMMIT_DEMOTION";
+       return offset;
+}
+
+static int
+frsapi_dissect_element_SetDsPollingIntervalW_CurrentInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_SetDsPollingIntervalW_CurrentInterval, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_SetDsPollingIntervalW_DsPollingLongInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_SetDsPollingIntervalW_DsPollingLongInterval, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_SetDsPollingIntervalW_DsPollingShortInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_SetDsPollingIntervalW_DsPollingShortInterval, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR frsapi_SetDsPollingIntervalW( */
+/* IDL: [in] uint32 CurrentInterval, */
+/* IDL: [in] uint32 DsPollingLongInterval, */
+/* IDL: [in] uint32 DsPollingShortInterval */
+/* IDL: ); */
+
+static int
+frsapi_dissect_SetDsPollingIntervalW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetDsPollingIntervalW";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsapi_dissect_SetDsPollingIntervalW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetDsPollingIntervalW";
+       offset = frsapi_dissect_element_SetDsPollingIntervalW_CurrentInterval(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_SetDsPollingIntervalW_DsPollingLongInterval(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_SetDsPollingIntervalW_DsPollingShortInterval(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frsapi_dissect_element_GetDsPollingIntervalW_CurrentInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_GetDsPollingIntervalW_CurrentInterval_, NDR_POINTER_REF, "Pointer to Currentinterval (uint32)",hf_frsapi_frsapi_GetDsPollingIntervalW_CurrentInterval);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_GetDsPollingIntervalW_CurrentInterval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_GetDsPollingIntervalW_CurrentInterval, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_GetDsPollingIntervalW_DsPollingLongInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_GetDsPollingIntervalW_DsPollingLongInterval_, NDR_POINTER_REF, "Pointer to Dspollinglonginterval (uint32)",hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingLongInterval);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_GetDsPollingIntervalW_DsPollingLongInterval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingLongInterval, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_GetDsPollingIntervalW_DsPollingShortInterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_GetDsPollingIntervalW_DsPollingShortInterval_, NDR_POINTER_REF, "Pointer to Dspollingshortinterval (uint32)",hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingShortInterval);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_GetDsPollingIntervalW_DsPollingShortInterval_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingShortInterval, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR frsapi_GetDsPollingIntervalW( */
+/* IDL: [out] [ref] uint32 *CurrentInterval, */
+/* IDL: [out] [ref] uint32 *DsPollingLongInterval, */
+/* IDL: [out] [ref] uint32 *DsPollingShortInterval */
+/* IDL: ); */
+
+static int
+frsapi_dissect_GetDsPollingIntervalW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetDsPollingIntervalW";
+       offset = frsapi_dissect_element_GetDsPollingIntervalW_CurrentInterval(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frsapi_dissect_element_GetDsPollingIntervalW_DsPollingLongInterval(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frsapi_dissect_element_GetDsPollingIntervalW_DsPollingShortInterval(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsapi_dissect_GetDsPollingIntervalW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetDsPollingIntervalW";
+       return offset;
+}
+
+/* IDL: void FRSAPI_VERIFY_PROMOTION_W( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsapi_dissect_FRSAPI_VERIFY_PROMOTION_W_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_VERIFY_PROMOTION_W";
+       return offset;
+}
+
+static int
+frsapi_dissect_FRSAPI_VERIFY_PROMOTION_W_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSAPI_VERIFY_PROMOTION_W";
+       return offset;
+}
+
+static int
+frsapi_dissect_element_InfoW_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_InfoW_length, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_InfoW_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_InfoW_info_, NDR_POINTER_UNIQUE, "Pointer to Info (frsapi_Info)",hf_frsapi_frsapi_InfoW_info);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_InfoW_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsapi_dissect_struct_Info(tvb,offset,pinfo,tree,drep,hf_frsapi_frsapi_InfoW_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR frsapi_InfoW( */
+/* IDL: [in] [range(0,0x10000)] uint32 length, */
+/* IDL: [out] [unique(1)] [in] frsapi_Info *info */
+/* IDL: ); */
+
+static int
+frsapi_dissect_InfoW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="InfoW";
+       offset = frsapi_dissect_element_InfoW_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsapi_dissect_InfoW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="InfoW";
+       offset = frsapi_dissect_element_InfoW_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_InfoW_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_IsPathReplicated_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_frsapi_frsapi_IsPathReplicated_path);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsapi_frsapi_IsPathReplicated_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsapi_dissect_enum_ReplicaSetType(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_IsPathReplicated_replica_set_type, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_replicated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_IsPathReplicated_replicated_, NDR_POINTER_REF, "Pointer to Replicated (uint32)",hf_frsapi_frsapi_IsPathReplicated_replicated);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_replicated_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_IsPathReplicated_replicated, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_IsPathReplicated_primary_, NDR_POINTER_REF, "Pointer to Primary (uint32)",hf_frsapi_frsapi_IsPathReplicated_primary);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_primary_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_IsPathReplicated_primary, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_IsPathReplicated_root_, NDR_POINTER_REF, "Pointer to Root (uint32)",hf_frsapi_frsapi_IsPathReplicated_root);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_IsPathReplicated_root, 0);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_IsPathReplicated_replica_set_guid_, NDR_POINTER_REF, "Pointer to Replica Set Guid (GUID)",hf_frsapi_frsapi_IsPathReplicated_replica_set_guid);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_IsPathReplicated_replica_set_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_IsPathReplicated_replica_set_guid, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR frsapi_IsPathReplicated( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *path, */
+/* IDL: [in] frsapi_ReplicaSetType replica_set_type, */
+/* IDL: [out] [ref] uint32 *replicated, */
+/* IDL: [out] [ref] uint32 *primary, */
+/* IDL: [out] [ref] uint32 *root, */
+/* IDL: [out] [ref] GUID *replica_set_guid */
+/* IDL: ); */
+
+static int
+frsapi_dissect_IsPathReplicated_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="IsPathReplicated";
+       offset = frsapi_dissect_element_IsPathReplicated_replicated(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frsapi_dissect_element_IsPathReplicated_primary(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frsapi_dissect_element_IsPathReplicated_root(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frsapi_dissect_element_IsPathReplicated_replica_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsapi_dissect_IsPathReplicated_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="IsPathReplicated";
+       offset = frsapi_dissect_element_IsPathReplicated_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_IsPathReplicated_replica_set_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frsapi_dissect_element_WriterCommand_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsapi_dissect_enum_WriterCommandsValues(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_WriterCommand_command, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR frsapi_WriterCommand( */
+/* IDL: [in] frsapi_WriterCommandsValues command */
+/* IDL: ); */
+
+static int
+frsapi_dissect_WriterCommand_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="WriterCommand";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsapi_dissect_WriterCommand_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="WriterCommand";
+       offset = frsapi_dissect_element_WriterCommand_command(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_ForceReplication_replica_set_guid_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Guid (GUID)",hf_frsapi_frsapi_ForceReplication_replica_set_guid);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_replica_set_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_ForceReplication_replica_set_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_ForceReplication_connection_guid_, NDR_POINTER_UNIQUE, "Pointer to Connection Guid (GUID)",hf_frsapi_frsapi_ForceReplication_connection_guid);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_connection_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsapi_frsapi_ForceReplication_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_ForceReplication_replica_set_name_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Name (uint16)",hf_frsapi_frsapi_ForceReplication_replica_set_name);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsapi_frsapi_ForceReplication_replica_set_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_partner_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsapi_dissect_element_ForceReplication_partner_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Partner Dns Name (uint16)",hf_frsapi_frsapi_ForceReplication_partner_dns_name);
+
+       return offset;
+}
+
+static int
+frsapi_dissect_element_ForceReplication_partner_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsapi_frsapi_ForceReplication_partner_dns_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR frsapi_ForceReplication( */
+/* IDL: [unique(1)] [in] GUID *replica_set_guid, */
+/* IDL: [unique(1)] [in] GUID *connection_guid, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *replica_set_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *partner_dns_name */
+/* IDL: ); */
+
+static int
+frsapi_dissect_ForceReplication_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ForceReplication";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsapi_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsapi_dissect_ForceReplication_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ForceReplication";
+       offset = frsapi_dissect_element_ForceReplication_replica_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_ForceReplication_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_ForceReplication_replica_set_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsapi_dissect_element_ForceReplication_partner_dns_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector frsapi_dissectors[] = {
+       { 0, "FRSAPI_VERIFY_PROMOTION",
+          frsapi_dissect_FRSAPI_VERIFY_PROMOTION_request, frsapi_dissect_FRSAPI_VERIFY_PROMOTION_response},
+       { 1, "FRSAPI_PROMOTION_STATUS",
+          frsapi_dissect_FRSAPI_PROMOTION_STATUS_request, frsapi_dissect_FRSAPI_PROMOTION_STATUS_response},
+       { 2, "FRSAPI_START_DEMOTION",
+          frsapi_dissect_FRSAPI_START_DEMOTION_request, frsapi_dissect_FRSAPI_START_DEMOTION_response},
+       { 3, "FRSAPI_COMMIT_DEMOTION",
+          frsapi_dissect_FRSAPI_COMMIT_DEMOTION_request, frsapi_dissect_FRSAPI_COMMIT_DEMOTION_response},
+       { 4, "SetDsPollingIntervalW",
+          frsapi_dissect_SetDsPollingIntervalW_request, frsapi_dissect_SetDsPollingIntervalW_response},
+       { 5, "GetDsPollingIntervalW",
+          frsapi_dissect_GetDsPollingIntervalW_request, frsapi_dissect_GetDsPollingIntervalW_response},
+       { 6, "FRSAPI_VERIFY_PROMOTION_W",
+          frsapi_dissect_FRSAPI_VERIFY_PROMOTION_W_request, frsapi_dissect_FRSAPI_VERIFY_PROMOTION_W_response},
+       { 7, "InfoW",
+          frsapi_dissect_InfoW_request, frsapi_dissect_InfoW_response},
+       { 8, "IsPathReplicated",
+          frsapi_dissect_IsPathReplicated_request, frsapi_dissect_IsPathReplicated_response},
+       { 9, "WriterCommand",
+          frsapi_dissect_WriterCommand_request, frsapi_dissect_WriterCommand_response},
+       { 10, "ForceReplication",
+          frsapi_dissect_ForceReplication_request, frsapi_dissect_ForceReplication_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_frsapi(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_frsapi_frsapi_SetDsPollingIntervalW_DsPollingLongInterval,
+         { "Dspollinglonginterval", "frsapi.frsapi_SetDsPollingIntervalW.DsPollingLongInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_SetDsPollingIntervalW_CurrentInterval,
+         { "Currentinterval", "frsapi.frsapi_SetDsPollingIntervalW.CurrentInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_blob_len,
+         { "Blob Len", "frsapi.frsapi_Info.blob_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_opnum,
+         { "Operation", "frsapi.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_length2,
+         { "Length2", "frsapi.frsapi_Info.length2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_unknown2,
+         { "Unknown2", "frsapi.frsapi_Info.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_SetDsPollingIntervalW_DsPollingShortInterval,
+         { "Dspollingshortinterval", "frsapi.frsapi_SetDsPollingIntervalW.DsPollingShortInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_offset,
+         { "Offset", "frsapi.frsapi_Info.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_level,
+         { "Level", "frsapi.frsapi_Info.level", FT_UINT32, BASE_DEC, VALS(frsapi_frsapi_InfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_frsapi_werror,
+         { "Windows Error", "frsapi.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_blob,
+         { "Blob", "frsapi.frsapi_Info.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_GetDsPollingIntervalW_CurrentInterval,
+         { "Currentinterval", "frsapi.frsapi_GetDsPollingIntervalW.CurrentInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_IsPathReplicated_root,
+         { "Root", "frsapi.frsapi_IsPathReplicated.root", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingShortInterval,
+         { "Dspollingshortinterval", "frsapi.frsapi_GetDsPollingIntervalW.DsPollingShortInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_InfoW_length,
+         { "Length", "frsapi.frsapi_InfoW.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_IsPathReplicated_replicated,
+         { "Replicated", "frsapi.frsapi_IsPathReplicated.replicated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_ForceReplication_replica_set_name,
+         { "Replica Set Name", "frsapi.frsapi_ForceReplication.replica_set_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_ForceReplication_partner_dns_name,
+         { "Partner Dns Name", "frsapi.frsapi_ForceReplication.partner_dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_GetDsPollingIntervalW_DsPollingLongInterval,
+         { "Dspollinglonginterval", "frsapi.frsapi_GetDsPollingIntervalW.DsPollingLongInterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_blob_,
+         { "Subcontext length", "frsapi.frsapi_Info.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_IsPathReplicated_replica_set_guid,
+         { "Replica Set Guid", "frsapi.frsapi_IsPathReplicated.replica_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_query_counter,
+         { "Query Counter", "frsapi.frsapi_Info.query_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_ForceReplication_connection_guid,
+         { "Connection Guid", "frsapi.frsapi_ForceReplication.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_IsPathReplicated_replica_set_type,
+         { "Replica Set Type", "frsapi.frsapi_IsPathReplicated.replica_set_type", FT_UINT32, BASE_DEC, VALS(frsapi_frsapi_ReplicaSetType_vals), 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_IsPathReplicated_primary,
+         { "Primary", "frsapi.frsapi_IsPathReplicated.primary", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_WriterCommand_command,
+         { "Command", "frsapi.frsapi_WriterCommand.command", FT_UINT32, BASE_DEC, VALS(frsapi_frsapi_WriterCommandsValues_vals), 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_ForceReplication_replica_set_guid,
+         { "Replica Set Guid", "frsapi.frsapi_ForceReplication.replica_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_guid,
+         { "Guid", "frsapi.frsapi_Info.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_length,
+         { "Length", "frsapi.frsapi_Info.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_Info_unknown1,
+         { "Unknown1", "frsapi.frsapi_Info.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_InfoW_info,
+         { "Info", "frsapi.frsapi_InfoW.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsapi_frsapi_IsPathReplicated_path,
+         { "Path", "frsapi.frsapi_IsPathReplicated.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_frsapi,
+               &ett_frsapi_frsapi_Info,
+       };
+
+       proto_dcerpc_frsapi = proto_register_protocol("File Replication API", "FRSAPI", "frsapi");
+       proto_register_field_array(proto_dcerpc_frsapi, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_frsapi(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_frsapi, ett_dcerpc_frsapi,
+               &uuid_dcerpc_frsapi, ver_dcerpc_frsapi,
+               frsapi_dissectors, hf_frsapi_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-frsapi.h b/bin/default/librpc/gen_ndr/packet-dcerpc-frsapi.h
new file mode 100644 (file)
index 0000000..199c177
--- /dev/null
@@ -0,0 +1,43 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsapi.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsapi.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_FRSAPI_H
+#define __PACKET_DCERPC_FRSAPI_H
+
+#define FRSAPI_INFO_VERSION (0)
+#define FRSAPI_INFO_SETS (1)
+#define FRSAPI_INFO_DS (2)
+#define FRSAPI_INFO_MEMORY (3)
+#define FRSAPI_INFO_IDTABLE (4)
+#define FRSAPI_INFO_OUTLOG (5)
+#define FRSAPI_INFO_INLOG (6)
+#define FRSAPI_INFO_THREADS (7)
+#define FRSAPI_INFO_STAGE (8)
+#define FRSAPI_INFO_CONFIGTABLE (9)
+extern const value_string frsapi_frsapi_InfoEnum_vals[];
+int frsapi_dissect_enum_InfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsapi_dissect_struct_Info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSAPI_REPLICA_SET_TYPE_0 (0x00000000)
+#define FRSAPI_REPLICA_SET_TYPE_DOMAIN (0x00000002)
+#define FRSAPI_REPLICA_SET_TYPE_DFS (0x00000003)
+extern const value_string frsapi_frsapi_ReplicaSetType_vals[];
+int frsapi_dissect_enum_ReplicaSetType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSAPI_WRITER_COMMAND_FREEZE (0x00000001)
+#define FRSAPI_WRITER_COMMAND_THAW (0x00000002)
+extern const value_string frsapi_frsapi_WriterCommandsValues_vals[];
+int frsapi_dissect_enum_WriterCommandsValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_FRSAPI_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.c
new file mode 100644 (file)
index 0000000..42f40e0
--- /dev/null
@@ -0,0 +1,4194 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsrpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsrpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-frsrpc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_frsrpc = -1;
+static gint ett_frsrpc_frsrpc_CommPktChunkGuidName = -1;
+static gint ett_frsrpc_frsrpc_CommPktGSVN = -1;
+static gint ett_frsrpc_frsrpc_CommPktCoCmdFlags = -1;
+static gint ett_frsrpc_frsrpc_CommPktCoCmdIFlags = -1;
+static gint ett_frsrpc_frsrpc_CommPktCoCmdContentCmd = -1;
+static gint ett_frsrpc_frsrpc_CommPktChangeOrderCommand = -1;
+static gint ett_frsrpc_frsrpc_CommPktDataExtensionChecksum = -1;
+static gint ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout = -1;
+static gint ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k = -1;
+static gint ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension = -1;
+static gint ett_frsrpc_frsrpc_CommPktChunkData = -1;
+static gint ett_frsrpc_frsrpc_CommPktChunk = -1;
+static gint ett_frsrpc_frsrpc_CommPktChunkCtr = -1;
+static gint ett_frsrpc_frsrpc_FrsSendCommPktReq = -1;
+
+
+/* Header field declarations */
+static gint hf_frsrpc_frsrpc_CommPktChunkData_to = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid = -1;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2 = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status = -1;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1 = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_ = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn = -1;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunk_data = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_ = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPkt_req = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4 = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2 = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_file_size = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_ = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkCtr_chunks = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_command = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_major = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1 = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_from = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkCtr_num_chunks = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_compression_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account = -1;
+static gint hf_frsrpc_frsrpc_CommPktGSVN_vsn = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2 = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_blob = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunk_data_ = -1;
+static gint hf_frsrpc_werror = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_guid = -1;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_extension2 = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1 = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_block_size = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_name = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_vvector_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_bop = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0 = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_file_offset = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1 = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_bopend = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkGuidName_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_last_join_time = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_co_guid_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunk_type = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_gvsn = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_replica = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3 = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name = -1;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_block = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_remote_co_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1 = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE = -1;
+static gint hf_frsrpc_opnum = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time_ = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_connection = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_minor = -1;
+static gint hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD = -1;
+static gint hf_frsrpc_frsrpc_CommPktGSVN_guid = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION = -1;
+static gint hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size = -1;
+static gint hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_ = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags = -1;
+static gint hf_frsrpc_frsrpc_CommPktChunkData_join_time = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs = -1;
+static gint hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num = -1;
+static gint hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED = -1;
+static gint hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE = -1;
+
+static gint proto_dcerpc_frsrpc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_frsrpc = {
+       0xf5cc59b4, 0x4264, 0x101a,
+       { 0x8c, 0x59, 0x08, 0x00, 0x2b, 0x2f, 0x84, 0x26 }
+};
+static guint16 ver_dcerpc_frsrpc = 1;
+
+static int frsrpc_dissect_element_CommPktChunkGuidName_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkGuidName_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkGuidName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkGuidName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktGSVN_vsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktGSVN_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO_tfs = {
+   "FRSRPC_CO_FLAG_ABORT_CO is SET",
+   "FRSRPC_CO_FLAG_ABORT_CO is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED_tfs = {
+   "FRSRPC_CO_FLAG_VV_ACTIVATED is SET",
+   "FRSRPC_CO_FLAG_VV_ACTIVATED is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD_tfs = {
+   "FRSRPC_CO_FLAG_CONTENT_CMD is SET",
+   "FRSRPC_CO_FLAG_CONTENT_CMD is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD_tfs = {
+   "FRSRPC_CO_FLAG_LOCATION_CMD is SET",
+   "FRSRPC_CO_FLAG_LOCATION_CMD is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST_tfs = {
+   "FRSRPC_CO_FLAG_ONLIST is SET",
+   "FRSRPC_CO_FLAG_ONLIST is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO_tfs = {
+   "FRSRPC_CO_FLAG_LOCALCO is SET",
+   "FRSRPC_CO_FLAG_LOCALCO is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY_tfs = {
+   "FRSRPC_CO_FLAG_RETRY is SET",
+   "FRSRPC_CO_FLAG_RETRY is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER_tfs = {
+   "FRSRPC_CO_FLAG_OUT_OF_ORDER is SET",
+   "FRSRPC_CO_FLAG_OUT_OF_ORDER is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE_tfs = {
+   "FRSRPC_CO_FLAG_NEW_FILE is SET",
+   "FRSRPC_CO_FLAG_NEW_FILE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL_tfs = {
+   "FRSRPC_CO_FLAG_CONTROL is SET",
+   "FRSRPC_CO_FLAG_CONTROL is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO_tfs = {
+   "FRSRPC_CO_FLAG_DIRECTED_CO is SET",
+   "FRSRPC_CO_FLAG_DIRECTED_CO is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG_tfs = {
+   "FRSRPC_CO_FLAG_VVJOIN_TO_ORIG is SET",
+   "FRSRPC_CO_FLAG_VVJOIN_TO_ORIG is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C_tfs = {
+   "FRSRPC_CO_FLAG_SKIP_ORIG_REC_C is SET",
+   "FRSRPC_CO_FLAG_SKIP_ORIG_REC_C is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN_tfs = {
+   "FRSRPC_CO_FLAG_MOVEIN_GEN is SET",
+   "FRSRPC_CO_FLAG_MOVEIN_GEN is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD_tfs = {
+   "FRSRPC_CO_FLAG_MORPH_GEN_HEAD is SET",
+   "FRSRPC_CO_FLAG_MORPH_GEN_HEAD is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET_tfs = {
+   "FRSRPC_CO_FLAG_JUST_OID_RESET is SET",
+   "FRSRPC_CO_FLAG_JUST_OID_RESET is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE_tfs = {
+   "FRSRPC_CO_FLAG_COMPRESSED_STAGE is SET",
+   "FRSRPC_CO_FLAG_COMPRESSED_STAGE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE_tfs = {
+   "FRSRPC_CO_FLAG_SKIP_VV_UPDATE is SET",
+   "FRSRPC_CO_FLAG_SKIP_VV_UPDATE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC_tfs = {
+   "FRSRPC_CO_IFLAG_VVRETIRE_EXEC is SET",
+   "FRSRPC_CO_IFLAG_VVRETIRE_EXEC is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT_tfs = {
+   "FRSRPC_CO_IFLAG_CO_ABORT is SET",
+   "FRSRPC_CO_IFLAG_CO_ABORT is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING_tfs = {
+   "FRSRPC_CO_IFLAG_DIR_ENUM_PENDING is SET",
+   "FRSRPC_CO_IFLAG_DIR_ENUM_PENDING is NOT SET",
+};
+const value_string frsrpc_frsrpc_CommPktCoCmdStatus_vals[] = {
+       { FRSRPC_CO_STATUS_CO_ENTERED_LOG, "FRSRPC_CO_STATUS_CO_ENTERED_LOG" },
+       { FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO, "FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO" },
+       { FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED, "FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED" },
+       { FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED, "FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED" },
+       { FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING, "FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING" },
+       { FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO, "FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO" },
+       { FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED, "FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED" },
+       { FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED, "FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED" },
+       { FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING, "FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED, "FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_STARTED, "FRSRPC_CO_STATUS_FILE_INSTALL_STARTED" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED, "FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY, "FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING, "FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING, "FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING" },
+       { FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING, "FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING" },
+       { FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM, "FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM" },
+       { FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION, "FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION" },
+       { FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG, "FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG" },
+       { FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED, "FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED" },
+       { FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED, "FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED" },
+       { FRSRPC_CO_STATUS_CO_ABORTED, "FRSRPC_CO_STATUS_CO_ABORTED" },
+{ 0, NULL }
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE_tfs = {
+   "FRSRPC_CONTENT_REASON_DATA_OVERWRITE is SET",
+   "FRSRPC_CONTENT_REASON_DATA_OVERWRITE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND_tfs = {
+   "FRSRPC_CONTENT_REASON_DATA_EXTEND is SET",
+   "FRSRPC_CONTENT_REASON_DATA_EXTEND is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION_tfs = {
+   "FRSRPC_CONTENT_REASON_DATA_TRUNCATION is SET",
+   "FRSRPC_CONTENT_REASON_DATA_TRUNCATION is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE_tfs = {
+   "FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE is SET",
+   "FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND_tfs = {
+   "FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND is SET",
+   "FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION_tfs = {
+   "FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION is SET",
+   "FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE_tfs = {
+   "FRSRPC_CONTENT_REASON_FILE_CREATE is SET",
+   "FRSRPC_CONTENT_REASON_FILE_CREATE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE_tfs = {
+   "FRSRPC_CONTENT_REASON_FILE_DELETE is SET",
+   "FRSRPC_CONTENT_REASON_FILE_DELETE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE_tfs = {
+   "FRSRPC_CONTENT_REASON_EA_CHANGE is SET",
+   "FRSRPC_CONTENT_REASON_EA_CHANGE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE_tfs = {
+   "FRSRPC_CONTENT_REASON_SECURITY_CHANGE is SET",
+   "FRSRPC_CONTENT_REASON_SECURITY_CHANGE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME_tfs = {
+   "FRSRPC_CONTENT_REASON_OLD_NAME is SET",
+   "FRSRPC_CONTENT_REASON_OLD_NAME is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME_tfs = {
+   "FRSRPC_CONTENT_REASON_NEW_NAME is SET",
+   "FRSRPC_CONTENT_REASON_NEW_NAME is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE_tfs = {
+   "FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE is SET",
+   "FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE is NOT SET",
+};
+static const true_false_string frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE_tfs = {
+   "FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE is SET",
+   "FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE is NOT SET",
+};
+const value_string frsrpc_frsrpc_CommPktCoCmdLocationCmd_vals[] = {
+       { FRSRPC_CO_LOCATION_FILE_CREATE, "FRSRPC_CO_LOCATION_FILE_CREATE" },
+       { FRSRPC_CO_LOCATION_DIR_CREATE, "FRSRPC_CO_LOCATION_DIR_CREATE" },
+       { FRSRPC_CO_LOCATION_FILE_DELETE, "FRSRPC_CO_LOCATION_FILE_DELETE" },
+       { FRSRPC_CO_LOCATION_DIR_DELETE, "FRSRPC_CO_LOCATION_DIR_DELETE" },
+       { FRSRPC_CO_LOCATION_FILE_MOVEIN, "FRSRPC_CO_LOCATION_FILE_MOVEIN" },
+       { FRSRPC_CO_LOCATION_DIR_MOVEIN, "FRSRPC_CO_LOCATION_DIR_MOVEIN" },
+       { FRSRPC_CO_LOCATION_FILE_MOVEIN2, "FRSRPC_CO_LOCATION_FILE_MOVEIN2" },
+       { FRSRPC_CO_LOCATION_DIR_MOVEIN2, "FRSRPC_CO_LOCATION_DIR_MOVEIN2" },
+       { FRSRPC_CO_LOCATION_FILE_MOVEOUT, "FRSRPC_CO_LOCATION_FILE_MOVEOUT" },
+       { FRSRPC_CO_LOCATION_DIR_MOVEOUT, "FRSRPC_CO_LOCATION_DIR_MOVEOUT" },
+       { FRSRPC_CO_LOCATION_FILE_MOVERS, "FRSRPC_CO_LOCATION_FILE_MOVERS" },
+       { FRSRPC_CO_LOCATION_DIR_MOVERS, "FRSRPC_CO_LOCATION_DIR_MOVERS" },
+       { FRSRPC_CO_LOCATION_FILE_MOVEDIR, "FRSRPC_CO_LOCATION_FILE_MOVEDIR" },
+       { FRSRPC_CO_LOCATION_DIR_MOVEDIR, "FRSRPC_CO_LOCATION_DIR_MOVEDIR" },
+       { FRSRPC_CO_LOCATION_FILE_NO_CMD, "FRSRPC_CO_LOCATION_FILE_NO_CMD" },
+       { FRSRPC_CO_LOCATION_DIR_NO_CMD, "FRSRPC_CO_LOCATION_DIR_NO_CMD" },
+{ 0, NULL }
+};
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_iflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_content_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_location_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_version_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_partern_ack_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_frs_vsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_first_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_original_replica_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_new_replica_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_change_order_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_originator_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_old_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_new_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_ack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2ul1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2guid_p1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare3guid_p2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare1wcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2wcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_spare2bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_event_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderCommand_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frsrpc_frsrpc_CommPktDataExtensionType_vals[] = {
+       { FRSRPC_DATA_EXTENSION_TERMINATOR, "FRSRPC_DATA_EXTENSION_TERMINATOR" },
+       { FRSRPC_DATA_EXTENSION_MD5_CHECKSUM, "FRSRPC_DATA_EXTENSION_MD5_CHECKSUM" },
+       { FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT, "FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT" },
+{ 0, NULL }
+};
+static int frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_first_try_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals[] = {
+       { FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K, "FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K" },
+       { FRSRPC_CO_RECORD_EXTENSION_VERSION_1, "FRSRPC_CO_RECORD_EXTENSION_VERSION_1" },
+{ 0, NULL }
+};
+static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_field_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_last(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_field_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_last(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frsrpc_frsrpc_CommPktCommand_vals[] = {
+       { FRSRPC_COMMAND_REMOTE_CO, "FRSRPC_COMMAND_REMOTE_CO" },
+       { FRSRPC_COMMAND_RECEIVING_STATE, "FRSRPC_COMMAND_RECEIVING_STATE" },
+       { FRSRPC_COMMAND_REMOTE_CO_DONE, "FRSRPC_COMMAND_REMOTE_CO_DONE" },
+       { FRSRPC_COMMAND_ABORT_FETCH, "FRSRPC_COMMAND_ABORT_FETCH" },
+       { FRSRPC_COMMAND_RETRY_FETCH, "FRSRPC_COMMAND_RETRY_FETCH" },
+       { FRSRPC_COMMAND_NEED_JOIN, "FRSRPC_COMMAND_NEED_JOIN" },
+       { FRSRPC_COMMAND_START_JOIN, "FRSRPC_COMMAND_START_JOIN" },
+       { FRSRPC_COMMAND_JOINING, "FRSRPC_COMMAND_JOINING" },
+       { FRSRPC_COMMAND_JOINED, "FRSRPC_COMMAND_JOINED" },
+       { FRSRPC_COMMAND_UNJOIN_REMOTE, "FRSRPC_COMMAND_UNJOIN_REMOTE" },
+       { FRSRPC_COMMAND_WJOIN_DONE, "FRSRPC_COMMAND_WJOIN_DONE" },
+       { FRSRPC_COMMAND_SEND_STAGE, "FRSRPC_COMMAND_SEND_STAGE" },
+{ 0, NULL }
+};
+const value_string frsrpc_frsrpc_CommPktChunkType_vals[] = {
+       { FRSRPC_COMM_PKT_CHUNK_BOP, "FRSRPC_COMM_PKT_CHUNK_BOP" },
+       { FRSRPC_COMM_PKT_CHUNK_COMMAND, "FRSRPC_COMM_PKT_CHUNK_COMMAND" },
+       { FRSRPC_COMM_PKT_CHUNK_TO, "FRSRPC_COMM_PKT_CHUNK_TO" },
+       { FRSRPC_COMM_PKT_CHUNK_FROM, "FRSRPC_COMM_PKT_CHUNK_FROM" },
+       { FRSRPC_COMM_PKT_CHUNK_REPLICA, "FRSRPC_COMM_PKT_CHUNK_REPLICA" },
+       { FRSRPC_COMM_PKT_CHUNK_CONNECTION, "FRSRPC_COMM_PKT_CHUNK_CONNECTION" },
+       { FRSRPC_COMM_PKT_CHUNK_JOIN_GUID, "FRSRPC_COMM_PKT_CHUNK_JOIN_GUID" },
+       { FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME, "FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME" },
+       { FRSRPC_COMM_PKT_CHUNK_VVECTOR, "FRSRPC_COMM_PKT_CHUNK_VVECTOR" },
+       { FRSRPC_COMM_PKT_CHUNK_JOIN_TIME, "FRSRPC_COMM_PKT_CHUNK_JOIN_TIME" },
+       { FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID, "FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID" },
+       { FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID, "FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID" },
+       { FRSRPC_COMM_PKT_CHUNK_BLOCK, "FRSRPC_COMM_PKT_CHUNK_BLOCK" },
+       { FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE, "FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE" },
+       { FRSRPC_COMM_PKT_CHUNK_FILE_SIZE, "FRSRPC_COMM_PKT_CHUNK_FILE_SIZE" },
+       { FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET, "FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET" },
+       { FRSRPC_COMM_PKT_CHUNK_GVSN, "FRSRPC_COMM_PKT_CHUNK_GVSN" },
+       { FRSRPC_COMM_PKT_CHUNK_CO_GUID, "FRSRPC_COMM_PKT_CHUNK_CO_GUID" },
+       { FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER, "FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER" },
+       { FRSRPC_COMM_PKT_CHUNK_REMOTE_CO, "FRSRPC_COMM_PKT_CHUNK_REMOTE_CO" },
+       { FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K, "FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K" },
+       { FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2, "FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2" },
+       { FRSRPC_COMM_PKT_CHUNK_EOP, "FRSRPC_COMM_PKT_CHUNK_EOP" },
+{ 0, NULL }
+};
+static int frsrpc_dissect_element_CommPktChunkData_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_bop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_replica(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_join_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_join_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_last_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_vvector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_vvector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_join_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_replica_version_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_replica_version_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_compression_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_block_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_file_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_gvsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_gvsn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_remote_co(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_remote_co_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_ext_win2k_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_co_extension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkData_bopend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunk_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type);
+static int frsrpc_dissect_element_CommPktChunk_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type);
+static int frsrpc_dissect_element_CommPktChunk_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type);
+static int frsrpc_dissect_element_CommPktChunkCtr_num_chunks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkCtr_chunks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_CommPktChunkCtr_chunks_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frsrpc_frsrpc_CommPktMajor_vals[] = {
+       { FRSRPC_COMM_PKT_MAJOR_0, "FRSRPC_COMM_PKT_MAJOR_0" },
+{ 0, NULL }
+};
+const value_string frsrpc_frsrpc_CommPktMinor_vals[] = {
+       { FRSRPC_COMM_PKT_MINOR_0, "FRSRPC_COMM_PKT_MINOR_0" },
+       { FRSRPC_COMM_PKT_MINOR_1, "FRSRPC_COMM_PKT_MINOR_1" },
+       { FRSRPC_COMM_PKT_MINOR_2, "FRSRPC_COMM_PKT_MINOR_2" },
+       { FRSRPC_COMM_PKT_MINOR_3, "FRSRPC_COMM_PKT_MINOR_3" },
+       { FRSRPC_COMM_PKT_MINOR_4, "FRSRPC_COMM_PKT_MINOR_4" },
+       { FRSRPC_COMM_PKT_MINOR_5, "FRSRPC_COMM_PKT_MINOR_5" },
+       { FRSRPC_COMM_PKT_MINOR_6, "FRSRPC_COMM_PKT_MINOR_6" },
+       { FRSRPC_COMM_PKT_MINOR_7, "FRSRPC_COMM_PKT_MINOR_7" },
+       { FRSRPC_COMM_PKT_MINOR_8, "FRSRPC_COMM_PKT_MINOR_8" },
+       { FRSRPC_COMM_PKT_MINOR_9, "FRSRPC_COMM_PKT_MINOR_9" },
+{ 0, NULL }
+};
+static int frsrpc_dissect_element_FrsSendCommPktReq_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_cs_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_memory_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_pkt_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_upk_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_data_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsSendCommPktReq_data_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frsrpc_frsrpc_PartnerAuthLevel_vals[] = {
+       { FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS, "FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS" },
+       { FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION, "FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION" },
+{ 0, NULL }
+};
+static int frsrpc_dissect_element_FrsSendCommPkt_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent_partner_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsVerifyPromotionParent___ndr_guid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_connection_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_connection_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent___ndr_guid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_connection_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_connection_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_partner_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frsrpc_dissect_element_FrsStartPromotionParent_parent_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        [subcontext(4)] GUID guid; */
+/* IDL:        [subcontext(4)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string name; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktChunkGuidName_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkGuidName_guid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkGuidName_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkGuidName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_name_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkGuidName_name_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkGuidName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkGuidName_name , 0);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktChunkGuidName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChunkGuidName);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktChunkGuidName_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChunkGuidName_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper vsn; */
+/* IDL:        GUID guid; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktGSVN_vsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktGSVN_vsn, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktGSVN_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktGSVN_guid, NULL);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktGSVN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktGSVN);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktGSVN_vsn(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktGSVN_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        FRSRPC_CO_FLAG_ABORT_CO =  0x00000001 , */
+/* IDL:        FRSRPC_CO_FLAG_VV_ACTIVATED =  0x00000002 , */
+/* IDL:        FRSRPC_CO_FLAG_CONTENT_CMD =  0x00000004 , */
+/* IDL:        FRSRPC_CO_FLAG_LOCATION_CMD =  0x00000008 , */
+/* IDL:        FRSRPC_CO_FLAG_ONLIST =  0x00000010 , */
+/* IDL:        FRSRPC_CO_FLAG_LOCALCO =  0x00000020 , */
+/* IDL:        FRSRPC_CO_FLAG_RETRY =  0x00000040 , */
+/* IDL:        FRSRPC_CO_FLAG_OUT_OF_ORDER =  0x00000200 , */
+/* IDL:        FRSRPC_CO_FLAG_NEW_FILE =  0x00000400 , */
+/* IDL:        FRSRPC_CO_FLAG_CONTROL =  0x00001000 , */
+/* IDL:        FRSRPC_CO_FLAG_DIRECTED_CO =  0x00002000 , */
+/* IDL:        FRSRPC_CO_FLAG_VVJOIN_TO_ORIG =  0x00040000 , */
+/* IDL:        FRSRPC_CO_FLAG_SKIP_ORIG_REC_C =  0x00100000 , */
+/* IDL:        FRSRPC_CO_FLAG_MOVEIN_GEN =  0x00200000 , */
+/* IDL:        FRSRPC_CO_FLAG_MORPH_GEN_HEAD =  0x00400000 , */
+/* IDL:        FRSRPC_CO_FLAG_JUST_OID_RESET =  0x00800000 , */
+/* IDL:        FRSRPC_CO_FLAG_COMPRESSED_STAGE =  0x01000000 , */
+/* IDL:        FRSRPC_CO_FLAG_SKIP_VV_UPDATE =  0x02000000 , */
+/* IDL: } */
+
+int
+frsrpc_dissect_bitmap_CommPktCoCmdFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_frsrpc_frsrpc_CommPktCoCmdFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_ABORT_CO");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_VV_ACTIVATED");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_CONTENT_CMD");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_LOCATION_CMD");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_ONLIST");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_LOCALCO");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_RETRY");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_OUT_OF_ORDER");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_NEW_FILE");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_CONTROL");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_DIRECTED_CO");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_VVJOIN_TO_ORIG");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_SKIP_ORIG_REC_C");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_MOVEIN_GEN");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_MORPH_GEN_HEAD");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_JUST_OID_RESET");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_COMPRESSED_STAGE");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "FRSRPC_CO_FLAG_SKIP_VV_UPDATE");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        FRSRPC_CO_IFLAG_VVRETIRE_EXEC =  0x00000001 , */
+/* IDL:        FRSRPC_CO_IFLAG_CO_ABORT =  0x00000002 , */
+/* IDL:        FRSRPC_CO_IFLAG_DIR_ENUM_PENDING =  0x00000004 , */
+/* IDL: } */
+
+int
+frsrpc_dissect_bitmap_CommPktCoCmdIFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_frsrpc_frsrpc_CommPktCoCmdIFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "FRSRPC_CO_IFLAG_VVRETIRE_EXEC");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "FRSRPC_CO_IFLAG_CO_ABORT");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "FRSRPC_CO_IFLAG_DIR_ENUM_PENDING");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_CO_STATUS_CO_ENTERED_LOG=0x00000000, */
+/* IDL:        FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO=0x00000001, */
+/* IDL:        FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED=0x00000002, */
+/* IDL:        FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED=0x00000003, */
+/* IDL:        FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING=0x00000004, */
+/* IDL:        FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO=0x00000005, */
+/* IDL:        FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED=0x00000006, */
+/* IDL:        FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED=0x00000007, */
+/* IDL:        FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING=0x00000008, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED=0x00000009, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_STARTED=0x0000000A, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED=0x0000000B, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY=0x0000000C, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING=0x0000000D, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING=0x0000000E, */
+/* IDL:        FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING=0x0000000F, */
+/* IDL:        FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM=0x00000013, */
+/* IDL:        FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION=0x00000014, */
+/* IDL:        FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG=0x00000015, */
+/* IDL:        FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED=0x00000016, */
+/* IDL:        FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED=0x00000017, */
+/* IDL:        FRSRPC_CO_STATUS_CO_ABORTED=0x00000018, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktCoCmdStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        FRSRPC_CONTENT_REASON_DATA_OVERWRITE =  0x00000001 , */
+/* IDL:        FRSRPC_CONTENT_REASON_DATA_EXTEND =  0x00000002 , */
+/* IDL:        FRSRPC_CONTENT_REASON_DATA_TRUNCATION =  0x00000004 , */
+/* IDL:        FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE =  0x00000010 , */
+/* IDL:        FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND =  0x00000020 , */
+/* IDL:        FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION =  0x00000040 , */
+/* IDL:        FRSRPC_CONTENT_REASON_FILE_CREATE =  0x00000100 , */
+/* IDL:        FRSRPC_CONTENT_REASON_FILE_DELETE =  0x00000200 , */
+/* IDL:        FRSRPC_CONTENT_REASON_EA_CHANGE =  0x00000400 , */
+/* IDL:        FRSRPC_CONTENT_REASON_SECURITY_CHANGE =  0x00000800 , */
+/* IDL:        FRSRPC_CONTENT_REASON_OLD_NAME =  0x00001000 , */
+/* IDL:        FRSRPC_CONTENT_REASON_NEW_NAME =  0x00002000 , */
+/* IDL:        FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE =  0x00004000 , */
+/* IDL:        FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE =  0x00020000 , */
+/* IDL: } */
+
+int
+frsrpc_dissect_bitmap_CommPktCoCmdContentCmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_frsrpc_frsrpc_CommPktCoCmdContentCmd);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_DATA_OVERWRITE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_DATA_EXTEND");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_DATA_TRUNCATION");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_FILE_CREATE");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_FILE_DELETE");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_EA_CHANGE");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_SECURITY_CHANGE");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_OLD_NAME");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_NEW_NAME");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_CREATE=0x00000000, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_CREATE=0x00000000|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_DELETE=0x00000002, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_DELETE=0x00000002|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_MOVEIN=0x00000004, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_MOVEIN=0x00000004|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_MOVEIN2=0x00000006, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_MOVEIN2=0x00000006|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_MOVEOUT=0x00000008, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_MOVEOUT=0x00000008|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_MOVERS=0x0000000a, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_MOVERS=0x0000000a|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_MOVEDIR=0x0000000c, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_MOVEDIR=0x0000000c|0x00000001, */
+/* IDL:        FRSRPC_CO_LOCATION_FILE_NO_CMD=0x0000000e, */
+/* IDL:        FRSRPC_CO_LOCATION_DIR_NO_CMD=0x0000000e|0x00000001, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktCoCmdLocationCmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sequence_number; */
+/* IDL:        frsrpc_CommPktCoCmdFlags flags; */
+/* IDL:        frsrpc_CommPktCoCmdIFlags iflags; */
+/* IDL:        frsrpc_CommPktCoCmdStatus status; */
+/* IDL:        frsrpc_CommPktCoCmdContentCmd content_cmd; */
+/* IDL:        frsrpc_CommPktCoCmdLocationCmd location_cmd; */
+/* IDL:        uint32 file_attributes; */
+/* IDL:        uint32 file_version_number; */
+/* IDL:        uint32 partern_ack_sequence_number; */
+/* IDL:        [value(0)] uint32 not_used; */
+/* IDL:        hyper file_size; */
+/* IDL:        hyper file_offset; */
+/* IDL:        hyper frs_vsn; */
+/* IDL:        hyper file_usn; */
+/* IDL:        hyper jrnl_usn; */
+/* IDL:        hyper jrnl_first_usn; */
+/* IDL:        uint32 original_replica_num; */
+/* IDL:        uint32 new_replica_num; */
+/* IDL:        GUID change_order_guid; */
+/* IDL:        GUID originator_guid; */
+/* IDL:        GUID file_guid; */
+/* IDL:        GUID old_parent_guid; */
+/* IDL:        GUID new_parent_guid; */
+/* IDL:        GUID connection_guid; */
+/* IDL:        hyper ack_version; */
+/* IDL:        [value(0)] hyper spare2ul1; */
+/* IDL:        [value(0)] hyper spare1guid_p1; */
+/* IDL:        [value(0)] hyper spare1guid_p2; */
+/* IDL:        [value(0)] hyper spare2guid_p1; */
+/* IDL:        [value(0)] hyper spare3guid_p2; */
+/* IDL:        [value(0)] uint32 spare1wcs; */
+/* IDL:        [value(0)] uint32 spare2wcs; */
+/* IDL:        [value(0)] uint32 extension; */
+/* IDL:        [value(0)] uint32 spare2bin; */
+/* IDL:        NTTIME event_time; */
+/* IDL:        [value(2*strlen_m(file_name))] uint16 file_name_length; */
+/* IDL:        [charset(UTF16)] uint16 file_name[260+1]; */
+/* IDL:        [value(0)] uint8 padding1; */
+/* IDL:        [value(0)] uint8 padding2; */
+/* IDL:        [value(0)] uint8 padding3; */
+/* IDL:        [value(0)] uint8 padding4; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_bitmap_CommPktCoCmdFlags(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_iflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_bitmap_CommPktCoCmdIFlags(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktCoCmdStatus(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_content_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_bitmap_CommPktCoCmdContentCmd(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_location_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktCoCmdLocationCmd(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_version_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_partern_ack_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_frs_vsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_first_usn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_original_replica_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_new_replica_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_change_order_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_originator_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_old_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_new_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_ack_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare2ul1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare2guid_p1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare3guid_p2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare1wcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare2wcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_spare2bin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_event_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderCommand_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4, 0);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktChangeOrderCommand(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChangeOrderCommand);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_sequence_number(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_iflags(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_status(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_content_cmd(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_location_cmd(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_version_number(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_partern_ack_sequence_number(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_not_used(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_frs_vsn(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_jrnl_first_usn(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_original_replica_num(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_new_replica_num(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_change_order_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_originator_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_old_parent_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_new_parent_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_connection_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_ack_version(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2ul1(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p1(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare1guid_p2(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2guid_p1(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare3guid_p2(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare1wcs(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2wcs(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_extension(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_spare2bin(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_event_time(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_name_length(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_file_name(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding1(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding2(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding3(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderCommand_padding4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_DATA_EXTENSION_TERMINATOR=0x00000000, */
+/* IDL:        FRSRPC_DATA_EXTENSION_MD5_CHECKSUM=0x00000001, */
+/* IDL:        FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT=0x00000002, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktDataExtensionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000018)] uint32 prefix_size; */
+/* IDL:        [value(FRSRPC_DATA_EXTENSION_MD5_CHECKSUM)] frsrpc_CommPktDataExtensionType prefix_type; */
+/* IDL:        uint8 data[16]; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktDataExtensionType(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionChecksum_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data, 0);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktDataExtensionChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktDataExtensionChecksum);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_prefix_type(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktDataExtensionChecksum_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000018)] uint32 prefix_size; */
+/* IDL:        [value(FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT)] frsrpc_CommPktDataExtensionType prefix_type; */
+/* IDL:        uint32 count; */
+/* IDL:        [value(0)] uint32 not_used; */
+/* IDL:        NTTIME first_try_time; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktDataExtensionType(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_first_try_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktDataExtensionRetryTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_prefix_type(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_count(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_not_used(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktDataExtensionRetryTimeout_first_try_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K=0x0000, */
+/* IDL:        FRSRPC_CO_RECORD_EXTENSION_VERSION_1=0x0001, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000028)] uint32 field_size; */
+/* IDL:        [value(FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K)] frsrpc_CommPktCoRecordExtensionMajor major; */
+/* IDL:        [value(0x0001)] uint16 offset_count; */
+/* IDL:        [value(0x00000010)] uint32 offset; */
+/* IDL:        [value(0)] uint32 offset_last; */
+/* IDL:        frsrpc_CommPktDataExtensionChecksum data_checksum; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_field_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_last(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktDataExtensionChecksum(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum,0);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktCoRecordExtensionWin2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_field_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_major(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_count(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_offset_last(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktCoRecordExtensionWin2k_data_checksum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(0x00000048)] uint32 field_size; */
+/* IDL:        frsrpc_CommPktCoRecordExtensionMajor major; */
+/* IDL:        [value(0x0002)] uint16 offset_count; */
+/* IDL:        [value(0x00000018)] uint32 offset0; */
+/* IDL:        [value(0x00000030)] uint32 offset1; */
+/* IDL:        [value(0)] uint32 offset_last; */
+/* IDL:        [value(0)] uint32 not_used; */
+/* IDL:        frsrpc_CommPktDataExtensionChecksum data_checksum; */
+/* IDL:        frsrpc_CommPktDataExtensionRetryTimeout data_retry_timeout; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_field_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_last(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktDataExtensionChecksum(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktDataExtensionRetryTimeout(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout,0);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktChangeOrderRecordExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_field_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_major(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_count(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset0(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset1(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_offset_last(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_not_used(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_checksum(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChangeOrderRecordExtension_data_retry_timeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_COMMAND_REMOTE_CO=0x00000218, */
+/* IDL:        FRSRPC_COMMAND_RECEIVING_STATE=0x00000238, */
+/* IDL:        FRSRPC_COMMAND_REMOTE_CO_DONE=0x00000250, */
+/* IDL:        FRSRPC_COMMAND_ABORT_FETCH=0x00000246, */
+/* IDL:        FRSRPC_COMMAND_RETRY_FETCH=0x00000244, */
+/* IDL:        FRSRPC_COMMAND_NEED_JOIN=0x00000121, */
+/* IDL:        FRSRPC_COMMAND_START_JOIN=0x00000122, */
+/* IDL:        FRSRPC_COMMAND_JOINING=0x00000130, */
+/* IDL:        FRSRPC_COMMAND_JOINED=0x00000128, */
+/* IDL:        FRSRPC_COMMAND_UNJOIN_REMOTE=0x00000148, */
+/* IDL:        FRSRPC_COMMAND_WJOIN_DONE=0x00000136, */
+/* IDL:        FRSRPC_COMMAND_SEND_STAGE=0x00000228, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktCommand(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_BOP=0x0001, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_COMMAND=0x0002, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_TO=0x0003, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_FROM=0x0004, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_REPLICA=0x0005, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_CONNECTION=0x0008, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_JOIN_GUID=0x0006, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME=0x0012, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_VVECTOR=0x0007, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_JOIN_TIME=0x0011, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID=0x0014, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID=0x0018, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_BLOCK=0x0009, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE=0x000A, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_FILE_SIZE=0x000B, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET=0x000C, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_GVSN=0x000E, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_CO_GUID=0x000F, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER=0x0010, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_REMOTE_CO=0x000D, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K=0x0016, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2=0x0017, */
+/* IDL:        FRSRPC_COMM_PKT_CHUNK_EOP=0x0013, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktChunkType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [default] ; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_BOP)] [value(0)] [case(FRSRPC_COMM_PKT_CHUNK_BOP)] uint32 bop; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_COMMAND)] [case(FRSRPC_COMM_PKT_CHUNK_COMMAND)] frsrpc_CommPktCommand command; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_TO)] [case(FRSRPC_COMM_PKT_CHUNK_TO)] frsrpc_CommPktChunkGuidName to; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FROM)] [case(FRSRPC_COMM_PKT_CHUNK_FROM)] frsrpc_CommPktChunkGuidName from; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REPLICA)] [case(FRSRPC_COMM_PKT_CHUNK_REPLICA)] frsrpc_CommPktChunkGuidName replica; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CONNECTION)] [case(FRSRPC_COMM_PKT_CHUNK_CONNECTION)] frsrpc_CommPktChunkGuidName connection; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_JOIN_GUID)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_JOIN_GUID)] GUID join_guid; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME)] [case(FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME)] NTTIME last_join_time; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_VVECTOR)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_VVECTOR)] frsrpc_CommPktGSVN vvector; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_JOIN_TIME)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_JOIN_TIME)] NTTIME join_time; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID)] GUID replica_version_guid; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)] [case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)] GUID compression_guid; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_BLOCK)] [flag(LIBNDR_FLAG_REMAINING)] [case(FRSRPC_COMM_PKT_CHUNK_BLOCK)] DATA_BLOB block; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)] [case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)] hyper block_size; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)] [case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)] hyper file_size; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)] [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)] hyper file_offset; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_GVSN)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_GVSN)] frsrpc_CommPktGSVN gvsn; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)] GUID co_guid; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)] uint32 co_sequnence_number; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)] frsrpc_CommPktChangeOrderCommand remote_co; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)] [subcontext(4)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)] frsrpc_CommPktCoRecordExtensionWin2k co_ext_win2k; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)] [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)] frsrpc_CommPktChangeOrderRecordExtension co_extension2; */
+/* IDL: [case(FRSRPC_COMM_PKT_CHUNK_EOP)] [value(0xFFFFFFFF)] [case(FRSRPC_COMM_PKT_CHUNK_EOP)] uint32 bopend; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktChunkData_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_blob, 1);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_bop(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_bop, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktCommand(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_command, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_to(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_to,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_from(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_from,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_replica(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_replica,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChunkGuidName(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_connection,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_join_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_join_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_join_guid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_join_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_join_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_last_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_last_join_time);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_vvector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_vvector_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_vvector_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_vvector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktGSVN(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_vvector,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_join_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_join_time_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_join_time_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_join_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_join_time);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_replica_version_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_replica_version_guid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_replica_version_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_compression_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_compression_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_block, 1);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_block_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_block_size, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_file_size, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_file_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_file_offset, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_gvsn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_gvsn_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_gvsn_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_gvsn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktGSVN(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_gvsn,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_co_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_co_guid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_co_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_remote_co(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_remote_co_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_remote_co_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_remote_co_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChangeOrderCommand(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_remote_co,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunkData_co_ext_win2k_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_co_ext_win2k_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktCoRecordExtensionWin2k(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_co_extension2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChangeOrderRecordExtension(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkData_co_extension2,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkData_bopend(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkData_bopend, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_CommPktChunkData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "frsrpc_CommPktChunkData");
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChunkData);
+       }
+
+       switch(level) {
+               default:
+                       offset = frsrpc_dissect_element_CommPktChunkData_blob(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_BOP:
+                       offset = frsrpc_dissect_element_CommPktChunkData_bop(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_COMMAND:
+                       offset = frsrpc_dissect_element_CommPktChunkData_command(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_TO:
+                       offset = frsrpc_dissect_element_CommPktChunkData_to(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_FROM:
+                       offset = frsrpc_dissect_element_CommPktChunkData_from(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_REPLICA:
+                       offset = frsrpc_dissect_element_CommPktChunkData_replica(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_CONNECTION:
+                       offset = frsrpc_dissect_element_CommPktChunkData_connection(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_JOIN_GUID:
+                       offset = frsrpc_dissect_element_CommPktChunkData_join_guid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME:
+                       offset = frsrpc_dissect_element_CommPktChunkData_last_join_time(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_VVECTOR:
+                       offset = frsrpc_dissect_element_CommPktChunkData_vvector(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_JOIN_TIME:
+                       offset = frsrpc_dissect_element_CommPktChunkData_join_time(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID:
+                       offset = frsrpc_dissect_element_CommPktChunkData_replica_version_guid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID:
+                       offset = frsrpc_dissect_element_CommPktChunkData_compression_guid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_BLOCK:
+                       offset = frsrpc_dissect_element_CommPktChunkData_block(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE:
+                       offset = frsrpc_dissect_element_CommPktChunkData_block_size(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_FILE_SIZE:
+                       offset = frsrpc_dissect_element_CommPktChunkData_file_size(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET:
+                       offset = frsrpc_dissect_element_CommPktChunkData_file_offset(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_GVSN:
+                       offset = frsrpc_dissect_element_CommPktChunkData_gvsn(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_CO_GUID:
+                       offset = frsrpc_dissect_element_CommPktChunkData_co_guid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER:
+                       offset = frsrpc_dissect_element_CommPktChunkData_co_sequnence_number(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_REMOTE_CO:
+                       offset = frsrpc_dissect_element_CommPktChunkData_remote_co(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K:
+                       offset = frsrpc_dissect_element_CommPktChunkData_co_ext_win2k(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2:
+                       offset = frsrpc_dissect_element_CommPktChunkData_co_extension2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSRPC_COMM_PKT_CHUNK_EOP:
+                       offset = frsrpc_dissect_element_CommPktChunkData_bopend(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        frsrpc_CommPktChunkType type; */
+/* IDL:        [subcontext(4)] [switch_is(type)] frsrpc_CommPktChunkData data; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktChunk_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type)
+{
+       offset = frsrpc_dissect_enum_CommPktChunkType(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunk_type, type);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunk_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunk_data_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_CommPktChunk_data_(subtvb, 0, pinfo, tree, drep, type);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunk_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *type)
+{
+       offset = frsrpc_dissect_CommPktChunkData(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunk_data, *type);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktChunk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChunk);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktChunk_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = frsrpc_dissect_element_CommPktChunk_data(tvb, offset, pinfo, tree, drep, &type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_chunks; */
+/* IDL:        frsrpc_CommPktChunk chunks[num_chunks]; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_CommPktChunkCtr_num_chunks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_CommPktChunkCtr_num_chunks, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkCtr_chunks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_CommPktChunkCtr_chunks_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChunk(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_CommPktChunkCtr_chunks,0);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_CommPktChunkCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_CommPktChunkCtr);
+       }
+       
+       offset = frsrpc_dissect_element_CommPktChunkCtr_num_chunks(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_CommPktChunkCtr_chunks(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_COMM_PKT_MAJOR_0=0x00000000, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_0=0x00000000, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_1=0x00000001, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_2=0x00000002, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_3=0x00000003, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_4=0x00000004, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_5=0x00000005, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_6=0x00000006, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_7=0x00000007, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_8=0x00000008, */
+/* IDL:        FRSRPC_COMM_PKT_MINOR_9=0x00000009, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_CommPktMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        frsrpc_CommPktMajor major; */
+/* IDL:        frsrpc_CommPktMinor minor; */
+/* IDL:        [value(1)] uint32 cs_id; */
+/* IDL:        [value(pkt_len+12)] uint32 memory_len; */
+/* IDL:        [value(ndr_size_frsrpc_CommPktChunkCtr(r->ctr,ndr->flags))] [range(0,262144)] uint32 pkt_len; */
+/* IDL:        [value(0)] uint32 upk_len; */
+/* IDL:        [unique(1)] [subcontext_size(pkt_len)] [subcontext(4)] frsrpc_CommPktChunkCtr *ctr; */
+/* IDL:        [value(0)] uint3264 data_name; */
+/* IDL:        [value(0)] uint3264 data_handle; */
+/* IDL: } */
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktMajor(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_major, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_CommPktMinor(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_minor, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_cs_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_memory_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_pkt_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_upk_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsSendCommPktReq_ctr_, NDR_POINTER_UNIQUE, "Pointer to Ctr (frsrpc_CommPktChunkCtr)",hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_FrsSendCommPktReq_ctr__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_CommPktChunkCtr(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr,0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_data_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPktReq_data_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle, NULL);
+
+       return offset;
+}
+
+int
+frsrpc_dissect_struct_FrsSendCommPktReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frsrpc_frsrpc_FrsSendCommPktReq);
+       }
+       
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_major(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_cs_id(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_memory_len(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_pkt_len(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_upk_len(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_ctr(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_data_name(tvb, offset, pinfo, tree, drep);
+
+       offset = frsrpc_dissect_element_FrsSendCommPktReq_data_handle(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS=0x00000000, */
+/* IDL:        FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION=0x00000001, */
+/* IDL: } */
+
+int
+frsrpc_dissect_enum_PartnerAuthLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsSendCommPkt_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_struct_FrsSendCommPktReq(tvb,offset,pinfo,tree,drep,hf_frsrpc_frsrpc_FrsSendCommPkt_req,0);
+
+       return offset;
+}
+
+/* IDL: WERROR frsrpc_FrsSendCommPkt( */
+/* IDL: [in] frsrpc_FrsSendCommPktReq req */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FrsSendCommPkt_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FrsSendCommPkt";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_FrsSendCommPkt_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FrsSendCommPkt";
+       offset = frsrpc_dissect_element_FrsSendCommPkt_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account_, NDR_POINTER_UNIQUE, "Pointer to Parent Account (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password_, NDR_POINTER_UNIQUE, "Pointer to Parent Password (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Name (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Type (uint16)",hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent_partner_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_PartnerAuthLevel(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsVerifyPromotionParent___ndr_guid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR frsrpc_FrsVerifyPromotionParent( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *parent_account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *parent_password, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *replica_set_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *replica_set_type, */
+/* IDL: [in] frsrpc_PartnerAuthLevel partner_auth_level, */
+/* IDL: [in] uint32 __ndr_guid_size */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FrsVerifyPromotionParent_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FrsVerifyPromotionParent";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_FrsVerifyPromotionParent_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FrsVerifyPromotionParent";
+       offset = frsrpc_dissect_element_FrsVerifyPromotionParent_parent_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsVerifyPromotionParent_parent_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsVerifyPromotionParent_replica_set_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsVerifyPromotionParent_partner_auth_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsVerifyPromotionParent___ndr_guid_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_parent_account_, NDR_POINTER_UNIQUE, "Pointer to Parent Account (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_parent_password_, NDR_POINTER_UNIQUE, "Pointer to Parent Password (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type_, NDR_POINTER_UNIQUE, "Pointer to Replica Set Type (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_connection_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_connection_name_, NDR_POINTER_UNIQUE, "Pointer to Connection Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_connection_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_partner_name_, NDR_POINTER_UNIQUE, "Pointer to Partner Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name_, NDR_POINTER_UNIQUE, "Pointer to Partner Princ Name (uint16)",hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_auth_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frsrpc_dissect_enum_PartnerAuthLevel(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent___ndr_guid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size, 0);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_connection_guid_, NDR_POINTER_UNIQUE, "Pointer to Connection Guid (GUID)",hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_connection_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_FrsStartPromotionParent_connection_guid__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_connection_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_partner_guid_, NDR_POINTER_UNIQUE, "Pointer to Partner Guid (GUID)",hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_FrsStartPromotionParent_partner_guid__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_partner_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid, NULL);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frsrpc_dissect_element_FrsStartPromotionParent_parent_guid_, NDR_POINTER_UNIQUE, "Pointer to Parent Guid (GUID)",hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid);
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               frsrpc_dissect_element_FrsStartPromotionParent_parent_guid__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_element_FrsStartPromotionParent_parent_guid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR frsrpc_FrsStartPromotionParent( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *parent_account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *parent_password, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *replica_set_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *replica_set_type, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *connection_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *partner_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *partner_princ_name, */
+/* IDL: [in] frsrpc_PartnerAuthLevel partner_auth_level, */
+/* IDL: [value(16)] [in] [range(16,16)] uint32 __ndr_guid_size, */
+/* IDL: [unique(1)] [subcontext_size(16)] [subcontext(4)] [in] GUID *connection_guid, */
+/* IDL: [unique(1)] [subcontext_size(16)] [subcontext(4)] [in] GUID *partner_guid, */
+/* IDL: [out] [unique(1)] [subcontext_size(16)] [subcontext(4)] [in] GUID *parent_guid */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FrsStartPromotionParent_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FrsStartPromotionParent";
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_FrsStartPromotionParent_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FrsStartPromotionParent";
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_replica_set_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_replica_set_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_connection_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_princ_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_auth_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent___ndr_guid_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_partner_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frsrpc_dissect_element_FrsStartPromotionParent_parent_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR frsrpc_FrsNOP( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FrsNOP_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FrsNOP";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frsrpc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frsrpc_dissect_FrsNOP_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FrsNOP";
+       return offset;
+}
+
+/* IDL: void FRSRPC_BACKUP_COMPLETE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE";
+       return offset;
+}
+
+/* IDL: void FRSRPC_BACKUP_COMPLETE_5( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_5";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_5";
+       return offset;
+}
+
+/* IDL: void FRSRPC_BACKUP_COMPLETE_6( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_6";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_6";
+       return offset;
+}
+
+/* IDL: void FRSRPC_BACKUP_COMPLETE_7( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_7";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_7";
+       return offset;
+}
+
+/* IDL: void FRSRPC_BACKUP_COMPLETE_8( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_8";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_8";
+       return offset;
+}
+
+/* IDL: void FRSRPC_BACKUP_COMPLETE_9( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_9";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_BACKUP_COMPLETE_9";
+       return offset;
+}
+
+/* IDL: void FRSRPC_VERIFY_PROMOTION_PARENT_EX( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_VERIFY_PROMOTION_PARENT_EX";
+       return offset;
+}
+
+static int
+frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSRPC_VERIFY_PROMOTION_PARENT_EX";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector frsrpc_dissectors[] = {
+       { 0, "FrsSendCommPkt",
+          frsrpc_dissect_FrsSendCommPkt_request, frsrpc_dissect_FrsSendCommPkt_response},
+       { 1, "FrsVerifyPromotionParent",
+          frsrpc_dissect_FrsVerifyPromotionParent_request, frsrpc_dissect_FrsVerifyPromotionParent_response},
+       { 2, "FrsStartPromotionParent",
+          frsrpc_dissect_FrsStartPromotionParent_request, frsrpc_dissect_FrsStartPromotionParent_response},
+       { 3, "FrsNOP",
+          frsrpc_dissect_FrsNOP_request, frsrpc_dissect_FrsNOP_response},
+       { 4, "FRSRPC_BACKUP_COMPLETE",
+          frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_response},
+       { 5, "FRSRPC_BACKUP_COMPLETE_5",
+          frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_5_response},
+       { 6, "FRSRPC_BACKUP_COMPLETE_6",
+          frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_6_response},
+       { 7, "FRSRPC_BACKUP_COMPLETE_7",
+          frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_7_response},
+       { 8, "FRSRPC_BACKUP_COMPLETE_8",
+          frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_8_response},
+       { 9, "FRSRPC_BACKUP_COMPLETE_9",
+          frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_request, frsrpc_dissect_FRSRPC_BACKUP_COMPLETE_9_response},
+       { 10, "FRSRPC_VERIFY_PROMOTION_PARENT_EX",
+          frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_request, frsrpc_dissect_FRSRPC_VERIFY_PROMOTION_PARENT_EX_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_frsrpc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_frsrpc_frsrpc_CommPktChunkData_to,
+         { "To", "frsrpc.frsrpc_CommPktChunkData.to", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_data,
+         { "Data", "frsrpc.frsrpc_CommPktDataExtensionChecksum.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD,
+         { "Frsrpc Co Flag Morph Gen Head", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_MORPH_GEN_HEAD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MORPH_GEN_HEAD_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_major,
+         { "Major", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.major", FT_UINT1632, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_originator_guid,
+         { "Originator Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.originator_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_name,
+         { "Replica Set Name", "frsrpc.frsrpc_FrsVerifyPromotionParent.replica_set_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_not_used,
+         { "Not Used", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2wcs,
+         { "Spare2wcs", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2wcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare3guid_p2,
+         { "Spare3guid P2", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare3guid_p2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid,
+         { "Connection Guid", "frsrpc.frsrpc_FrsStartPromotionParent.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_last,
+         { "Offset Last", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset_last", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_status,
+         { "Status", "frsrpc.frsrpc_CommPktChangeOrderCommand.status", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoCmdStatus_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_replica_set_type,
+         { "Replica Set Type", "frsrpc.frsrpc_FrsVerifyPromotionParent.replica_set_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_parent_guid,
+         { "New Parent Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.new_parent_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_guid,
+         { "File Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT,
+         { "Frsrpc Co Iflag Co Abort", "frsrpc.frsrpc_CommPktCoCmdIFlags.FRSRPC_CO_IFLAG_CO_ABORT", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_CO_ABORT_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p1,
+         { "Spare1guid P1", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare1guid_p1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_FrsStartPromotionParent.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid,
+         { "Parent Guid", "frsrpc.frsrpc_FrsStartPromotionParent.parent_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE,
+         { "Frsrpc Content Reason File Create", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_FILE_CREATE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_CREATE_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND,
+         { "Frsrpc Content Reason Data Extend", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_DATA_EXTEND", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_EXTEND_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_original_replica_num,
+         { "Original Replica Num", "frsrpc.frsrpc_CommPktChangeOrderCommand.original_replica_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_first_usn,
+         { "Jrnl First Usn", "frsrpc.frsrpc_CommPktChangeOrderCommand.jrnl_first_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_password,
+         { "Parent Password", "frsrpc.frsrpc_FrsVerifyPromotionParent.parent_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_sequence_number,
+         { "Sequence Number", "frsrpc.frsrpc_CommPktChangeOrderCommand.sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME,
+         { "Frsrpc Content Reason Old Name", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_OLD_NAME", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_OLD_NAME_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO,
+         { "Frsrpc Co Flag Directed Co", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_DIRECTED_CO", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_DIRECTED_CO_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG,
+         { "Frsrpc Co Flag Vvjoin To Orig", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_VVJOIN_TO_ORIG", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VVJOIN_TO_ORIG_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN,
+         { "Frsrpc Co Flag Movein Gen", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_MOVEIN_GEN", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_MOVEIN_GEN_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_first_try_time,
+         { "First Try Time", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.first_try_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO,
+         { "Frsrpc Co Flag Localco", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_LOCALCO", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCALCO_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_attributes,
+         { "File Attributes", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunk_data,
+         { "Data", "frsrpc.frsrpc_CommPktChunk.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY,
+         { "Frsrpc Co Flag Retry", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_RETRY", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_RETRY_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL,
+         { "Frsrpc Co Flag Control", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_CONTROL", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTROL_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_FrsStartPromotionParent.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPkt_req,
+         { "Req", "frsrpc.frsrpc_FrsSendCommPkt.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_data_checksum,
+         { "Data Checksum", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.data_checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding4,
+         { "Padding4", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding4", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding2,
+         { "Padding2", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_ack_version,
+         { "Ack Version", "frsrpc.frsrpc_CommPktChangeOrderCommand.ack_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE,
+         { "Frsrpc Co Flag Compressed Stage", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_COMPRESSED_STAGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_COMPRESSED_STAGE_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION,
+         { "Frsrpc Content Reason Data Truncation", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_DATA_TRUNCATION", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_TRUNCATION_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k,
+         { "Co Ext Win2k", "frsrpc.frsrpc_CommPktChunkData.co_ext_win2k", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_file_size,
+         { "File Size", "frsrpc.frsrpc_CommPktChunkData.file_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name_length,
+         { "File Name Length", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_name_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkGuidName_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkGuidName.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_pkt_len,
+         { "Pkt Len", "frsrpc.frsrpc_FrsSendCommPktReq.pkt_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_join_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_major,
+         { "Major", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.major", FT_UINT1632, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset,
+         { "Offset", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO,
+         { "Frsrpc Co Flag Abort Co", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_ABORT_CO", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ABORT_CO_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkCtr_chunks,
+         { "Chunks", "frsrpc.frsrpc_CommPktChunkCtr.chunks", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_type,
+         { "Prefix Type", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.prefix_type", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktDataExtensionType_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_iflags,
+         { "Iflags", "frsrpc.frsrpc_CommPktChangeOrderCommand.iflags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_command,
+         { "Command", "frsrpc.frsrpc_CommPktChunkData.command", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCommand_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_co_guid,
+         { "Co Guid", "frsrpc.frsrpc_CommPktChunkData.co_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE,
+         { "Frsrpc Content Reason File Delete", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_FILE_DELETE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_FILE_DELETE_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_major,
+         { "Major", "frsrpc.frsrpc_FrsSendCommPktReq.major", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktMajor_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_last,
+         { "Offset Last", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.offset_last", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset1,
+         { "Offset1", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_vvector,
+         { "Vvector", "frsrpc.frsrpc_CommPktChunkData.vvector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_size,
+         { "File Size", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_connection_name,
+         { "Connection Name", "frsrpc.frsrpc_FrsStartPromotionParent.connection_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_co_sequnence_number,
+         { "Co Sequnence Number", "frsrpc.frsrpc_CommPktChunkData.co_sequnence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_from,
+         { "From", "frsrpc.frsrpc_CommPktChunkData.from", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C,
+         { "Frsrpc Co Flag Skip Orig Rec C", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_SKIP_ORIG_REC_C", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_ORIG_REC_C_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkCtr_num_chunks,
+         { "Num Chunks", "frsrpc.frsrpc_CommPktChunkCtr.num_chunks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_change_order_guid,
+         { "Change Order Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.change_order_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_compression_guid,
+         { "Compression Guid", "frsrpc.frsrpc_CommPktChunkData.compression_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_old_parent_guid,
+         { "Old Parent Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.old_parent_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_account,
+         { "Parent Account", "frsrpc.frsrpc_FrsStartPromotionParent.parent_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktGSVN_vsn,
+         { "Vsn", "frsrpc.frsrpc_CommPktGSVN.vsn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_field_size,
+         { "Field Size", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.field_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_partern_ack_sequence_number,
+         { "Partern Ack Sequence Number", "frsrpc.frsrpc_CommPktChangeOrderCommand.partern_ack_sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER,
+         { "Frsrpc Co Flag Out Of Order", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_OUT_OF_ORDER", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_OUT_OF_ORDER_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_name,
+         { "File Name", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_extension,
+         { "Extension", "frsrpc.frsrpc_CommPktChangeOrderCommand.extension", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME,
+         { "Frsrpc Content Reason New Name", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NEW_NAME", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NEW_NAME_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_offset,
+         { "File Offset", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_offset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1guid_p2,
+         { "Spare1guid P2", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare1guid_p2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_upk_len,
+         { "Upk Len", "frsrpc.frsrpc_FrsSendCommPktReq.upk_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_blob,
+         { "Blob", "frsrpc.frsrpc_CommPktChunkData.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE,
+         { "Frsrpc Content Reason Security Change", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_SECURITY_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_SECURITY_CHANGE_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_version_number,
+         { "File Version Number", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_version_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_prefix_size,
+         { "Prefix Size", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.prefix_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_type,
+         { "Prefix Type", "frsrpc.frsrpc_CommPktDataExtensionChecksum.prefix_type", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktDataExtensionType_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_file_usn,
+         { "File Usn", "frsrpc.frsrpc_CommPktChangeOrderCommand.file_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE,
+         { "Frsrpc Content Reason Basic Info Change", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunk_data_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunk.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_werror,
+         { "Windows Error", "frsrpc.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_FrsStartPromotionParent.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_join_guid,
+         { "Join Guid", "frsrpc.frsrpc_CommPktChunkData.join_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsVerifyPromotionParent___ndr_guid_size,
+         { "  Ndr Guid Size", "frsrpc.frsrpc_FrsVerifyPromotionParent.__ndr_guid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_data_handle,
+         { "Data Handle", "frsrpc.frsrpc_FrsSendCommPktReq.data_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_content_cmd,
+         { "Content Cmd", "frsrpc.frsrpc_CommPktChangeOrderCommand.content_cmd", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_name,
+         { "Partner Name", "frsrpc.frsrpc_FrsStartPromotionParent.partner_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_cs_id,
+         { "Cs Id", "frsrpc.frsrpc_FrsSendCommPktReq.cs_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_checksum,
+         { "Data Checksum", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.data_checksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkGuidName_name_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkGuidName.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_remote_co,
+         { "Remote Co", "frsrpc.frsrpc_CommPktChunkData.remote_co", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_co_extension2,
+         { "Co Extension2", "frsrpc.frsrpc_CommPktChunkData.co_extension2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2guid_p1,
+         { "Spare2guid P1", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2guid_p1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent___ndr_guid_size,
+         { "  Ndr Guid Size", "frsrpc.frsrpc_FrsStartPromotionParent.__ndr_guid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_gvsn_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_replica_version_guid,
+         { "Replica Version Guid", "frsrpc.frsrpc_CommPktChunkData.replica_version_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_block_size,
+         { "Block Size", "frsrpc.frsrpc_CommPktChunkData.block_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkGuidName_name,
+         { "Name", "frsrpc.frsrpc_CommPktChunkGuidName.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_not_used,
+         { "Not Used", "frsrpc.frsrpc_CommPktChangeOrderCommand.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_vvector_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_bop,
+         { "Bop", "frsrpc.frsrpc_CommPktChunkData.bop", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset0,
+         { "Offset0", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset0", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_file_offset,
+         { "File Offset", "frsrpc.frsrpc_CommPktChunkData.file_offset", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding1,
+         { "Padding1", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding1", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_co_ext_win2k_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_bopend,
+         { "Bopend", "frsrpc.frsrpc_CommPktChunkData.bopend", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD,
+         { "Frsrpc Co Flag Location Cmd", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_LOCATION_CMD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_LOCATION_CMD_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND,
+         { "Frsrpc Content Reason Named Data Extend", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout_count,
+         { "Count", "frsrpc.frsrpc_CommPktDataExtensionRetryTimeout.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkGuidName_guid,
+         { "Guid", "frsrpc.frsrpc_CommPktChunkGuidName.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_last_join_time,
+         { "Last Join Time", "frsrpc.frsrpc_CommPktChunkData.last_join_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_co_guid_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunk_type,
+         { "Type", "frsrpc.frsrpc_CommPktChunk.type", FT_UINT1632, BASE_DEC, VALS(frsrpc_frsrpc_CommPktChunkType_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_connection_guid,
+         { "Connection Guid", "frsrpc.frsrpc_CommPktChangeOrderCommand.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_data_name,
+         { "Data Name", "frsrpc.frsrpc_FrsSendCommPktReq.data_name", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_gvsn,
+         { "Gvsn", "frsrpc.frsrpc_CommPktChunkData.gvsn", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_replica,
+         { "Replica", "frsrpc.frsrpc_CommPktChunkData.replica", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_offset_count,
+         { "Offset Count", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.offset_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_jrnl_usn,
+         { "Jrnl Usn", "frsrpc.frsrpc_CommPktChangeOrderCommand.jrnl_usn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_padding3,
+         { "Padding3", "frsrpc.frsrpc_CommPktChangeOrderCommand.padding3", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_princ_name,
+         { "Partner Princ Name", "frsrpc.frsrpc_FrsStartPromotionParent.partner_princ_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_partner_auth_level,
+         { "Partner Auth Level", "frsrpc.frsrpc_FrsVerifyPromotionParent.partner_auth_level", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_PartnerAuthLevel_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET,
+         { "Frsrpc Co Flag Just Oid Reset", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_JUST_OID_RESET", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_JUST_OID_RESET_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE,
+         { "Frsrpc Content Reason Ea Change", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_EA_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_EA_CHANGE_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_block,
+         { "Block", "frsrpc.frsrpc_CommPktChunkData.block", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC,
+         { "Frsrpc Co Iflag Vvretire Exec", "frsrpc.frsrpc_CommPktCoCmdIFlags.FRSRPC_CO_IFLAG_VVRETIRE_EXEC", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_VVRETIRE_EXEC_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_remote_co_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_location_cmd,
+         { "Location Cmd", "frsrpc.frsrpc_CommPktChangeOrderCommand.location_cmd", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktCoCmdLocationCmd_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING,
+         { "Frsrpc Co Iflag Dir Enum Pending", "frsrpc.frsrpc_CommPktCoCmdIFlags.FRSRPC_CO_IFLAG_DIR_ENUM_PENDING", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdIFlags_FRSRPC_CO_IFLAG_DIR_ENUM_PENDING_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_not_used,
+         { "Not Used", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2ul1,
+         { "Spare2ul1", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2ul1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE,
+         { "Frsrpc Content Reason Named Data Overwrite", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_frsrpc_opnum,
+         { "Operation", "frsrpc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_join_time_,
+         { "Subcontext length", "frsrpc.frsrpc_CommPktChunkData.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE,
+         { "Frsrpc Co Flag New File", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_NEW_FILE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_NEW_FILE_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare2bin,
+         { "Spare2bin", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare2bin", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k_field_size,
+         { "Field Size", "frsrpc.frsrpc_CommPktCoRecordExtensionWin2k.field_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_frs_vsn,
+         { "Frs Vsn", "frsrpc.frsrpc_CommPktChangeOrderCommand.frs_vsn", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr,
+         { "Ctr", "frsrpc.frsrpc_FrsSendCommPktReq.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_connection,
+         { "Connection", "frsrpc.frsrpc_CommPktChunkData.connection", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_offset_count,
+         { "Offset Count", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.offset_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderRecordExtension_data_retry_timeout,
+         { "Data Retry Timeout", "frsrpc.frsrpc_CommPktChangeOrderRecordExtension.data_retry_timeout", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_name,
+         { "Replica Set Name", "frsrpc.frsrpc_FrsStartPromotionParent.replica_set_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_event_time,
+         { "Event Time", "frsrpc.frsrpc_CommPktChangeOrderCommand.event_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_memory_len,
+         { "Memory Len", "frsrpc.frsrpc_FrsSendCommPktReq.memory_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE,
+         { "Frsrpc Content Reason Data Overwrite", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_DATA_OVERWRITE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_DATA_OVERWRITE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_minor,
+         { "Minor", "frsrpc.frsrpc_FrsSendCommPktReq.minor", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_CommPktMinor_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsVerifyPromotionParent_parent_account,
+         { "Parent Account", "frsrpc.frsrpc_FrsVerifyPromotionParent.parent_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD,
+         { "Frsrpc Co Flag Content Cmd", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_CONTENT_CMD", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_CONTENT_CMD_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktGSVN_guid,
+         { "Guid", "frsrpc.frsrpc_CommPktGSVN.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION,
+         { "Frsrpc Content Reason Named Data Truncation", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktDataExtensionChecksum_prefix_size,
+         { "Prefix Size", "frsrpc.frsrpc_CommPktDataExtensionChecksum.prefix_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsSendCommPktReq_ctr_,
+         { "Subcontext length", "frsrpc.frsrpc_FrsSendCommPktReq.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_auth_level,
+         { "Partner Auth Level", "frsrpc.frsrpc_FrsStartPromotionParent.partner_auth_level", FT_UINT32, BASE_DEC, VALS(frsrpc_frsrpc_PartnerAuthLevel_vals), 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST,
+         { "Frsrpc Co Flag Onlist", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_ONLIST", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_ONLIST_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE,
+         { "Frsrpc Content Reason Compression Change", "frsrpc.frsrpc_CommPktCoCmdContentCmd.FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdContentCmd_FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_partner_guid,
+         { "Partner Guid", "frsrpc.frsrpc_FrsStartPromotionParent.partner_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_replica_set_type,
+         { "Replica Set Type", "frsrpc.frsrpc_FrsStartPromotionParent.replica_set_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_flags,
+         { "Flags", "frsrpc.frsrpc_CommPktChangeOrderCommand.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChunkData_join_time,
+         { "Join Time", "frsrpc.frsrpc_CommPktChunkData.join_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_spare1wcs,
+         { "Spare1wcs", "frsrpc.frsrpc_CommPktChangeOrderCommand.spare1wcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktChangeOrderCommand_new_replica_num,
+         { "New Replica Num", "frsrpc.frsrpc_CommPktChangeOrderCommand.new_replica_num", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_FrsStartPromotionParent_parent_password,
+         { "Parent Password", "frsrpc.frsrpc_FrsStartPromotionParent.parent_password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED,
+         { "Frsrpc Co Flag Vv Activated", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_VV_ACTIVATED", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_VV_ACTIVATED_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_frsrpc_frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE,
+         { "Frsrpc Co Flag Skip Vv Update", "frsrpc.frsrpc_CommPktCoCmdFlags.FRSRPC_CO_FLAG_SKIP_VV_UPDATE", FT_BOOLEAN, 32, TFS(&frsrpc_CommPktCoCmdFlags_FRSRPC_CO_FLAG_SKIP_VV_UPDATE_tfs), ( 0x02000000 ), NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_frsrpc,
+               &ett_frsrpc_frsrpc_CommPktChunkGuidName,
+               &ett_frsrpc_frsrpc_CommPktGSVN,
+               &ett_frsrpc_frsrpc_CommPktCoCmdFlags,
+               &ett_frsrpc_frsrpc_CommPktCoCmdIFlags,
+               &ett_frsrpc_frsrpc_CommPktCoCmdContentCmd,
+               &ett_frsrpc_frsrpc_CommPktChangeOrderCommand,
+               &ett_frsrpc_frsrpc_CommPktDataExtensionChecksum,
+               &ett_frsrpc_frsrpc_CommPktDataExtensionRetryTimeout,
+               &ett_frsrpc_frsrpc_CommPktCoRecordExtensionWin2k,
+               &ett_frsrpc_frsrpc_CommPktChangeOrderRecordExtension,
+               &ett_frsrpc_frsrpc_CommPktChunkData,
+               &ett_frsrpc_frsrpc_CommPktChunk,
+               &ett_frsrpc_frsrpc_CommPktChunkCtr,
+               &ett_frsrpc_frsrpc_FrsSendCommPktReq,
+       };
+
+       proto_dcerpc_frsrpc = proto_register_protocol("File Replication Service", "FRSRPC", "frsrpc");
+       proto_register_field_array(proto_dcerpc_frsrpc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_frsrpc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_frsrpc, ett_dcerpc_frsrpc,
+               &uuid_dcerpc_frsrpc, ver_dcerpc_frsrpc,
+               frsrpc_dissectors, hf_frsrpc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-frsrpc.h
new file mode 100644 (file)
index 0000000..41929d9
--- /dev/null
@@ -0,0 +1,145 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsrpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frsrpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_FRSRPC_H
+#define __PACKET_DCERPC_FRSRPC_H
+
+#define FRSRPC_CO_IFLAG_NONE   ( 0x0000000 )
+
+int frsrpc_dissect_struct_CommPktChunkGuidName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frsrpc_dissect_struct_CommPktGSVN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frsrpc_dissect_bitmap_CommPktCoCmdFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frsrpc_dissect_bitmap_CommPktCoCmdIFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_CO_STATUS_CO_ENTERED_LOG (0x00000000)
+#define FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO (0x00000001)
+#define FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED (0x00000002)
+#define FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED (0x00000003)
+#define FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING (0x00000004)
+#define FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO (0x00000005)
+#define FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED (0x00000006)
+#define FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED (0x00000007)
+#define FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING (0x00000008)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED (0x00000009)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_STARTED (0x0000000A)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED (0x0000000B)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY (0x0000000C)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING (0x0000000D)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING (0x0000000E)
+#define FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING (0x0000000F)
+#define FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM (0x00000013)
+#define FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION (0x00000014)
+#define FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG (0x00000015)
+#define FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED (0x00000016)
+#define FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED (0x00000017)
+#define FRSRPC_CO_STATUS_CO_ABORTED (0x00000018)
+extern const value_string frsrpc_frsrpc_CommPktCoCmdStatus_vals[];
+int frsrpc_dissect_enum_CommPktCoCmdStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsrpc_dissect_bitmap_CommPktCoCmdContentCmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_CO_LOCATION_FILE_CREATE (0x00000000)
+#define FRSRPC_CO_LOCATION_DIR_CREATE (0x00000000|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_DELETE (0x00000002)
+#define FRSRPC_CO_LOCATION_DIR_DELETE (0x00000002|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_MOVEIN (0x00000004)
+#define FRSRPC_CO_LOCATION_DIR_MOVEIN (0x00000004|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_MOVEIN2 (0x00000006)
+#define FRSRPC_CO_LOCATION_DIR_MOVEIN2 (0x00000006|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_MOVEOUT (0x00000008)
+#define FRSRPC_CO_LOCATION_DIR_MOVEOUT (0x00000008|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_MOVERS (0x0000000a)
+#define FRSRPC_CO_LOCATION_DIR_MOVERS (0x0000000a|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_MOVEDIR (0x0000000c)
+#define FRSRPC_CO_LOCATION_DIR_MOVEDIR (0x0000000c|0x00000001)
+#define FRSRPC_CO_LOCATION_FILE_NO_CMD (0x0000000e)
+#define FRSRPC_CO_LOCATION_DIR_NO_CMD (0x0000000e|0x00000001)
+extern const value_string frsrpc_frsrpc_CommPktCoCmdLocationCmd_vals[];
+int frsrpc_dissect_enum_CommPktCoCmdLocationCmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsrpc_dissect_struct_CommPktChangeOrderCommand(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_DATA_EXTENSION_TERMINATOR (0x00000000)
+#define FRSRPC_DATA_EXTENSION_MD5_CHECKSUM (0x00000001)
+#define FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT (0x00000002)
+extern const value_string frsrpc_frsrpc_CommPktDataExtensionType_vals[];
+int frsrpc_dissect_enum_CommPktDataExtensionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsrpc_dissect_struct_CommPktDataExtensionChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frsrpc_dissect_struct_CommPktDataExtensionRetryTimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K (0x0000)
+#define FRSRPC_CO_RECORD_EXTENSION_VERSION_1 (0x0001)
+extern const value_string frsrpc_frsrpc_CommPktCoRecordExtensionMajor_vals[];
+int frsrpc_dissect_enum_CommPktCoRecordExtensionMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsrpc_dissect_struct_CommPktCoRecordExtensionWin2k(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frsrpc_dissect_struct_CommPktChangeOrderRecordExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_COMMAND_REMOTE_CO (0x00000218)
+#define FRSRPC_COMMAND_RECEIVING_STATE (0x00000238)
+#define FRSRPC_COMMAND_REMOTE_CO_DONE (0x00000250)
+#define FRSRPC_COMMAND_ABORT_FETCH (0x00000246)
+#define FRSRPC_COMMAND_RETRY_FETCH (0x00000244)
+#define FRSRPC_COMMAND_NEED_JOIN (0x00000121)
+#define FRSRPC_COMMAND_START_JOIN (0x00000122)
+#define FRSRPC_COMMAND_JOINING (0x00000130)
+#define FRSRPC_COMMAND_JOINED (0x00000128)
+#define FRSRPC_COMMAND_UNJOIN_REMOTE (0x00000148)
+#define FRSRPC_COMMAND_WJOIN_DONE (0x00000136)
+#define FRSRPC_COMMAND_SEND_STAGE (0x00000228)
+extern const value_string frsrpc_frsrpc_CommPktCommand_vals[];
+int frsrpc_dissect_enum_CommPktCommand(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSRPC_COMM_PKT_CHUNK_BOP (0x0001)
+#define FRSRPC_COMM_PKT_CHUNK_COMMAND (0x0002)
+#define FRSRPC_COMM_PKT_CHUNK_TO (0x0003)
+#define FRSRPC_COMM_PKT_CHUNK_FROM (0x0004)
+#define FRSRPC_COMM_PKT_CHUNK_REPLICA (0x0005)
+#define FRSRPC_COMM_PKT_CHUNK_CONNECTION (0x0008)
+#define FRSRPC_COMM_PKT_CHUNK_JOIN_GUID (0x0006)
+#define FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME (0x0012)
+#define FRSRPC_COMM_PKT_CHUNK_VVECTOR (0x0007)
+#define FRSRPC_COMM_PKT_CHUNK_JOIN_TIME (0x0011)
+#define FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID (0x0014)
+#define FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID (0x0018)
+#define FRSRPC_COMM_PKT_CHUNK_BLOCK (0x0009)
+#define FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE (0x000A)
+#define FRSRPC_COMM_PKT_CHUNK_FILE_SIZE (0x000B)
+#define FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET (0x000C)
+#define FRSRPC_COMM_PKT_CHUNK_GVSN (0x000E)
+#define FRSRPC_COMM_PKT_CHUNK_CO_GUID (0x000F)
+#define FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER (0x0010)
+#define FRSRPC_COMM_PKT_CHUNK_REMOTE_CO (0x000D)
+#define FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K (0x0016)
+#define FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2 (0x0017)
+#define FRSRPC_COMM_PKT_CHUNK_EOP (0x0013)
+extern const value_string frsrpc_frsrpc_CommPktChunkType_vals[];
+int frsrpc_dissect_enum_CommPktChunkType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsrpc_dissect_struct_CommPktChunk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frsrpc_dissect_struct_CommPktChunkCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_COMM_PKT_MAJOR_0 (0x00000000)
+extern const value_string frsrpc_frsrpc_CommPktMajor_vals[];
+int frsrpc_dissect_enum_CommPktMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSRPC_COMM_PKT_MINOR_0 (0x00000000)
+#define FRSRPC_COMM_PKT_MINOR_1 (0x00000001)
+#define FRSRPC_COMM_PKT_MINOR_2 (0x00000002)
+#define FRSRPC_COMM_PKT_MINOR_3 (0x00000003)
+#define FRSRPC_COMM_PKT_MINOR_4 (0x00000004)
+#define FRSRPC_COMM_PKT_MINOR_5 (0x00000005)
+#define FRSRPC_COMM_PKT_MINOR_6 (0x00000006)
+#define FRSRPC_COMM_PKT_MINOR_7 (0x00000007)
+#define FRSRPC_COMM_PKT_MINOR_8 (0x00000008)
+#define FRSRPC_COMM_PKT_MINOR_9 (0x00000009)
+extern const value_string frsrpc_frsrpc_CommPktMinor_vals[];
+int frsrpc_dissect_enum_CommPktMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frsrpc_dissect_struct_FrsSendCommPktReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS (0x00000000)
+#define FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION (0x00000001)
+extern const value_string frsrpc_frsrpc_PartnerAuthLevel_vals[];
+int frsrpc_dissect_enum_PartnerAuthLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_FRSRPC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.c b/bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.c
new file mode 100644 (file)
index 0000000..7121412
--- /dev/null
@@ -0,0 +1,2958 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstrans.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstrans.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-frstrans.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_frstrans = -1;
+static gint ett_frstrans_frstrans_TransportFlags = -1;
+static gint ett_frstrans_frstrans_VersionVector = -1;
+static gint ett_frstrans_frstrans_Update = -1;
+static gint ett_frstrans_frstrans_EpoqueVector = -1;
+static gint ett_frstrans_frstrans_AsyncVersionVectorResponse = -1;
+static gint ett_frstrans_frstrans_AsyncResponseContext = -1;
+static gint ett_frstrans_frstrans_RdcParameterGeneric = -1;
+static gint ett_frstrans_frstrans_RdcParameterFilterMax = -1;
+static gint ett_frstrans_frstrans_RdcParameterFilterPoint = -1;
+static gint ett_frstrans_frstrans_RdcParameterUnion = -1;
+static gint ett_frstrans_frstrans_RdcParameters = -1;
+static gint ett_frstrans_frstrans_RdcFileInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_frstrans_frstrans_EpoqueVector_minute = -1;
+static gint hf_frstrans_frstrans_RdcGetFileDataAsync_server_context = -1;
+static gint hf_frstrans_frstrans_RdcParameterFilterPoint_max_chunk_size = -1;
+static gint hf_frstrans_frstrans_RawGetFileDataAsync_byte_pipe = -1;
+static gint hf_frstrans_frstrans_Update_sha1_hash = -1;
+static gint hf_frstrans_frstrans_RequestVersionVector_change_type = -1;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_year = -1;
+static gint hf_frstrans_frstrans_Update_fence = -1;
+static gint hf_frstrans_frstrans_RequestVersionVector_sequence_number = -1;
+static gint hf_frstrans_opnum = -1;
+static gint hf_frstrans_frstrans_VersionVector_db_guid = -1;
+static gint hf_frstrans_frstrans_RdcParameters_rdc_chunker_algorithm = -1;
+static gint hf_frstrans_frstrans_Update_uid_version = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_version_vector_diff_count = -1;
+static gint hf_frstrans_frstrans_EstablishConnection_connection_guid = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_credits_available = -1;
+static gint hf_frstrans_frstrans_RdcParameterFilterMax_max_window_size = -1;
+static gint hf_frstrans_frstrans_RawGetFileDataAsync_server_context = -1;
+static gint hf_frstrans_frstrans_Update_name = -1;
+static gint hf_frstrans_frstrans_VersionVector_low = -1;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector_count = -1;
+static gint hf_frstrans_frstrans_EstablishConnection_downstream_flags = -1;
+static gint hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_compression_algorithm = -1;
+static gint hf_frstrans_frstrans_Update_flags = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_machine_guid = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_connection_guid = -1;
+static gint hf_frstrans_frstrans_RdcParameterUnion_filter_point = -1;
+static gint hf_frstrans_frstrans_RdcParameterFilterMax_min_horizon_size = -1;
+static gint hf_frstrans_frstrans_RdcParameterUnion_filter_generic = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_second = -1;
+static gint hf_frstrans_frstrans_RdcGetFileDataAsync_byte_pipe = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_filter_parameters = -1;
+static gint hf_frstrans_frstrans_RequestVersionVector_content_set_guid = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_day = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_frs_update = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_is_end_of_file = -1;
+static gint hf_frstrans_frstrans_EstablishConnection_upstream_flags = -1;
+static gint hf_frstrans_frstrans_EstablishConnection_downstream_protocol_version = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_update_status = -1;
+static gint hf_frstrans_frstrans_AsyncPoll_connection_guid = -1;
+static gint hf_frstrans_frstrans_AsyncResponseContext_response = -1;
+static gint hf_frstrans_frstrans_AsyncResponseContext_sequence_number = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer = -1;
+static gint hf_frstrans_frstrans_RequestVersionVector_request_type = -1;
+static gint hf_frstrans_frstrans_Update_present = -1;
+static gint hf_frstrans_frstrans_Update_gsvn_version = -1;
+static gint hf_frstrans_frstrans_RdcParameterGeneric_chunker_type = -1;
+static gint hf_frstrans_frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_file_size_estimate = -1;
+static gint hf_frstrans_frstrans_CheckConnectivity_replica_set_guid = -1;
+static gint hf_frstrans_frstrans_EstablishSession_connection_guid = -1;
+static gint hf_frstrans_frstrans_EstablishSession_content_set_guid = -1;
+static gint hf_frstrans_frstrans_Update_content_set_guid = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_update_count = -1;
+static gint hf_frstrans_frstrans_Update_rdc_similarity = -1;
+static gint hf_frstrans_frstrans_AsyncPoll_response = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_version_vector_diff = -1;
+static gint hf_frstrans_frstrans_Update_clock = -1;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector = -1;
+static gint hf_frstrans_frstrans_VersionVector_high = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_day_of_week = -1;
+static gint hf_frstrans_frstrans_Update_create_time = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_milli_seconds = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_minimum_compatible_version = -1;
+static gint hf_frstrans_frstrans_CheckConnectivity_connection_guid = -1;
+static gint hf_frstrans_frstrans_Update_uid_db_guid = -1;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector_count = -1;
+static gint hf_frstrans_frstrans_Update_parent_version = -1;
+static gint hf_frstrans_frstrans_RdcParameterFilterPoint_min_chunk_size = -1;
+static gint hf_frstrans_frstrans_EstablishConnection_replica_set_guid = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_server_context = -1;
+static gint hf_frstrans_frstrans_Update_gsvn_db_guid = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_update_request_type = -1;
+static gint hf_frstrans_frstrans_Update_attributes = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_buffer_size = -1;
+static gint hf_frstrans_frstrans_RequestVersionVector_vv_generation = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_gvsn_version = -1;
+static gint hf_frstrans_frstrans_RdcParameterUnion_filter_max = -1;
+static gint hf_frstrans_frstrans_AsyncVersionVectorResponse_vv_generation = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_staging_policy = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_gvsn_db_guid = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_hash_requested = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_on_disk_file_size = -1;
+static gint hf_frstrans_frstrans_RdcParameters_u = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_version = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_hour = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_frs_update = -1;
+static gint hf_frstrans_frstrans_AsyncResponseContext_status = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_content_set_guid = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_desired = -1;
+static gint hf_frstrans_frstrans_Update_name_conflict = -1;
+static gint hf_frstrans_frstrans_EstablishConnection_upstream_protocol_version = -1;
+static gint hf_frstrans_frstrans_RequestUpdates_connection_guid = -1;
+static gint hf_frstrans_werror = -1;
+static gint hf_frstrans_frstrans_Update_parent_db_guid = -1;
+static gint hf_frstrans_frstrans_EpoqueVector_month = -1;
+static gint hf_frstrans_frstrans_RdcFileInfo_rdc_signature_levels = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_size_read = -1;
+static gint hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info = -1;
+static gint hf_frstrans_frstrans_RequestVersionVector_connection_guid = -1;
+
+static gint proto_dcerpc_frstrans = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_frstrans = {
+       0x897e2e5f, 0x93f3, 0x4376,
+       { 0x9c, 0x9c, 0xfd, 0x22, 0x77, 0x49, 0x5c, 0x27 }
+};
+static guint16 ver_dcerpc_frstrans = 1;
+
+const value_string frstrans_frstrans_ProtocolVersion_vals[] = {
+       { FRSTRANS_PROTOCOL_VERSION_W2K3R2, "FRSTRANS_PROTOCOL_VERSION_W2K3R2" },
+       { FRSTRANS_PROTOCOL_VERSION_LONGHORN_SERVER, "FRSTRANS_PROTOCOL_VERSION_LONGHORN_SERVER" },
+{ 0, NULL }
+};
+static const true_false_string frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY_tfs = {
+   "FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY is SET",
+   "FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY is NOT SET",
+};
+const value_string frstrans_frstrans_UpdateRequestType_vals[] = {
+       { FRSTRANS_UPDATE_REQUEST_ALL, "FRSTRANS_UPDATE_REQUEST_ALL" },
+       { FRSTRANS_UPDATE_REQUEST_TOMBSTONES, "FRSTRANS_UPDATE_REQUEST_TOMBSTONES" },
+       { FRSTRANS_UPDATE_REQUEST_LIVE, "FRSTRANS_UPDATE_REQUEST_LIVE" },
+{ 0, NULL }
+};
+const value_string frstrans_frstrans_UpdateStatus_vals[] = {
+       { FRSTRANS_UPDATE_STATUS_DONE, "FRSTRANS_UPDATE_STATUS_DONE" },
+       { FRSTRANS_UPDATE_STATUS_MORE, "FRSTRANS_UPDATE_STATUS_MORE" },
+{ 0, NULL }
+};
+static int frstrans_dissect_element_VersionVector_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_VersionVector_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_VersionVector_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_name_conflict(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_fence(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_clock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_sha1_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_rdc_similarity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_rdc_similarity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_uid_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_uid_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_gsvn_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_gsvn_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_parent_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_parent_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_Update_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frstrans_frstrans_VersionRequestType_vals[] = {
+       { FRSTRANS_VERSION_REQUEST_NORNAL_SYNC, "FRSTRANS_VERSION_REQUEST_NORNAL_SYNC" },
+       { FRSTRANS_VERSION_REQUEST_SLOW_SYNC, "FRSTRANS_VERSION_REQUEST_SLOW_SYNC" },
+       { FRSTRANS_VERSION_REQUEST_SLAVE_SYNC, "FRSTRANS_VERSION_REQUEST_SLAVE_SYNC" },
+{ 0, NULL }
+};
+const value_string frstrans_frstrans_VersionChangeType_vals[] = {
+       { FRSTRANS_VERSION_CHANGE_NOTIFY, "FRSTRANS_VERSION_CHANGE_NOTIFY" },
+       { FRSTRANS_VERSION_CHANGE_ALL, "FRSTRANS_VERSION_CHANGE_ALL" },
+{ 0, NULL }
+};
+static int frstrans_dissect_element_EpoqueVector_machine_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_day_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_minute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_second(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EpoqueVector_milli_seconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_vv_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_version_vector_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_version_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_version_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_version_vector__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncResponseContext_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncResponseContext_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncResponseContext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string frstrans_frstrans_RequestedStagingPolicy_vals[] = {
+       { FRSTRANS_STAGING_POLICY_SERVER_DEFAULTY, "FRSTRANS_STAGING_POLICY_SERVER_DEFAULTY" },
+       { FRSTRANS_STAGING_POLICY_STATGING_REQUIRED, "FRSTRANS_STAGING_POLICY_STATGING_REQUIRED" },
+       { FRSTRANS_STAGING_POLICY_RESTATGING_REQUIRED, "FRSTRANS_STAGING_POLICY_RESTATGING_REQUIRED" },
+{ 0, NULL }
+};
+const value_string frstrans_frstrans_RdcChunckerAlgorithm_vals[] = {
+       { FRSTRANS_RDC_FILTER_GENERIC, "FRSTRANS_RDC_FILTER_GENERIC" },
+       { FRSTRANS_RDC_FILTER_MAX, "FRSTRANS_RDC_FILTER_MAX" },
+       { FRSTRANS_RDC_FILTER_POINT, "FRSTRANS_RDC_FILTER_POINT" },
+       { FRSTRANS_RDC_MAX_ALGORITHM, "FRSTRANS_RDC_MAX_ALGORITHM" },
+{ 0, NULL }
+};
+static int frstrans_dissect_element_RdcParameterGeneric_chunker_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterGeneric_chunker_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterFilterMax_min_horizon_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterFilterMax_max_window_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterFilterPoint_min_chunk_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterFilterPoint_max_chunk_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterUnion_filter_generic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterUnion_filter_max(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameterUnion_filter_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcParameters_rdc_chunker_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *rdc_chunker_algorithm);
+static int frstrans_dissect_element_RdcParameters_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *rdc_chunker_algorithm);
+const value_string frstrans_frstrans_RdcVersion_vals[] = {
+       { FRSTRANS_RDC_VERSION, "FRSTRANS_RDC_VERSION" },
+{ 0, NULL }
+};
+const value_string frstrans_frstrans_RdcVersionCompatible_vals[] = {
+       { FRSTRANS_RDC_VERSION_COMPATIBLE, "FRSTRANS_RDC_VERSION_COMPATIBLE" },
+{ 0, NULL }
+};
+const value_string frstrans_frstrans_RdcCompressionAlgorithm_vals[] = {
+       { FRSTRANS_RDC_UNCOMPRESSED, "FRSTRANS_RDC_UNCOMPRESSED" },
+       { FRSTRANS_RDC_XPRESS, "FRSTRANS_RDC_XPRESS" },
+{ 0, NULL }
+};
+static int frstrans_dissect_element_RdcFileInfo_on_disk_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_file_size_estimate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_rdc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_rdc_minimum_compatible_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_rdc_signature_levels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_compression_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_rdc_filter_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcFileInfo_rdc_filter_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_CheckConnectivity_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_CheckConnectivity_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_downstream_protocol_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_downstream_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_upstream_protocol_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_upstream_protocol_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_upstream_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishConnection_upstream_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishSession_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_EstablishSession_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_credits_available(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_hash_requested(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_update_request_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_version_vector_diff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_version_vector_diff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_version_vector_diff_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_version_vector_diff__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_frs_update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_frs_update_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_frs_update__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_update_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_update_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_update_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_update_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_gvsn_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_gvsn_db_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_gvsn_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestUpdates_gvsn_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestVersionVector_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestVersionVector_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestVersionVector_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestVersionVector_request_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestVersionVector_change_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RequestVersionVector_vv_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncPoll_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncPoll_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_AsyncPoll_response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_frs_update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_frs_update_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_rdc_desired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_staging_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_staging_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_server_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_server_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_size_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_size_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_is_end_of_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_InitializeFileTransferAsync_is_end_of_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RawGetFileDataAsync_server_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RawGetFileDataAsync_server_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RawGetFileDataAsync_byte_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RawGetFileDataAsync_byte_pipe_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcGetFileDataAsync_server_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcGetFileDataAsync_server_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcGetFileDataAsync_byte_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstrans_dissect_element_RdcGetFileDataAsync_byte_pipe_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_PROTOCOL_VERSION_W2K3R2=0x00050000, */
+/* IDL:        FRSTRANS_PROTOCOL_VERSION_LONGHORN_SERVER=0x00050002, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_ProtocolVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY =  0x00000001 , */
+/* IDL: } */
+
+int
+frstrans_dissect_bitmap_TransportFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_frstrans_frstrans_TransportFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_frstrans_frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_UPDATE_REQUEST_ALL=0x0000, */
+/* IDL:        FRSTRANS_UPDATE_REQUEST_TOMBSTONES=0x0001, */
+/* IDL:        FRSTRANS_UPDATE_REQUEST_LIVE=0x0002, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_UpdateRequestType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_UPDATE_STATUS_DONE=0x0002, */
+/* IDL:        FRSTRANS_UPDATE_STATUS_MORE=0x0003, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_UpdateStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID db_guid; */
+/* IDL:        hyper low; */
+/* IDL:        hyper high; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_VersionVector_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_VersionVector_db_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_VersionVector_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_VersionVector_low, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_VersionVector_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_VersionVector_high, NULL);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_VersionVector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_VersionVector);
+       }
+       
+       offset = frstrans_dissect_element_VersionVector_db_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_VersionVector_low(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_VersionVector_high(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 present; */
+/* IDL:        uint32 name_conflict; */
+/* IDL:        uint32 attributes; */
+/* IDL:        NTTIME fence; */
+/* IDL:        NTTIME clock; */
+/* IDL:        NTTIME create_time; */
+/* IDL:        GUID content_set_guid; */
+/* IDL:        uint8 sha1_hash[20]; */
+/* IDL:        uint8 rdc_similarity[16]; */
+/* IDL:        GUID uid_db_guid; */
+/* IDL:        hyper uid_version; */
+/* IDL:        GUID gsvn_db_guid; */
+/* IDL:        hyper gsvn_version; */
+/* IDL:        GUID parent_db_guid; */
+/* IDL:        hyper parent_version; */
+/* IDL:        [charset(UTF16)] uint16 name[261]; */
+/* IDL:        uint32 flags; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_Update_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_present, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_name_conflict(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_name_conflict, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_attributes, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_fence(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_fence);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_clock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_clock);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_create_time);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_content_set_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_sha1_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 20; i++)
+               offset = frstrans_dissect_element_Update_sha1_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_sha1_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_sha1_hash, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_rdc_similarity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = frstrans_dissect_element_Update_rdc_similarity_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_rdc_similarity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_rdc_similarity, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_uid_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_uid_db_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_uid_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_uid_version, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_gsvn_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_gsvn_db_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_gsvn_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_gsvn_version, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_parent_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_parent_db_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_parent_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_parent_version, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_vstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_frstrans_frstrans_Update_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_Update_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_Update_flags, 0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_Update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_Update);
+       }
+       
+       offset = frstrans_dissect_element_Update_present(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_name_conflict(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_fence(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_clock(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_content_set_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_sha1_hash(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_rdc_similarity(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_uid_db_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_uid_version(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_gsvn_db_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_gsvn_version(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_parent_db_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_parent_version(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_name(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_Update_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_VERSION_REQUEST_NORNAL_SYNC=0x0000, */
+/* IDL:        FRSTRANS_VERSION_REQUEST_SLOW_SYNC=0x0001, */
+/* IDL:        FRSTRANS_VERSION_REQUEST_SLAVE_SYNC=0x0002, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_VersionRequestType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_VERSION_CHANGE_NOTIFY=0x0000, */
+/* IDL:        FRSTRANS_VERSION_CHANGE_ALL=0x0002, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_VersionChangeType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID machine_guid; */
+/* IDL:        uint32 year; */
+/* IDL:        uint32 month; */
+/* IDL:        uint32 day_of_week; */
+/* IDL:        uint32 day; */
+/* IDL:        uint32 hour; */
+/* IDL:        uint32 minute; */
+/* IDL:        uint32 second; */
+/* IDL:        uint32 milli_seconds; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_EpoqueVector_machine_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_machine_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_year, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_month, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_day_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_day_of_week, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_day, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_hour, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_minute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_minute, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_second(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_second, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EpoqueVector_milli_seconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EpoqueVector_milli_seconds, 0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_EpoqueVector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_EpoqueVector);
+       }
+       
+       offset = frstrans_dissect_element_EpoqueVector_machine_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_year(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_month(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_day_of_week(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_day(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_hour(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_minute(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_second(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_EpoqueVector_milli_seconds(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper vv_generation; */
+/* IDL:        uint32 version_vector_count; */
+/* IDL:        [unique(1)] [size_is(version_vector_count)] frstrans_VersionVector *version_vector; */
+/* IDL:        uint32 epoque_vector_count; */
+/* IDL:        [unique(1)] [size_is(epoque_vector_count)] frstrans_EpoqueVector *epoque_vector; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_vv_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_AsyncVersionVectorResponse_vv_generation, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_version_vector_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector_count, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_version_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_AsyncVersionVectorResponse_version_vector_, NDR_POINTER_UNIQUE, "Pointer to Version Vector (frstrans_VersionVector)",hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_version_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_AsyncVersionVectorResponse_version_vector__);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_version_vector__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_VersionVector(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector_count, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector_, NDR_POINTER_UNIQUE, "Pointer to Epoque Vector (frstrans_EpoqueVector)",hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector__);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_EpoqueVector(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector,0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_AsyncVersionVectorResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_AsyncVersionVectorResponse);
+       }
+       
+       offset = frstrans_dissect_element_AsyncVersionVectorResponse_vv_generation(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_AsyncVersionVectorResponse_version_vector_count(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_AsyncVersionVectorResponse_version_vector(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector_count(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_AsyncVersionVectorResponse_epoque_vector(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sequence_number; */
+/* IDL:        WERROR status; */
+/* IDL:        frstrans_AsyncVersionVectorResponse response; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_AsyncResponseContext_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_AsyncResponseContext_sequence_number, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncResponseContext_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_AsyncResponseContext_status, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncResponseContext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_AsyncVersionVectorResponse(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_AsyncResponseContext_response,0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_AsyncResponseContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_AsyncResponseContext);
+       }
+       
+       offset = frstrans_dissect_element_AsyncResponseContext_sequence_number(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_AsyncResponseContext_status(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_AsyncResponseContext_response(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_STAGING_POLICY_SERVER_DEFAULTY=0x0000, */
+/* IDL:        FRSTRANS_STAGING_POLICY_STATGING_REQUIRED=0x0001, */
+/* IDL:        FRSTRANS_STAGING_POLICY_RESTATGING_REQUIRED=0x0002, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_RequestedStagingPolicy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_RDC_FILTER_GENERIC=0x0000, */
+/* IDL:        FRSTRANS_RDC_FILTER_MAX=0x0001, */
+/* IDL:        FRSTRANS_RDC_FILTER_POINT=0x0002, */
+/* IDL:        FRSTRANS_RDC_MAX_ALGORITHM=0x0003, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_RdcChunckerAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        frstrans_RdcChunckerAlgorithm chunker_type; */
+/* IDL:        uint8 chunker_parameters[64]; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_RdcParameterGeneric_chunker_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_RdcChunckerAlgorithm(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterGeneric_chunker_type, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameterGeneric_chunker_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameterGeneric_chunker_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters, 0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_RdcParameterGeneric(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_3_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_RdcParameterGeneric);
+       }
+       
+       offset = frstrans_dissect_element_RdcParameterGeneric_chunker_type(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcParameterGeneric_chunker_parameters(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(128,1024*16)] uint16 min_horizon_size; */
+/* IDL:        [range(2,96)] uint16 max_window_size; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_RdcParameterFilterMax_min_horizon_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterFilterMax_min_horizon_size, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameterFilterMax_max_window_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterFilterMax_max_window_size, 0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_RdcParameterFilterMax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_RdcParameterFilterMax);
+       }
+       
+       offset = frstrans_dissect_element_RdcParameterFilterMax_min_horizon_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcParameterFilterMax_max_window_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 min_chunk_size; */
+/* IDL:        uint16 max_chunk_size; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_RdcParameterFilterPoint_min_chunk_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterFilterPoint_min_chunk_size, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameterFilterPoint_max_chunk_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameterFilterPoint_max_chunk_size, 0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_RdcParameterFilterPoint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_RdcParameterFilterPoint);
+       }
+       
+       offset = frstrans_dissect_element_RdcParameterFilterPoint_min_chunk_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcParameterFilterPoint_max_chunk_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(frstrans_RdcChunckerAlgorithm)] union { */
+/* IDL: [case(FRSTRANS_RDC_FILTER_GENERIC)] [case(FRSTRANS_RDC_FILTER_GENERIC)] frstrans_RdcParameterGeneric filter_generic; */
+/* IDL: [case(FRSTRANS_RDC_FILTER_MAX)] [case(FRSTRANS_RDC_FILTER_MAX)] frstrans_RdcParameterFilterMax filter_max; */
+/* IDL: [case(FRSTRANS_RDC_FILTER_POINT)] [case(FRSTRANS_RDC_FILTER_POINT)] frstrans_RdcParameterFilterPoint filter_point; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_RdcParameterUnion_filter_generic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_RdcParameterGeneric(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_RdcParameterUnion_filter_generic,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameterUnion_filter_max(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_RdcParameterFilterMax(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_RdcParameterUnion_filter_max,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameterUnion_filter_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_RdcParameterFilterPoint(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_RdcParameterUnion_filter_point,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_RdcParameterUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "frstrans_RdcParameterUnion");
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_RdcParameterUnion);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_3_BYTES;
+
+       switch(level) {
+               case FRSTRANS_RDC_FILTER_GENERIC:
+                       offset = frstrans_dissect_element_RdcParameterUnion_filter_generic(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSTRANS_RDC_FILTER_MAX:
+                       offset = frstrans_dissect_element_RdcParameterUnion_filter_max(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case FRSTRANS_RDC_FILTER_POINT:
+                       offset = frstrans_dissect_element_RdcParameterUnion_filter_point(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        frstrans_RdcChunckerAlgorithm rdc_chunker_algorithm; */
+/* IDL:        [switch_is(rdc_chunker_algorithm)] frstrans_RdcParameterUnion u; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_RdcParameters_rdc_chunker_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *rdc_chunker_algorithm)
+{
+       offset = frstrans_dissect_enum_RdcChunckerAlgorithm(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameters_rdc_chunker_algorithm, rdc_chunker_algorithm);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcParameters_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *rdc_chunker_algorithm)
+{
+       offset = frstrans_dissect_RdcParameterUnion(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcParameters_u, *rdc_chunker_algorithm);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_RdcParameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 rdc_chunker_algorithm;
+        u;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_3_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_RdcParameters);
+       }
+       
+       offset = frstrans_dissect_element_RdcParameters_rdc_chunker_algorithm(tvb, offset, pinfo, tree, drep, &rdc_chunker_algorithm);
+
+       offset = frstrans_dissect_element_RdcParameters_u(tvb, offset, pinfo, tree, drep, &rdc_chunker_algorithm);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_RDC_VERSION=0x0001, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_RdcVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_RDC_VERSION_COMPATIBLE=0x0001, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_RdcVersionCompatible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FRSTRANS_RDC_UNCOMPRESSED=0x0000, */
+/* IDL:        FRSTRANS_RDC_XPRESS=0x0001, */
+/* IDL: } */
+
+int
+frstrans_dissect_enum_RdcCompressionAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper on_disk_file_size; */
+/* IDL:        hyper file_size_estimate; */
+/* IDL:        frstrans_RdcVersion rdc_version; */
+/* IDL:        frstrans_RdcVersionCompatible rdc_minimum_compatible_version; */
+/* IDL:        [range(0,8)] uint8 rdc_signature_levels; */
+/* IDL:        frstrans_RdcCompressionAlgorithm compression_algorithm; */
+/* IDL:        [size_is(rdc_signature_levels)] frstrans_RdcParameters rdc_filter_parameters[*]; */
+/* IDL: } */
+
+static int
+frstrans_dissect_element_RdcFileInfo_on_disk_file_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcFileInfo_on_disk_file_size, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_file_size_estimate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcFileInfo_file_size_estimate, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_rdc_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_RdcVersion(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcFileInfo_rdc_version, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_rdc_minimum_compatible_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_RdcVersionCompatible(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcFileInfo_rdc_minimum_compatible_version, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_rdc_signature_levels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcFileInfo_rdc_signature_levels, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_compression_algorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_RdcCompressionAlgorithm(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcFileInfo_compression_algorithm, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_rdc_filter_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RdcFileInfo_rdc_filter_parameters_);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcFileInfo_rdc_filter_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_RdcParameters(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_RdcFileInfo_rdc_filter_parameters,0);
+
+       return offset;
+}
+
+int
+frstrans_dissect_struct_RdcFileInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_frstrans_frstrans_RdcFileInfo);
+       }
+       
+       offset = frstrans_dissect_element_RdcFileInfo_on_disk_file_size(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcFileInfo_file_size_estimate(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcFileInfo_rdc_version(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcFileInfo_rdc_minimum_compatible_version(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcFileInfo_rdc_signature_levels(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcFileInfo_compression_algorithm(tvb, offset, pinfo, tree, drep);
+
+       offset = frstrans_dissect_element_RdcFileInfo_rdc_filter_parameters(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+
+static int
+frstrans_dissect_element_CheckConnectivity_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_CheckConnectivity_replica_set_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_CheckConnectivity_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_CheckConnectivity_connection_guid, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_CheckConnectivity( */
+/* IDL: [in] GUID replica_set_guid, */
+/* IDL: [in] GUID connection_guid */
+/* IDL: ); */
+
+static int
+frstrans_dissect_CheckConnectivity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CheckConnectivity";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_CheckConnectivity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CheckConnectivity";
+       offset = frstrans_dissect_element_CheckConnectivity_replica_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_CheckConnectivity_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_replica_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishConnection_replica_set_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishConnection_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_downstream_protocol_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_ProtocolVersion(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishConnection_downstream_protocol_version, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_downstream_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_bitmap_TransportFlags(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishConnection_downstream_flags, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_upstream_protocol_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_EstablishConnection_upstream_protocol_version_, NDR_POINTER_REF, "Pointer to Upstream Protocol Version (frstrans_ProtocolVersion)",hf_frstrans_frstrans_EstablishConnection_upstream_protocol_version);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_upstream_protocol_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_ProtocolVersion(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishConnection_upstream_protocol_version, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_upstream_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_EstablishConnection_upstream_flags_, NDR_POINTER_REF, "Pointer to Upstream Flags (frstrans_TransportFlags)",hf_frstrans_frstrans_EstablishConnection_upstream_flags);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishConnection_upstream_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_bitmap_TransportFlags(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishConnection_upstream_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_EstablishConnection( */
+/* IDL: [in] GUID replica_set_guid, */
+/* IDL: [in] GUID connection_guid, */
+/* IDL: [in] frstrans_ProtocolVersion downstream_protocol_version, */
+/* IDL: [in] frstrans_TransportFlags downstream_flags, */
+/* IDL: [out] [ref] frstrans_ProtocolVersion *upstream_protocol_version, */
+/* IDL: [out] [ref] frstrans_TransportFlags *upstream_flags */
+/* IDL: ); */
+
+static int
+frstrans_dissect_EstablishConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EstablishConnection";
+       offset = frstrans_dissect_element_EstablishConnection_upstream_protocol_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_EstablishConnection_upstream_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_EstablishConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EstablishConnection";
+       offset = frstrans_dissect_element_EstablishConnection_replica_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_EstablishConnection_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_EstablishConnection_downstream_protocol_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_EstablishConnection_downstream_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishSession_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishSession_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_EstablishSession_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_EstablishSession_content_set_guid, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_EstablishSession( */
+/* IDL: [in] GUID connection_guid, */
+/* IDL: [in] GUID content_set_guid */
+/* IDL: ); */
+
+static int
+frstrans_dissect_EstablishSession_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EstablishSession";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_EstablishSession_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EstablishSession";
+       offset = frstrans_dissect_element_EstablishSession_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_EstablishSession_content_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_content_set_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_credits_available(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_credits_available, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_hash_requested(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_hash_requested, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_update_request_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_UpdateRequestType(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_update_request_type, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_version_vector_diff_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_version_vector_diff_count, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_version_vector_diff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_version_vector_diff_, NDR_POINTER_REF, "Pointer to Version Vector Diff (frstrans_VersionVector)",hf_frstrans_frstrans_RequestUpdates_version_vector_diff);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_version_vector_diff_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_version_vector_diff__);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_version_vector_diff__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_VersionVector(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_RequestUpdates_version_vector_diff,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_frs_update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_frs_update_, NDR_POINTER_REF, "Pointer to Frs Update (frstrans_Update)",hf_frstrans_frstrans_RequestUpdates_frs_update);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_frs_update_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_frs_update__);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_frs_update__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_Update(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_RequestUpdates_frs_update,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_update_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_update_count_, NDR_POINTER_REF, "Pointer to Update Count (uint32)",hf_frstrans_frstrans_RequestUpdates_update_count);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_update_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_update_count, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_update_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_update_status_, NDR_POINTER_REF, "Pointer to Update Status (frstrans_UpdateStatus)",hf_frstrans_frstrans_RequestUpdates_update_status);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_update_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_UpdateStatus(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_update_status, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_gvsn_db_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_gvsn_db_guid_, NDR_POINTER_REF, "Pointer to Gvsn Db Guid (GUID)",hf_frstrans_frstrans_RequestUpdates_gvsn_db_guid);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_gvsn_db_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_gvsn_db_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_gvsn_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RequestUpdates_gvsn_version_, NDR_POINTER_REF, "Pointer to Gvsn Version (hyper)",hf_frstrans_frstrans_RequestUpdates_gvsn_version);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestUpdates_gvsn_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestUpdates_gvsn_version, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_RequestUpdates( */
+/* IDL: [in] GUID connection_guid, */
+/* IDL: [in] GUID content_set_guid, */
+/* IDL: [in] [range(0,256)] uint32 credits_available, */
+/* IDL: [in] [range(0,1)] uint32 hash_requested, */
+/* IDL: [in] [range(0,2)] frstrans_UpdateRequestType update_request_type, */
+/* IDL: [in] uint32 version_vector_diff_count, */
+/* IDL: [ref] [in] [size_is(version_vector_diff_count)] frstrans_VersionVector *version_vector_diff, */
+/* IDL: [out] [ref] [length_is(*update_count)] [size_is(credits_available)] frstrans_Update *frs_update, */
+/* IDL: [out] [ref] uint32 *update_count, */
+/* IDL: [out] [ref] frstrans_UpdateStatus *update_status, */
+/* IDL: [out] [ref] GUID *gvsn_db_guid, */
+/* IDL: [out] [ref] hyper *gvsn_version */
+/* IDL: ); */
+
+static int
+frstrans_dissect_RequestUpdates_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RequestUpdates";
+       offset = frstrans_dissect_element_RequestUpdates_frs_update(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_RequestUpdates_update_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_RequestUpdates_update_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_RequestUpdates_gvsn_db_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_RequestUpdates_gvsn_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_RequestUpdates_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RequestUpdates";
+       offset = frstrans_dissect_element_RequestUpdates_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestUpdates_content_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestUpdates_credits_available(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestUpdates_hash_requested(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestUpdates_update_request_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestUpdates_version_vector_diff_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestUpdates_version_vector_diff(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestVersionVector_sequence_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestVersionVector_sequence_number, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestVersionVector_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestVersionVector_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestVersionVector_content_set_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestVersionVector_content_set_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestVersionVector_request_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_VersionRequestType(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestVersionVector_request_type, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestVersionVector_change_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_VersionChangeType(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestVersionVector_change_type, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RequestVersionVector_vv_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RequestVersionVector_vv_generation, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_RequestVersionVector( */
+/* IDL: [in] uint32 sequence_number, */
+/* IDL: [in] GUID connection_guid, */
+/* IDL: [in] GUID content_set_guid, */
+/* IDL: [in] [range(0,2)] frstrans_VersionRequestType request_type, */
+/* IDL: [in] [range(0,2)] frstrans_VersionChangeType change_type, */
+/* IDL: [in] hyper vv_generation */
+/* IDL: ); */
+
+static int
+frstrans_dissect_RequestVersionVector_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RequestVersionVector";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_RequestVersionVector_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RequestVersionVector";
+       offset = frstrans_dissect_element_RequestVersionVector_sequence_number(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestVersionVector_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestVersionVector_content_set_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestVersionVector_request_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestVersionVector_change_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_RequestVersionVector_vv_generation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncPoll_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_AsyncPoll_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncPoll_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_AsyncPoll_response_, NDR_POINTER_REF, "Pointer to Response (frstrans_AsyncResponseContext)",hf_frstrans_frstrans_AsyncPoll_response);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_AsyncPoll_response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_AsyncResponseContext(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_AsyncPoll_response,0);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_AsyncPoll( */
+/* IDL: [in] GUID connection_guid, */
+/* IDL: [out] [ref] frstrans_AsyncResponseContext *response */
+/* IDL: ); */
+
+static int
+frstrans_dissect_AsyncPoll_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AsyncPoll";
+       offset = frstrans_dissect_element_AsyncPoll_response(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_AsyncPoll_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AsyncPoll";
+       offset = frstrans_dissect_element_AsyncPoll_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: void FRSTRANS_REQUEST_RECORDS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_REQUEST_RECORDS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_REQUEST_RECORDS";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_REQUEST_RECORDS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_REQUEST_RECORDS";
+       return offset;
+}
+
+/* IDL: void FRSTRANS_UPDATE_CANCEL( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_UPDATE_CANCEL_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_UPDATE_CANCEL";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_UPDATE_CANCEL_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_UPDATE_CANCEL";
+       return offset;
+}
+
+/* IDL: void FRSTRANS_RAW_GET_FILE_DATA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_RAW_GET_FILE_DATA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RAW_GET_FILE_DATA";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_RAW_GET_FILE_DATA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RAW_GET_FILE_DATA";
+       return offset;
+}
+
+/* IDL: void FRSTRANS_RDC_GET_SIGNATURES( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_RDC_GET_SIGNATURES_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_GET_SIGNATURES";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_RDC_GET_SIGNATURES_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_GET_SIGNATURES";
+       return offset;
+}
+
+/* IDL: void FRSTRANS_RDC_PUSH_SOURCE_NEEDS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_RDC_PUSH_SOURCE_NEEDS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_PUSH_SOURCE_NEEDS";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_RDC_PUSH_SOURCE_NEEDS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_PUSH_SOURCE_NEEDS";
+       return offset;
+}
+
+/* IDL: void FRSTRANS_RDC_GET_FILE_DATA( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_RDC_GET_FILE_DATA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_GET_FILE_DATA";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_RDC_GET_FILE_DATA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_GET_FILE_DATA";
+       return offset;
+}
+
+/* IDL: void FRSTRANS_RDC_CLOSE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_RDC_CLOSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_CLOSE";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_RDC_CLOSE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_RDC_CLOSE";
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_connection_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_connection_guid, NULL);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_frs_update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_frs_update_, NDR_POINTER_REF, "Pointer to Frs Update (frstrans_Update)",hf_frstrans_frstrans_InitializeFileTransferAsync_frs_update);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_frs_update_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_Update(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_InitializeFileTransferAsync_frs_update,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_rdc_desired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_desired, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_staging_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_staging_policy_, NDR_POINTER_REF, "Pointer to Staging Policy (frstrans_RequestedStagingPolicy)",hf_frstrans_frstrans_InitializeFileTransferAsync_staging_policy);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_staging_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_enum_RequestedStagingPolicy(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_staging_policy, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_server_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_server_context_, NDR_POINTER_REF, "Pointer to Server Context (policy_handle)",hf_frstrans_frstrans_InitializeFileTransferAsync_server_context);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_server_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_server_context, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info_, NDR_POINTER_REF, "Pointer to Rdc File Info (frstrans_RdcFileInfo)",hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info__, NDR_POINTER_UNIQUE, "Pointer to Rdc File Info (frstrans_RdcFileInfo)",hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = frstrans_dissect_struct_RdcFileInfo(tvb,offset,pinfo,tree,drep,hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info,0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_data_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_data_buffer_, NDR_POINTER_REF, "Pointer to Data Buffer (uint8)",hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_data_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_data_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_buffer_size, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_size_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_size_read_, NDR_POINTER_REF, "Pointer to Size Read (uint32)",hf_frstrans_frstrans_InitializeFileTransferAsync_size_read);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_size_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_size_read, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_is_end_of_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_InitializeFileTransferAsync_is_end_of_file_, NDR_POINTER_REF, "Pointer to Is End Of File (uint32)",hf_frstrans_frstrans_InitializeFileTransferAsync_is_end_of_file);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_InitializeFileTransferAsync_is_end_of_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_InitializeFileTransferAsync_is_end_of_file, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_InitializeFileTransferAsync( */
+/* IDL: [in] GUID connection_guid, */
+/* IDL: [out] [in] [ref] frstrans_Update *frs_update, */
+/* IDL: [in] [range(0,1)] uint32 rdc_desired, */
+/* IDL: [out] [in] [ref] frstrans_RequestedStagingPolicy *staging_policy, */
+/* IDL: [out] [ref] policy_handle *server_context, */
+/* IDL: [out] [ref] frstrans_RdcFileInfo **rdc_file_info, */
+/* IDL: [out] [ref] [length_is(*size_read)] [size_is(buffer_size)] uint8 *data_buffer, */
+/* IDL: [in] [range(0,262144)] uint32 buffer_size, */
+/* IDL: [out] [ref] uint32 *size_read, */
+/* IDL: [out] [ref] uint32 *is_end_of_file */
+/* IDL: ); */
+
+static int
+frstrans_dissect_InitializeFileTransferAsync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="InitializeFileTransferAsync";
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_frs_update(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_staging_policy(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_server_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_rdc_file_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_data_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_size_read(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_is_end_of_file(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_InitializeFileTransferAsync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="InitializeFileTransferAsync";
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_connection_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_frs_update(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_rdc_desired(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_staging_policy(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = frstrans_dissect_element_InitializeFileTransferAsync_buffer_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: void FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+frstrans_dissect_FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE";
+       return offset;
+}
+
+static int
+frstrans_dissect_FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE";
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RawGetFileDataAsync_server_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RawGetFileDataAsync_server_context_, NDR_POINTER_REF, "Pointer to Server Context (policy_handle)",hf_frstrans_frstrans_RawGetFileDataAsync_server_context);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RawGetFileDataAsync_server_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RawGetFileDataAsync_server_context, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RawGetFileDataAsync_byte_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RawGetFileDataAsync_byte_pipe_, NDR_POINTER_REF, "Pointer to Byte Pipe (frstrans_BytePipe)",hf_frstrans_frstrans_RawGetFileDataAsync_byte_pipe);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RawGetFileDataAsync_byte_pipe_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_RawGetFileDataAsync( */
+/* IDL: [in] [ref] policy_handle *server_context, */
+/* IDL: [out] [ref] frstrans_BytePipe *byte_pipe */
+/* IDL: ); */
+
+static int
+frstrans_dissect_RawGetFileDataAsync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RawGetFileDataAsync";
+       offset = frstrans_dissect_element_RawGetFileDataAsync_byte_pipe(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_RawGetFileDataAsync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RawGetFileDataAsync";
+       offset = frstrans_dissect_element_RawGetFileDataAsync_server_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcGetFileDataAsync_server_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RdcGetFileDataAsync_server_context_, NDR_POINTER_REF, "Pointer to Server Context (policy_handle)",hf_frstrans_frstrans_RdcGetFileDataAsync_server_context);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcGetFileDataAsync_server_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_frstrans_frstrans_RdcGetFileDataAsync_server_context, 0);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcGetFileDataAsync_byte_pipe(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, frstrans_dissect_element_RdcGetFileDataAsync_byte_pipe_, NDR_POINTER_REF, "Pointer to Byte Pipe (frstrans_BytePipe)",hf_frstrans_frstrans_RdcGetFileDataAsync_byte_pipe);
+
+       return offset;
+}
+
+static int
+frstrans_dissect_element_RdcGetFileDataAsync_byte_pipe_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+/* IDL: WERROR frstrans_RdcGetFileDataAsync( */
+/* IDL: [in] [ref] policy_handle *server_context, */
+/* IDL: [out] [ref] frstrans_BytePipe *byte_pipe */
+/* IDL: ); */
+
+static int
+frstrans_dissect_RdcGetFileDataAsync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RdcGetFileDataAsync";
+       offset = frstrans_dissect_element_RdcGetFileDataAsync_byte_pipe(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_frstrans_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+frstrans_dissect_RdcGetFileDataAsync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RdcGetFileDataAsync";
+       offset = frstrans_dissect_element_RdcGetFileDataAsync_server_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector frstrans_dissectors[] = {
+       { 0, "CheckConnectivity",
+          frstrans_dissect_CheckConnectivity_request, frstrans_dissect_CheckConnectivity_response},
+       { 1, "EstablishConnection",
+          frstrans_dissect_EstablishConnection_request, frstrans_dissect_EstablishConnection_response},
+       { 2, "EstablishSession",
+          frstrans_dissect_EstablishSession_request, frstrans_dissect_EstablishSession_response},
+       { 3, "RequestUpdates",
+          frstrans_dissect_RequestUpdates_request, frstrans_dissect_RequestUpdates_response},
+       { 4, "RequestVersionVector",
+          frstrans_dissect_RequestVersionVector_request, frstrans_dissect_RequestVersionVector_response},
+       { 5, "AsyncPoll",
+          frstrans_dissect_AsyncPoll_request, frstrans_dissect_AsyncPoll_response},
+       { 6, "FRSTRANS_REQUEST_RECORDS",
+          frstrans_dissect_FRSTRANS_REQUEST_RECORDS_request, frstrans_dissect_FRSTRANS_REQUEST_RECORDS_response},
+       { 7, "FRSTRANS_UPDATE_CANCEL",
+          frstrans_dissect_FRSTRANS_UPDATE_CANCEL_request, frstrans_dissect_FRSTRANS_UPDATE_CANCEL_response},
+       { 8, "FRSTRANS_RAW_GET_FILE_DATA",
+          frstrans_dissect_FRSTRANS_RAW_GET_FILE_DATA_request, frstrans_dissect_FRSTRANS_RAW_GET_FILE_DATA_response},
+       { 9, "FRSTRANS_RDC_GET_SIGNATURES",
+          frstrans_dissect_FRSTRANS_RDC_GET_SIGNATURES_request, frstrans_dissect_FRSTRANS_RDC_GET_SIGNATURES_response},
+       { 10, "FRSTRANS_RDC_PUSH_SOURCE_NEEDS",
+          frstrans_dissect_FRSTRANS_RDC_PUSH_SOURCE_NEEDS_request, frstrans_dissect_FRSTRANS_RDC_PUSH_SOURCE_NEEDS_response},
+       { 11, "FRSTRANS_RDC_GET_FILE_DATA",
+          frstrans_dissect_FRSTRANS_RDC_GET_FILE_DATA_request, frstrans_dissect_FRSTRANS_RDC_GET_FILE_DATA_response},
+       { 12, "FRSTRANS_RDC_CLOSE",
+          frstrans_dissect_FRSTRANS_RDC_CLOSE_request, frstrans_dissect_FRSTRANS_RDC_CLOSE_response},
+       { 13, "InitializeFileTransferAsync",
+          frstrans_dissect_InitializeFileTransferAsync_request, frstrans_dissect_InitializeFileTransferAsync_response},
+       { 14, "FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE",
+          frstrans_dissect_FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE_request, frstrans_dissect_FRSTRANS_OPNUM_0E_NOT_USED_ON_THE_WIRE_response},
+       { 15, "RawGetFileDataAsync",
+          frstrans_dissect_RawGetFileDataAsync_request, frstrans_dissect_RawGetFileDataAsync_response},
+       { 16, "RdcGetFileDataAsync",
+          frstrans_dissect_RdcGetFileDataAsync_request, frstrans_dissect_RdcGetFileDataAsync_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_frstrans(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_frstrans_frstrans_EpoqueVector_minute,
+         { "Minute", "frstrans.frstrans_EpoqueVector.minute", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcGetFileDataAsync_server_context,
+         { "Server Context", "frstrans.frstrans_RdcGetFileDataAsync.server_context", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterFilterPoint_max_chunk_size,
+         { "Max Chunk Size", "frstrans.frstrans_RdcParameterFilterPoint.max_chunk_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RawGetFileDataAsync_byte_pipe,
+         { "Byte Pipe", "frstrans.frstrans_RawGetFileDataAsync.byte_pipe", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_sha1_hash,
+         { "Sha1 Hash", "frstrans.frstrans_Update.sha1_hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestVersionVector_change_type,
+         { "Change Type", "frstrans.frstrans_RequestVersionVector.change_type", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_VersionChangeType_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector,
+         { "Version Vector", "frstrans.frstrans_AsyncVersionVectorResponse.version_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_year,
+         { "Year", "frstrans.frstrans_EpoqueVector.year", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_fence,
+         { "Fence", "frstrans.frstrans_Update.fence", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestVersionVector_sequence_number,
+         { "Sequence Number", "frstrans.frstrans_RequestVersionVector.sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_opnum,
+         { "Operation", "frstrans.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_VersionVector_db_guid,
+         { "Db Guid", "frstrans.frstrans_VersionVector.db_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameters_rdc_chunker_algorithm,
+         { "Rdc Chunker Algorithm", "frstrans.frstrans_RdcParameters.rdc_chunker_algorithm", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RdcChunckerAlgorithm_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_uid_version,
+         { "Uid Version", "frstrans.frstrans_Update.uid_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_version_vector_diff_count,
+         { "Version Vector Diff Count", "frstrans.frstrans_RequestUpdates.version_vector_diff_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishConnection_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_EstablishConnection.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_credits_available,
+         { "Credits Available", "frstrans.frstrans_RequestUpdates.credits_available", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterFilterMax_max_window_size,
+         { "Max Window Size", "frstrans.frstrans_RdcParameterFilterMax.max_window_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RawGetFileDataAsync_server_context,
+         { "Server Context", "frstrans.frstrans_RawGetFileDataAsync.server_context", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_name,
+         { "Name", "frstrans.frstrans_Update.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_VersionVector_low,
+         { "Low", "frstrans.frstrans_VersionVector.low", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncVersionVectorResponse_version_vector_count,
+         { "Version Vector Count", "frstrans.frstrans_AsyncVersionVectorResponse.version_vector_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishConnection_downstream_flags,
+         { "Downstream Flags", "frstrans.frstrans_EstablishConnection.downstream_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterGeneric_chunker_parameters,
+         { "Chunker Parameters", "frstrans.frstrans_RdcParameterGeneric.chunker_parameters", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_compression_algorithm,
+         { "Compression Algorithm", "frstrans.frstrans_RdcFileInfo.compression_algorithm", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RdcCompressionAlgorithm_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_flags,
+         { "Flags", "frstrans.frstrans_Update.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_machine_guid,
+         { "Machine Guid", "frstrans.frstrans_EpoqueVector.machine_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_InitializeFileTransferAsync.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterUnion_filter_point,
+         { "Filter Point", "frstrans.frstrans_RdcParameterUnion.filter_point", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterFilterMax_min_horizon_size,
+         { "Min Horizon Size", "frstrans.frstrans_RdcParameterFilterMax.min_horizon_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterUnion_filter_generic,
+         { "Filter Generic", "frstrans.frstrans_RdcParameterUnion.filter_generic", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_second,
+         { "Second", "frstrans.frstrans_EpoqueVector.second", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcGetFileDataAsync_byte_pipe,
+         { "Byte Pipe", "frstrans.frstrans_RdcGetFileDataAsync.byte_pipe", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_rdc_filter_parameters,
+         { "Rdc Filter Parameters", "frstrans.frstrans_RdcFileInfo.rdc_filter_parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestVersionVector_content_set_guid,
+         { "Content Set Guid", "frstrans.frstrans_RequestVersionVector.content_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_day,
+         { "Day", "frstrans.frstrans_EpoqueVector.day", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_frs_update,
+         { "Frs Update", "frstrans.frstrans_InitializeFileTransferAsync.frs_update", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_is_end_of_file,
+         { "Is End Of File", "frstrans.frstrans_InitializeFileTransferAsync.is_end_of_file", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishConnection_upstream_flags,
+         { "Upstream Flags", "frstrans.frstrans_EstablishConnection.upstream_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishConnection_downstream_protocol_version,
+         { "Downstream Protocol Version", "frstrans.frstrans_EstablishConnection.downstream_protocol_version", FT_UINT32, BASE_DEC, VALS(frstrans_frstrans_ProtocolVersion_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_update_status,
+         { "Update Status", "frstrans.frstrans_RequestUpdates.update_status", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_UpdateStatus_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncPoll_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_AsyncPoll.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncResponseContext_response,
+         { "Response", "frstrans.frstrans_AsyncResponseContext.response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncResponseContext_sequence_number,
+         { "Sequence Number", "frstrans.frstrans_AsyncResponseContext.sequence_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_data_buffer,
+         { "Data Buffer", "frstrans.frstrans_InitializeFileTransferAsync.data_buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestVersionVector_request_type,
+         { "Request Type", "frstrans.frstrans_RequestVersionVector.request_type", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_VersionRequestType_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_present,
+         { "Present", "frstrans.frstrans_Update.present", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_gsvn_version,
+         { "Gsvn Version", "frstrans.frstrans_Update.gsvn_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterGeneric_chunker_type,
+         { "Chunker Type", "frstrans.frstrans_RdcParameterGeneric.chunker_type", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RdcChunckerAlgorithm_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY,
+         { "Frstrans Transport Supports Rdc Similarity", "frstrans.frstrans_TransportFlags.FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY", FT_BOOLEAN, 32, TFS(&frstrans_TransportFlags_FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_file_size_estimate,
+         { "File Size Estimate", "frstrans.frstrans_RdcFileInfo.file_size_estimate", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_CheckConnectivity_replica_set_guid,
+         { "Replica Set Guid", "frstrans.frstrans_CheckConnectivity.replica_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishSession_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_EstablishSession.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishSession_content_set_guid,
+         { "Content Set Guid", "frstrans.frstrans_EstablishSession.content_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_content_set_guid,
+         { "Content Set Guid", "frstrans.frstrans_Update.content_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_update_count,
+         { "Update Count", "frstrans.frstrans_RequestUpdates.update_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_rdc_similarity,
+         { "Rdc Similarity", "frstrans.frstrans_Update.rdc_similarity", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncPoll_response,
+         { "Response", "frstrans.frstrans_AsyncPoll.response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_version_vector_diff,
+         { "Version Vector Diff", "frstrans.frstrans_RequestUpdates.version_vector_diff", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_clock,
+         { "Clock", "frstrans.frstrans_Update.clock", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector,
+         { "Epoque Vector", "frstrans.frstrans_AsyncVersionVectorResponse.epoque_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_VersionVector_high,
+         { "High", "frstrans.frstrans_VersionVector.high", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_day_of_week,
+         { "Day Of Week", "frstrans.frstrans_EpoqueVector.day_of_week", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_create_time,
+         { "Create Time", "frstrans.frstrans_Update.create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_milli_seconds,
+         { "Milli Seconds", "frstrans.frstrans_EpoqueVector.milli_seconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_rdc_minimum_compatible_version,
+         { "Rdc Minimum Compatible Version", "frstrans.frstrans_RdcFileInfo.rdc_minimum_compatible_version", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RdcVersionCompatible_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_CheckConnectivity_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_CheckConnectivity.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_uid_db_guid,
+         { "Uid Db Guid", "frstrans.frstrans_Update.uid_db_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncVersionVectorResponse_epoque_vector_count,
+         { "Epoque Vector Count", "frstrans.frstrans_AsyncVersionVectorResponse.epoque_vector_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_parent_version,
+         { "Parent Version", "frstrans.frstrans_Update.parent_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterFilterPoint_min_chunk_size,
+         { "Min Chunk Size", "frstrans.frstrans_RdcParameterFilterPoint.min_chunk_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishConnection_replica_set_guid,
+         { "Replica Set Guid", "frstrans.frstrans_EstablishConnection.replica_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_server_context,
+         { "Server Context", "frstrans.frstrans_InitializeFileTransferAsync.server_context", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_gsvn_db_guid,
+         { "Gsvn Db Guid", "frstrans.frstrans_Update.gsvn_db_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_update_request_type,
+         { "Update Request Type", "frstrans.frstrans_RequestUpdates.update_request_type", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_UpdateRequestType_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_attributes,
+         { "Attributes", "frstrans.frstrans_Update.attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_buffer_size,
+         { "Buffer Size", "frstrans.frstrans_InitializeFileTransferAsync.buffer_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestVersionVector_vv_generation,
+         { "Vv Generation", "frstrans.frstrans_RequestVersionVector.vv_generation", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_gvsn_version,
+         { "Gvsn Version", "frstrans.frstrans_RequestUpdates.gvsn_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameterUnion_filter_max,
+         { "Filter Max", "frstrans.frstrans_RdcParameterUnion.filter_max", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncVersionVectorResponse_vv_generation,
+         { "Vv Generation", "frstrans.frstrans_AsyncVersionVectorResponse.vv_generation", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_staging_policy,
+         { "Staging Policy", "frstrans.frstrans_InitializeFileTransferAsync.staging_policy", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RequestedStagingPolicy_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_gvsn_db_guid,
+         { "Gvsn Db Guid", "frstrans.frstrans_RequestUpdates.gvsn_db_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_hash_requested,
+         { "Hash Requested", "frstrans.frstrans_RequestUpdates.hash_requested", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_on_disk_file_size,
+         { "On Disk File Size", "frstrans.frstrans_RdcFileInfo.on_disk_file_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcParameters_u,
+         { "U", "frstrans.frstrans_RdcParameters.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_rdc_version,
+         { "Rdc Version", "frstrans.frstrans_RdcFileInfo.rdc_version", FT_UINT1632, BASE_DEC, VALS(frstrans_frstrans_RdcVersion_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_hour,
+         { "Hour", "frstrans.frstrans_EpoqueVector.hour", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_frs_update,
+         { "Frs Update", "frstrans.frstrans_RequestUpdates.frs_update", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_AsyncResponseContext_status,
+         { "Status", "frstrans.frstrans_AsyncResponseContext.status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_content_set_guid,
+         { "Content Set Guid", "frstrans.frstrans_RequestUpdates.content_set_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_desired,
+         { "Rdc Desired", "frstrans.frstrans_InitializeFileTransferAsync.rdc_desired", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_name_conflict,
+         { "Name Conflict", "frstrans.frstrans_Update.name_conflict", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EstablishConnection_upstream_protocol_version,
+         { "Upstream Protocol Version", "frstrans.frstrans_EstablishConnection.upstream_protocol_version", FT_UINT32, BASE_DEC, VALS(frstrans_frstrans_ProtocolVersion_vals), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestUpdates_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_RequestUpdates.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_werror,
+         { "Windows Error", "frstrans.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_Update_parent_db_guid,
+         { "Parent Db Guid", "frstrans.frstrans_Update.parent_db_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_EpoqueVector_month,
+         { "Month", "frstrans.frstrans_EpoqueVector.month", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RdcFileInfo_rdc_signature_levels,
+         { "Rdc Signature Levels", "frstrans.frstrans_RdcFileInfo.rdc_signature_levels", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_size_read,
+         { "Size Read", "frstrans.frstrans_InitializeFileTransferAsync.size_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_InitializeFileTransferAsync_rdc_file_info,
+         { "Rdc File Info", "frstrans.frstrans_InitializeFileTransferAsync.rdc_file_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_frstrans_frstrans_RequestVersionVector_connection_guid,
+         { "Connection Guid", "frstrans.frstrans_RequestVersionVector.connection_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_frstrans,
+               &ett_frstrans_frstrans_TransportFlags,
+               &ett_frstrans_frstrans_VersionVector,
+               &ett_frstrans_frstrans_Update,
+               &ett_frstrans_frstrans_EpoqueVector,
+               &ett_frstrans_frstrans_AsyncVersionVectorResponse,
+               &ett_frstrans_frstrans_AsyncResponseContext,
+               &ett_frstrans_frstrans_RdcParameterGeneric,
+               &ett_frstrans_frstrans_RdcParameterFilterMax,
+               &ett_frstrans_frstrans_RdcParameterFilterPoint,
+               &ett_frstrans_frstrans_RdcParameterUnion,
+               &ett_frstrans_frstrans_RdcParameters,
+               &ett_frstrans_frstrans_RdcFileInfo,
+       };
+
+       proto_dcerpc_frstrans = proto_register_protocol("File Replication Service DFS-R", "FRSTRANS", "frstrans");
+       proto_register_field_array(proto_dcerpc_frstrans, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_frstrans(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_frstrans, ett_dcerpc_frstrans,
+               &uuid_dcerpc_frstrans, ver_dcerpc_frstrans,
+               frstrans_dissectors, hf_frstrans_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.h b/bin/default/librpc/gen_ndr/packet-dcerpc-frstrans.h
new file mode 100644 (file)
index 0000000..b685fc5
--- /dev/null
@@ -0,0 +1,75 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstrans.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstrans.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_FRSTRANS_H
+#define __PACKET_DCERPC_FRSTRANS_H
+
+#define FRSTRANS_PROTOCOL_VERSION_W2K3R2 (0x00050000)
+#define FRSTRANS_PROTOCOL_VERSION_LONGHORN_SERVER (0x00050002)
+extern const value_string frstrans_frstrans_ProtocolVersion_vals[];
+int frstrans_dissect_enum_ProtocolVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frstrans_dissect_bitmap_TransportFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSTRANS_UPDATE_REQUEST_ALL (0x0000)
+#define FRSTRANS_UPDATE_REQUEST_TOMBSTONES (0x0001)
+#define FRSTRANS_UPDATE_REQUEST_LIVE (0x0002)
+extern const value_string frstrans_frstrans_UpdateRequestType_vals[];
+int frstrans_dissect_enum_UpdateRequestType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSTRANS_UPDATE_STATUS_DONE (0x0002)
+#define FRSTRANS_UPDATE_STATUS_MORE (0x0003)
+extern const value_string frstrans_frstrans_UpdateStatus_vals[];
+int frstrans_dissect_enum_UpdateStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frstrans_dissect_struct_VersionVector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frstrans_dissect_struct_Update(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSTRANS_VERSION_REQUEST_NORNAL_SYNC (0x0000)
+#define FRSTRANS_VERSION_REQUEST_SLOW_SYNC (0x0001)
+#define FRSTRANS_VERSION_REQUEST_SLAVE_SYNC (0x0002)
+extern const value_string frstrans_frstrans_VersionRequestType_vals[];
+int frstrans_dissect_enum_VersionRequestType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSTRANS_VERSION_CHANGE_NOTIFY (0x0000)
+#define FRSTRANS_VERSION_CHANGE_ALL (0x0002)
+extern const value_string frstrans_frstrans_VersionChangeType_vals[];
+int frstrans_dissect_enum_VersionChangeType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frstrans_dissect_struct_EpoqueVector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frstrans_dissect_struct_AsyncVersionVectorResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frstrans_dissect_struct_AsyncResponseContext(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSTRANS_STAGING_POLICY_SERVER_DEFAULTY (0x0000)
+#define FRSTRANS_STAGING_POLICY_STATGING_REQUIRED (0x0001)
+#define FRSTRANS_STAGING_POLICY_RESTATGING_REQUIRED (0x0002)
+extern const value_string frstrans_frstrans_RequestedStagingPolicy_vals[];
+int frstrans_dissect_enum_RequestedStagingPolicy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSTRANS_RDC_FILTER_GENERIC (0x0000)
+#define FRSTRANS_RDC_FILTER_MAX (0x0001)
+#define FRSTRANS_RDC_FILTER_POINT (0x0002)
+#define FRSTRANS_RDC_MAX_ALGORITHM (0x0003)
+extern const value_string frstrans_frstrans_RdcChunckerAlgorithm_vals[];
+int frstrans_dissect_enum_RdcChunckerAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frstrans_dissect_struct_RdcParameterGeneric(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frstrans_dissect_struct_RdcParameterFilterMax(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frstrans_dissect_struct_RdcParameterFilterPoint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int frstrans_dissect_struct_RdcParameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FRSTRANS_RDC_VERSION (0x0001)
+extern const value_string frstrans_frstrans_RdcVersion_vals[];
+int frstrans_dissect_enum_RdcVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSTRANS_RDC_VERSION_COMPATIBLE (0x0001)
+extern const value_string frstrans_frstrans_RdcVersionCompatible_vals[];
+int frstrans_dissect_enum_RdcVersionCompatible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define FRSTRANS_RDC_UNCOMPRESSED (0x0000)
+#define FRSTRANS_RDC_XPRESS (0x0001)
+extern const value_string frstrans_frstrans_RdcCompressionAlgorithm_vals[];
+int frstrans_dissect_enum_RdcCompressionAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int frstrans_dissect_struct_RdcFileInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_FRSTRANS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.c b/bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.c
new file mode 100644 (file)
index 0000000..f9ac390
--- /dev/null
@@ -0,0 +1,1275 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/fsrvp.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/fsrvp.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-fsrvp.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_FileServerVssAgent = -1;
+static gint ett_FileServerVssAgent_fssagent_share_mapping_1 = -1;
+static gint ett_FileServerVssAgent_fssagent_share_mapping = -1;
+
+
+/* Header field declarations */
+static gint hf_FileServerVssAgent_fss_IsPathSupported_magic = -1;
+static gint hf_FileServerVssAgent_fss_ExposeShadowCopySet_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyPresent = -1;
+static gint hf_FileServerVssAgent_fss_AddToShadowCopySet_ClientShadowCopyId = -1;
+static gint hf_FileServerVssAgent_fss_GetSupportedVersion_magic = -1;
+static gint hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyId = -1;
+static gint hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyShareName = -1;
+static gint hf_FileServerVssAgent_fss_AddToShadowCopySet_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fssagent_share_mapping_1_tstamp = -1;
+static gint hf_FileServerVssAgent_fss_StartShadowCopySet_pShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_PrepareShadowCopySet_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_IsPathSupported_ShareName = -1;
+static gint hf_FileServerVssAgent_fss_SetContext_Context = -1;
+static gint hf_FileServerVssAgent_fss_CommitShadowCopySet_TimeOutInMilliseconds = -1;
+static gint hf_FileServerVssAgent_fssagent_share_mapping_1_ShareNameUNC = -1;
+static gint hf_FileServerVssAgent_fssagent_share_mapping_ShareMapping1 = -1;
+static gint hf_FileServerVssAgent_fss_GetShareMapping_ShareMapping = -1;
+static gint hf_FileServerVssAgent_fss_RecoveryCompleteShadowCopySet_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_AddToShadowCopySet_pShadowCopyId = -1;
+static gint hf_FileServerVssAgent_fss_CommitShadowCopySet_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_DeleteShareMapping_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_AbortShadowCopySet_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_GetSupportedVersion_MaxVersion = -1;
+static gint hf_FileServerVssAgent_fss_AddToShadowCopySet_ShareName = -1;
+static gint hf_FileServerVssAgent_fss_StartShadowCopySet_ClientShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_IsPathShadowCopied_ShareName = -1;
+static gint hf_FileServerVssAgent_fss_ExposeShadowCopySet_TimeOutInMilliseconds = -1;
+static gint hf_FileServerVssAgent_fss_IsPathSupported_OwnerMachineName = -1;
+static gint hf_FileServerVssAgent_fss_PrepareShadowCopySet_TimeOutInMilliseconds = -1;
+static gint hf_FileServerVssAgent_fss_DeleteShareMapping_ShareName = -1;
+static gint hf_FileServerVssAgent_fss_GetShareMapping_ShadowCopyId = -1;
+static gint hf_FileServerVssAgent_fss_GetShareMapping_ShadowCopySetId = -1;
+static gint hf_FileServerVssAgent_fss_DeleteShareMapping_ShadowCopyId = -1;
+static gint hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyCompatibility = -1;
+static gint hf_FileServerVssAgent_fss_GetShareMapping_ShareName = -1;
+static gint hf_FileServerVssAgent_fss_GetSupportedVersion_MinVersion = -1;
+static gint hf_FileServerVssAgent_fss_GetShareMapping_Level = -1;
+static gint hf_FileServerVssAgent_fss_IsPathSupported_SupportedByThisProvider = -1;
+static gint hf_FileServerVssAgent_opnum = -1;
+static gint hf_FileServerVssAgent_uint32_status = -1;
+
+static gint proto_dcerpc_FileServerVssAgent = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_FileServerVssAgent = {
+       0xa8e0653c, 0x2744, 0x4389,
+       { 0xa6, 0x1d, 0x73, 0x73, 0xdf, 0x8b, 0x22, 0x92 }
+};
+static guint16 ver_dcerpc_FileServerVssAgent = 1;
+
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShareNameUNC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShareNameUNC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_1_tstamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_SetContext_Context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_StartShadowCopySet_ClientShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_StartShadowCopySet_pShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_StartShadowCopySet_pShadowCopySetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ClientShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_pShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_pShadowCopyId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_CommitShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_CommitShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_ExposeShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_ExposeShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_RecoveryCompleteShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_AbortShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyPresent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyCompatibility(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyCompatibility_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareMapping_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_PrepareShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int FileServerVssAgent_dissect_element_fss_PrepareShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        GUID ShadowCopySetId; */
+/* IDL:        GUID ShadowCopyId; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *ShareNameUNC; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *ShadowCopyShareName; */
+/* IDL:        NTTIME tstamp; */
+/* IDL: } */
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShareNameUNC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShareNameUNC_, NDR_POINTER_UNIQUE, "Pointer to Sharenameunc (uint16)",hf_FileServerVssAgent_fssagent_share_mapping_1_ShareNameUNC);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShareNameUNC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fssagent_share_mapping_1_ShareNameUNC, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName_, NDR_POINTER_UNIQUE, "Pointer to Shadowcopysharename (uint16)",hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyShareName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyShareName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_1_tstamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fssagent_share_mapping_1_tstamp);
+
+       return offset;
+}
+
+int
+FileServerVssAgent_dissect_struct_fssagent_share_mapping_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_FileServerVssAgent_fssagent_share_mapping_1);
+       }
+       
+       offset = FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+
+       offset = FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyId(tvb, offset, pinfo, tree, drep);
+
+       offset = FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShareNameUNC(tvb, offset, pinfo, tree, drep);
+
+       offset = FileServerVssAgent_dissect_element_fssagent_share_mapping_1_ShadowCopyShareName(tvb, offset, pinfo, tree, drep);
+
+       offset = FileServerVssAgent_dissect_element_fssagent_share_mapping_1_tstamp(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] fssagent_share_mapping_1 *ShareMapping1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1_, NDR_POINTER_UNIQUE, "Pointer to Sharemapping1 (fssagent_share_mapping_1)",hf_FileServerVssAgent_fssagent_share_mapping_ShareMapping1);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = FileServerVssAgent_dissect_struct_fssagent_share_mapping_1(tvb,offset,pinfo,tree,drep,hf_FileServerVssAgent_fssagent_share_mapping_ShareMapping1,0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fssagent_share_mapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "fssagent_share_mapping");
+               tree = proto_item_add_subtree(item, ett_FileServerVssAgent_fssagent_share_mapping);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = FileServerVssAgent_dissect_element_fssagent_share_mapping_ShareMapping1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+static int
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 52; i++)
+               offset = FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetSupportedVersion_magic, 0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion_, NDR_POINTER_REF, "Pointer to Minversion (uint32)",hf_FileServerVssAgent_fss_GetSupportedVersion_MinVersion);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetSupportedVersion_MinVersion, 0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion_, NDR_POINTER_REF, "Pointer to Maxversion (uint32)",hf_FileServerVssAgent_fss_GetSupportedVersion_MaxVersion);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetSupportedVersion_MaxVersion, 0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_GetSupportedVersion( */
+/* IDL: [in] uint8 magic[52], */
+/* IDL: [out] [ref] uint32 *MinVersion, */
+/* IDL: [out] [ref] uint32 *MaxVersion */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_GetSupportedVersion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_GetSupportedVersion";
+       offset = FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MinVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = FileServerVssAgent_dissect_element_fss_GetSupportedVersion_MaxVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_GetSupportedVersion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_GetSupportedVersion";
+       offset = FileServerVssAgent_dissect_element_fss_GetSupportedVersion_magic(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_SetContext_Context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_SetContext_Context, 0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_SetContext( */
+/* IDL: [in] uint32 Context */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_SetContext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_SetContext";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_SetContext_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_SetContext";
+       offset = FileServerVssAgent_dissect_element_fss_SetContext_Context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_StartShadowCopySet_ClientShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_StartShadowCopySet_ClientShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_StartShadowCopySet_pShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_StartShadowCopySet_pShadowCopySetId_, NDR_POINTER_REF, "Pointer to Pshadowcopysetid (GUID)",hf_FileServerVssAgent_fss_StartShadowCopySet_pShadowCopySetId);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_StartShadowCopySet_pShadowCopySetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_StartShadowCopySet_pShadowCopySetId, NULL);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_StartShadowCopySet( */
+/* IDL: [in] GUID ClientShadowCopySetId, */
+/* IDL: [out] [ref] GUID *pShadowCopySetId */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_StartShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_StartShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_StartShadowCopySet_pShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_StartShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_StartShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_StartShadowCopySet_ClientShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ClientShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_AddToShadowCopySet_ClientShadowCopyId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_AddToShadowCopySet_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShareName_, NDR_POINTER_REF, "Pointer to Sharename (uint16)",hf_FileServerVssAgent_fss_AddToShadowCopySet_ShareName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fss_AddToShadowCopySet_ShareName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_pShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_pShadowCopyId_, NDR_POINTER_REF, "Pointer to Pshadowcopyid (GUID)",hf_FileServerVssAgent_fss_AddToShadowCopySet_pShadowCopyId);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_pShadowCopyId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_AddToShadowCopySet_pShadowCopyId, NULL);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_AddToShadowCopySet( */
+/* IDL: [in] GUID ClientShadowCopyId, */
+/* IDL: [in] GUID ShadowCopySetId, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *ShareName, */
+/* IDL: [out] [ref] GUID *pShadowCopyId */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_AddToShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_AddToShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_pShadowCopyId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_AddToShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_AddToShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ClientShadowCopyId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_AddToShadowCopySet_ShareName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_CommitShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_CommitShadowCopySet_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_CommitShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_CommitShadowCopySet_TimeOutInMilliseconds, 0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_CommitShadowCopySet( */
+/* IDL: [in] GUID ShadowCopySetId, */
+/* IDL: [in] uint32 TimeOutInMilliseconds */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_CommitShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_CommitShadowCopySet";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_CommitShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_CommitShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_CommitShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_CommitShadowCopySet_TimeOutInMilliseconds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_ExposeShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_ExposeShadowCopySet_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_ExposeShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_ExposeShadowCopySet_TimeOutInMilliseconds, 0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_ExposeShadowCopySet( */
+/* IDL: [in] GUID ShadowCopySetId, */
+/* IDL: [in] uint32 TimeOutInMilliseconds */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_ExposeShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_ExposeShadowCopySet";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_ExposeShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_ExposeShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_ExposeShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_ExposeShadowCopySet_TimeOutInMilliseconds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_RecoveryCompleteShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_RecoveryCompleteShadowCopySet_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_RecoveryCompleteShadowCopySet( */
+/* IDL: [in] GUID ShadowCopySetId */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_RecoveryCompleteShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_RecoveryCompleteShadowCopySet";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_RecoveryCompleteShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_RecoveryCompleteShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_RecoveryCompleteShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_AbortShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_AbortShadowCopySet_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_AbortShadowCopySet( */
+/* IDL: [in] GUID ShadowCopySetId */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_AbortShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_AbortShadowCopySet";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_AbortShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_AbortShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_AbortShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName_, NDR_POINTER_REF, "Pointer to Sharename (uint16)",hf_FileServerVssAgent_fss_IsPathSupported_ShareName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fss_IsPathSupported_ShareName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 52; i++)
+               offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_IsPathSupported_magic, 0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider_, NDR_POINTER_REF, "Pointer to Supportedbythisprovider (uint32)",hf_FileServerVssAgent_fss_IsPathSupported_SupportedByThisProvider);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_IsPathSupported_SupportedByThisProvider, 0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName_, NDR_POINTER_REF, "Pointer to Ownermachinename (uint16)",hf_FileServerVssAgent_fss_IsPathSupported_OwnerMachineName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName__, NDR_POINTER_UNIQUE, "Pointer to Ownermachinename (uint16)",hf_FileServerVssAgent_fss_IsPathSupported_OwnerMachineName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fss_IsPathSupported_OwnerMachineName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_IsPathSupported( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *ShareName, */
+/* IDL: [in] uint8 magic[52], */
+/* IDL: [out] [ref] uint32 *SupportedByThisProvider, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **OwnerMachineName */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_IsPathSupported_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_IsPathSupported";
+       offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_SupportedByThisProvider(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_OwnerMachineName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_IsPathSupported_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_IsPathSupported";
+       offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_ShareName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_IsPathSupported_magic(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShareName_, NDR_POINTER_REF, "Pointer to Sharename (uint16)",hf_FileServerVssAgent_fss_IsPathShadowCopied_ShareName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fss_IsPathShadowCopied_ShareName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyPresent_, NDR_POINTER_REF, "Pointer to Shadowcopypresent (uint32)",hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyPresent);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyPresent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyPresent, 0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyCompatibility(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyCompatibility_, NDR_POINTER_REF, "Pointer to Shadowcopycompatibility (int32)",hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyCompatibility);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyCompatibility_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyCompatibility, 0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_IsPathShadowCopied( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *ShareName, */
+/* IDL: [out] [ref] uint32 *ShadowCopyPresent, */
+/* IDL: [out] [ref] int32 *ShadowCopyCompatibility */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_IsPathShadowCopied_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_IsPathShadowCopied";
+       offset = FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyPresent(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShadowCopyCompatibility(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_IsPathShadowCopied_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_IsPathShadowCopied";
+       offset = FileServerVssAgent_dissect_element_fss_IsPathShadowCopied_ShareName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetShareMapping_ShadowCopyId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetShareMapping_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareName_, NDR_POINTER_REF, "Pointer to Sharename (uint16)",hf_FileServerVssAgent_fss_GetShareMapping_ShareName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fss_GetShareMapping_ShareName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_Level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetShareMapping_Level, 0);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareMapping(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareMapping_, NDR_POINTER_REF, "Pointer to Sharemapping (fssagent_share_mapping)",hf_FileServerVssAgent_fss_GetShareMapping_ShareMapping);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareMapping_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = FileServerVssAgent_dissect_fssagent_share_mapping(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_GetShareMapping_ShareMapping, *0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_GetShareMapping( */
+/* IDL: [in] GUID ShadowCopyId, */
+/* IDL: [in] GUID ShadowCopySetId, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *ShareName, */
+/* IDL: [in] uint32 Level, */
+/* IDL: [out] [ref] [switch_is(Level)] fssagent_share_mapping *ShareMapping */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_GetShareMapping_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_GetShareMapping";
+       offset = FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareMapping(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_GetShareMapping_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_GetShareMapping";
+       offset = FileServerVssAgent_dissect_element_fss_GetShareMapping_ShadowCopyId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_GetShareMapping_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_GetShareMapping_ShareName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_GetShareMapping_Level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_DeleteShareMapping_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShadowCopyId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_DeleteShareMapping_ShadowCopyId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShareName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShareName_, NDR_POINTER_REF, "Pointer to Sharename (uint16)",hf_FileServerVssAgent_fss_DeleteShareMapping_ShareName);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShareName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_FileServerVssAgent_fss_DeleteShareMapping_ShareName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_DeleteShareMapping( */
+/* IDL: [in] GUID ShadowCopySetId, */
+/* IDL: [in] GUID ShadowCopyId, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *ShareName */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_DeleteShareMapping_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_DeleteShareMapping";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_DeleteShareMapping_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_DeleteShareMapping";
+       offset = FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShadowCopyId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_DeleteShareMapping_ShareName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_PrepareShadowCopySet_ShadowCopySetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_PrepareShadowCopySet_ShadowCopySetId, NULL);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_element_fss_PrepareShadowCopySet_TimeOutInMilliseconds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_fss_PrepareShadowCopySet_TimeOutInMilliseconds, 0);
+
+       return offset;
+}
+
+/* IDL: DWORD fss_PrepareShadowCopySet( */
+/* IDL: [in] GUID ShadowCopySetId, */
+/* IDL: [in] uint32 TimeOutInMilliseconds */
+/* IDL: ); */
+
+static int
+FileServerVssAgent_dissect_fss_PrepareShadowCopySet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="fss_PrepareShadowCopySet";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_FileServerVssAgent_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+FileServerVssAgent_dissect_fss_PrepareShadowCopySet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="fss_PrepareShadowCopySet";
+       offset = FileServerVssAgent_dissect_element_fss_PrepareShadowCopySet_ShadowCopySetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = FileServerVssAgent_dissect_element_fss_PrepareShadowCopySet_TimeOutInMilliseconds(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector FileServerVssAgent_dissectors[] = {
+       { 0, "fss_GetSupportedVersion",
+          FileServerVssAgent_dissect_fss_GetSupportedVersion_request, FileServerVssAgent_dissect_fss_GetSupportedVersion_response},
+       { 1, "fss_SetContext",
+          FileServerVssAgent_dissect_fss_SetContext_request, FileServerVssAgent_dissect_fss_SetContext_response},
+       { 2, "fss_StartShadowCopySet",
+          FileServerVssAgent_dissect_fss_StartShadowCopySet_request, FileServerVssAgent_dissect_fss_StartShadowCopySet_response},
+       { 3, "fss_AddToShadowCopySet",
+          FileServerVssAgent_dissect_fss_AddToShadowCopySet_request, FileServerVssAgent_dissect_fss_AddToShadowCopySet_response},
+       { 4, "fss_CommitShadowCopySet",
+          FileServerVssAgent_dissect_fss_CommitShadowCopySet_request, FileServerVssAgent_dissect_fss_CommitShadowCopySet_response},
+       { 5, "fss_ExposeShadowCopySet",
+          FileServerVssAgent_dissect_fss_ExposeShadowCopySet_request, FileServerVssAgent_dissect_fss_ExposeShadowCopySet_response},
+       { 6, "fss_RecoveryCompleteShadowCopySet",
+          FileServerVssAgent_dissect_fss_RecoveryCompleteShadowCopySet_request, FileServerVssAgent_dissect_fss_RecoveryCompleteShadowCopySet_response},
+       { 7, "fss_AbortShadowCopySet",
+          FileServerVssAgent_dissect_fss_AbortShadowCopySet_request, FileServerVssAgent_dissect_fss_AbortShadowCopySet_response},
+       { 8, "fss_IsPathSupported",
+          FileServerVssAgent_dissect_fss_IsPathSupported_request, FileServerVssAgent_dissect_fss_IsPathSupported_response},
+       { 9, "fss_IsPathShadowCopied",
+          FileServerVssAgent_dissect_fss_IsPathShadowCopied_request, FileServerVssAgent_dissect_fss_IsPathShadowCopied_response},
+       { 10, "fss_GetShareMapping",
+          FileServerVssAgent_dissect_fss_GetShareMapping_request, FileServerVssAgent_dissect_fss_GetShareMapping_response},
+       { 11, "fss_DeleteShareMapping",
+          FileServerVssAgent_dissect_fss_DeleteShareMapping_request, FileServerVssAgent_dissect_fss_DeleteShareMapping_response},
+       { 12, "fss_PrepareShadowCopySet",
+          FileServerVssAgent_dissect_fss_PrepareShadowCopySet_request, FileServerVssAgent_dissect_fss_PrepareShadowCopySet_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_FileServerVssAgent(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_FileServerVssAgent_fss_IsPathSupported_magic,
+         { "Magic", "FileServerVssAgent.fss_IsPathSupported.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_ExposeShadowCopySet_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_ExposeShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyPresent,
+         { "Shadowcopypresent", "FileServerVssAgent.fss_IsPathShadowCopied.ShadowCopyPresent", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_AddToShadowCopySet_ClientShadowCopyId,
+         { "Clientshadowcopyid", "FileServerVssAgent.fss_AddToShadowCopySet.ClientShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetSupportedVersion_magic,
+         { "Magic", "FileServerVssAgent.fss_GetSupportedVersion.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyId,
+         { "Shadowcopyid", "FileServerVssAgent.fssagent_share_mapping_1.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopyShareName,
+         { "Shadowcopysharename", "FileServerVssAgent.fssagent_share_mapping_1.ShadowCopyShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_AddToShadowCopySet_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_AddToShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fssagent_share_mapping_1_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fssagent_share_mapping_1.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fssagent_share_mapping_1_tstamp,
+         { "Tstamp", "FileServerVssAgent.fssagent_share_mapping_1.tstamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_StartShadowCopySet_pShadowCopySetId,
+         { "Pshadowcopysetid", "FileServerVssAgent.fss_StartShadowCopySet.pShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_PrepareShadowCopySet_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_PrepareShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_IsPathSupported_ShareName,
+         { "Sharename", "FileServerVssAgent.fss_IsPathSupported.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_SetContext_Context,
+         { "Context", "FileServerVssAgent.fss_SetContext.Context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_CommitShadowCopySet_TimeOutInMilliseconds,
+         { "Timeoutinmilliseconds", "FileServerVssAgent.fss_CommitShadowCopySet.TimeOutInMilliseconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fssagent_share_mapping_1_ShareNameUNC,
+         { "Sharenameunc", "FileServerVssAgent.fssagent_share_mapping_1.ShareNameUNC", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fssagent_share_mapping_ShareMapping1,
+         { "Sharemapping1", "FileServerVssAgent.fssagent_share_mapping.ShareMapping1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetShareMapping_ShareMapping,
+         { "Sharemapping", "FileServerVssAgent.fss_GetShareMapping.ShareMapping", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_RecoveryCompleteShadowCopySet_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_RecoveryCompleteShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_AddToShadowCopySet_pShadowCopyId,
+         { "Pshadowcopyid", "FileServerVssAgent.fss_AddToShadowCopySet.pShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_CommitShadowCopySet_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_CommitShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_DeleteShareMapping_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_DeleteShareMapping.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_AbortShadowCopySet_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_AbortShadowCopySet.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetSupportedVersion_MaxVersion,
+         { "Maxversion", "FileServerVssAgent.fss_GetSupportedVersion.MaxVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_AddToShadowCopySet_ShareName,
+         { "Sharename", "FileServerVssAgent.fss_AddToShadowCopySet.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_StartShadowCopySet_ClientShadowCopySetId,
+         { "Clientshadowcopysetid", "FileServerVssAgent.fss_StartShadowCopySet.ClientShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_IsPathShadowCopied_ShareName,
+         { "Sharename", "FileServerVssAgent.fss_IsPathShadowCopied.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_ExposeShadowCopySet_TimeOutInMilliseconds,
+         { "Timeoutinmilliseconds", "FileServerVssAgent.fss_ExposeShadowCopySet.TimeOutInMilliseconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_IsPathSupported_OwnerMachineName,
+         { "Ownermachinename", "FileServerVssAgent.fss_IsPathSupported.OwnerMachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_PrepareShadowCopySet_TimeOutInMilliseconds,
+         { "Timeoutinmilliseconds", "FileServerVssAgent.fss_PrepareShadowCopySet.TimeOutInMilliseconds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_DeleteShareMapping_ShareName,
+         { "Sharename", "FileServerVssAgent.fss_DeleteShareMapping.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetShareMapping_ShadowCopyId,
+         { "Shadowcopyid", "FileServerVssAgent.fss_GetShareMapping.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetShareMapping_ShadowCopySetId,
+         { "Shadowcopysetid", "FileServerVssAgent.fss_GetShareMapping.ShadowCopySetId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_DeleteShareMapping_ShadowCopyId,
+         { "Shadowcopyid", "FileServerVssAgent.fss_DeleteShareMapping.ShadowCopyId", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_IsPathShadowCopied_ShadowCopyCompatibility,
+         { "Shadowcopycompatibility", "FileServerVssAgent.fss_IsPathShadowCopied.ShadowCopyCompatibility", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetShareMapping_ShareName,
+         { "Sharename", "FileServerVssAgent.fss_GetShareMapping.ShareName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetSupportedVersion_MinVersion,
+         { "Minversion", "FileServerVssAgent.fss_GetSupportedVersion.MinVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_GetShareMapping_Level,
+         { "Level", "FileServerVssAgent.fss_GetShareMapping.Level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_fss_IsPathSupported_SupportedByThisProvider,
+         { "Supportedbythisprovider", "FileServerVssAgent.fss_IsPathSupported.SupportedByThisProvider", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_opnum,
+         { "Operation", "FileServerVssAgent.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_FileServerVssAgent_uint32_status,
+         { "uint32", "FileServerVssAgent.uint32_status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_FileServerVssAgent,
+               &ett_FileServerVssAgent_fssagent_share_mapping_1,
+               &ett_FileServerVssAgent_fssagent_share_mapping,
+       };
+
+       proto_dcerpc_FileServerVssAgent = proto_register_protocol("File Server Remote VSS Protocol", "FILESERVERVSSAGENT", "FileServerVssAgent");
+       proto_register_field_array(proto_dcerpc_FileServerVssAgent, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_FileServerVssAgent(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_FileServerVssAgent, ett_dcerpc_FileServerVssAgent,
+               &uuid_dcerpc_FileServerVssAgent, ver_dcerpc_FileServerVssAgent,
+               FileServerVssAgent_dissectors, hf_FileServerVssAgent_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.h b/bin/default/librpc/gen_ndr/packet-dcerpc-fsrvp.h
new file mode 100644 (file)
index 0000000..d1e504f
--- /dev/null
@@ -0,0 +1,66 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/fsrvp.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/fsrvp.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_FILESERVERVSSAGENT_H
+#define __PACKET_DCERPC_FILESERVERVSSAGENT_H
+
+#define FSRVP_E_BAD_STATE      ( 0x80042301 )
+
+#define FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS    ( 0x80042316 )
+
+#define FSRVP_E_NOT_SUPPORTED  ( 0x8004230C )
+
+#define FSRVP_E_WAIT_TIMEOUT   ( 0x00000102 )
+
+#define FSRVP_E_WAIT_FAILED    ( 0xFFFFFFFF )
+
+#define FSRVP_E_OBJECT_ALREADY_EXISTS  ( 0x8004230D )
+
+#define FSRVP_E_OBJECT_NOT_FOUND       ( 0x80042308 )
+
+#define FSRVP_E_BAD_ID ( 0x80042302 )
+
+#define E_ACCESSDENIED ( 0x80070005 )
+
+#define E_INVALIDARG   ( 0x80070057 )
+
+#define E_OUTOFMEMORY  ( 0x80000002 )
+
+#define FSRVP_RPC_VERSION_1    ( 0x000000001 )
+
+#define ATTR_PERSISTENT        ( 0x00000001 )
+
+#define ATTR_NO_AUTO_RECOVERY  ( 0x00000002 )
+
+#define ATTR_NO_AUTO_RELEASE   ( 0x00000008 )
+
+#define ATTR_NO_WRITERS        ( 0x00000010 )
+
+#define ATTR_FILE_SHARE        ( 0x04000000 )
+
+#define ATTR_AUTO_RECOVERY     ( 0x00400000 )
+
+#define FSRVP_CTX_BACKUP       ( 0x00000000 )
+
+#define FSRVP_CTX_FILE_SHARE_BACKUP    ( 0x00000010 )
+
+#define FSRVP_CTX_NAS_ROLLBACK ( 0x00000019 )
+
+#define FSRVP_CTX_APP_ROLLBACK ( 0x00000009 )
+
+int FileServerVssAgent_dissect_struct_fssagent_share_mapping_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_FILESERVERVSSAGENT_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-initshutdown.c b/bin/default/librpc/gen_ndr/packet-dcerpc-initshutdown.c
new file mode 100644 (file)
index 0000000..0debccd
--- /dev/null
@@ -0,0 +1,559 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/initshutdown.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/initshutdown.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-initshutdown.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_initshutdown = -1;
+static gint ett_initshutdown_initshutdown_ReasonFlags = -1;
+
+
+/* Header field declarations */
+static gint hf_initshutdown_initshutdown_InitEx_do_reboot = -1;
+static gint hf_initshutdown_initshutdown_InitEx_force_apps = -1;
+static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED = -1;
+static gint hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED = -1;
+static gint hf_initshutdown_initshutdown_InitEx_timeout = -1;
+static gint hf_initshutdown_initshutdown_InitEx_hostname = -1;
+static gint hf_initshutdown_werror = -1;
+static gint hf_initshutdown_initshutdown_Abort_server = -1;
+static gint hf_initshutdown_opnum = -1;
+static gint hf_initshutdown_initshutdown_Init_hostname = -1;
+static gint hf_initshutdown_initshutdown_InitEx_reason = -1;
+static gint hf_initshutdown_initshutdown_Init_timeout = -1;
+static gint hf_initshutdown_initshutdown_Init_force_apps = -1;
+static gint hf_initshutdown_initshutdown_Init_do_reboot = -1;
+static gint hf_initshutdown_initshutdown_Init_message = -1;
+static gint hf_initshutdown_initshutdown_InitEx_message = -1;
+
+static gint proto_dcerpc_initshutdown = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_initshutdown = {
+       0x894de0c0, 0x0d55, 0x11d3,
+       { 0xa3, 0x22, 0x00, 0xc0, 0x4f, 0xa3, 0x21, 0xa1 }
+};
+static guint16 ver_dcerpc_initshutdown = 1;
+
+const value_string initshutdown_initshutdown_ReasonMajor_vals[] = {
+       { SHTDN_REASON_MAJOR_OTHER, "SHTDN_REASON_MAJOR_OTHER" },
+       { SHTDN_REASON_MAJOR_HARDWARE, "SHTDN_REASON_MAJOR_HARDWARE" },
+       { SHTDN_REASON_MAJOR_OPERATINGSYSTEM, "SHTDN_REASON_MAJOR_OPERATINGSYSTEM" },
+       { SHTDN_REASON_MAJOR_SOFTWARE, "SHTDN_REASON_MAJOR_SOFTWARE" },
+       { SHTDN_REASON_MAJOR_APPLICATION, "SHTDN_REASON_MAJOR_APPLICATION" },
+       { SHTDN_REASON_MAJOR_SYSTEM, "SHTDN_REASON_MAJOR_SYSTEM" },
+       { SHTDN_REASON_MAJOR_POWER, "SHTDN_REASON_MAJOR_POWER" },
+       { SHTDN_REASON_MAJOR_LEGACY_API, "SHTDN_REASON_MAJOR_LEGACY_API" },
+{ 0, NULL }
+};
+const value_string initshutdown_initshutdown_ReasonMinor_vals[] = {
+       { SHTDN_REASON_MINOR_OTHER, "SHTDN_REASON_MINOR_OTHER" },
+       { SHTDN_REASON_MINOR_MAINTENANCE, "SHTDN_REASON_MINOR_MAINTENANCE" },
+       { SHTDN_REASON_MINOR_INSTALLATION, "SHTDN_REASON_MINOR_INSTALLATION" },
+       { SHTDN_REASON_MINOR_UPGRADE, "SHTDN_REASON_MINOR_UPGRADE" },
+       { SHTDN_REASON_MINOR_RECONFIG, "SHTDN_REASON_MINOR_RECONFIG" },
+       { SHTDN_REASON_MINOR_HUNG, "SHTDN_REASON_MINOR_HUNG" },
+       { SHTDN_REASON_MINOR_UNSTABLE, "SHTDN_REASON_MINOR_UNSTABLE" },
+       { SHTDN_REASON_MINOR_DISK, "SHTDN_REASON_MINOR_DISK" },
+       { SHTDN_REASON_MINOR_PROCESSOR, "SHTDN_REASON_MINOR_PROCESSOR" },
+       { SHTDN_REASON_MINOR_NETWORKCARD, "SHTDN_REASON_MINOR_NETWORKCARD" },
+       { SHTDN_REASON_MINOR_POWER_SUPPLY, "SHTDN_REASON_MINOR_POWER_SUPPLY" },
+       { SHTDN_REASON_MINOR_CORDUNPLUGGED, "SHTDN_REASON_MINOR_CORDUNPLUGGED" },
+       { SHTDN_REASON_MINOR_ENVIRONMENT, "SHTDN_REASON_MINOR_ENVIRONMENT" },
+       { SHTDN_REASON_MINOR_HARDWARE_DRIVER, "SHTDN_REASON_MINOR_HARDWARE_DRIVER" },
+       { SHTDN_REASON_MINOR_OTHERDRIVER, "SHTDN_REASON_MINOR_OTHERDRIVER" },
+       { SHTDN_REASON_MINOR_BLUESCREEN, "SHTDN_REASON_MINOR_BLUESCREEN" },
+       { SHTDN_REASON_MINOR_SERVICEPACK, "SHTDN_REASON_MINOR_SERVICEPACK" },
+       { SHTDN_REASON_MINOR_HOTFIX, "SHTDN_REASON_MINOR_HOTFIX" },
+       { SHTDN_REASON_MINOR_SECURITYFIX, "SHTDN_REASON_MINOR_SECURITYFIX" },
+       { SHTDN_REASON_MINOR_SECURITY, "SHTDN_REASON_MINOR_SECURITY" },
+       { SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY, "SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY" },
+       { SHTDN_REASON_MINOR_WMI, "SHTDN_REASON_MINOR_WMI" },
+       { SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL, "SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL" },
+       { SHTDN_REASON_MINOR_HOTFIX_UNINSTALL, "SHTDN_REASON_MINOR_HOTFIX_UNINSTALL" },
+       { SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL, "SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL" },
+       { SHTDN_REASON_MINOR_MMC, "SHTDN_REASON_MINOR_MMC" },
+       { SHTDN_REASON_MINOR_TERMSRV, "SHTDN_REASON_MINOR_TERMSRV" },
+{ 0, NULL }
+};
+static const true_false_string initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED_tfs = {
+   "SHTDN_REASON_FLAG_USER_DEFINED is SET",
+   "SHTDN_REASON_FLAG_USER_DEFINED is NOT SET",
+};
+static const true_false_string initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED_tfs = {
+   "SHTDN_REASON_FLAG_PLANNED is SET",
+   "SHTDN_REASON_FLAG_PLANNED is NOT SET",
+};
+static int initshutdown_dissect_element_Init_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Init_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Abort_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_Abort_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int initshutdown_dissect_element_InitEx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        SHTDN_REASON_MAJOR_OTHER=0x00000000, */
+/* IDL:        SHTDN_REASON_MAJOR_HARDWARE=0x00010000, */
+/* IDL:        SHTDN_REASON_MAJOR_OPERATINGSYSTEM=0x00020000, */
+/* IDL:        SHTDN_REASON_MAJOR_SOFTWARE=0x00030000, */
+/* IDL:        SHTDN_REASON_MAJOR_APPLICATION=0x00040000, */
+/* IDL:        SHTDN_REASON_MAJOR_SYSTEM=0x00050000, */
+/* IDL:        SHTDN_REASON_MAJOR_POWER=0x00060000, */
+/* IDL:        SHTDN_REASON_MAJOR_LEGACY_API=0x00070000, */
+/* IDL: } */
+
+int
+initshutdown_dissect_enum_ReasonMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SHTDN_REASON_MINOR_OTHER=0x00000000, */
+/* IDL:        SHTDN_REASON_MINOR_MAINTENANCE=0x00000001, */
+/* IDL:        SHTDN_REASON_MINOR_INSTALLATION=0x00000002, */
+/* IDL:        SHTDN_REASON_MINOR_UPGRADE=0x00000003, */
+/* IDL:        SHTDN_REASON_MINOR_RECONFIG=0x00000004, */
+/* IDL:        SHTDN_REASON_MINOR_HUNG=0x00000005, */
+/* IDL:        SHTDN_REASON_MINOR_UNSTABLE=0x00000006, */
+/* IDL:        SHTDN_REASON_MINOR_DISK=0x00000007, */
+/* IDL:        SHTDN_REASON_MINOR_PROCESSOR=0x00000008, */
+/* IDL:        SHTDN_REASON_MINOR_NETWORKCARD=0x00000009, */
+/* IDL:        SHTDN_REASON_MINOR_POWER_SUPPLY=0x0000000a, */
+/* IDL:        SHTDN_REASON_MINOR_CORDUNPLUGGED=0x0000000b, */
+/* IDL:        SHTDN_REASON_MINOR_ENVIRONMENT=0x0000000c, */
+/* IDL:        SHTDN_REASON_MINOR_HARDWARE_DRIVER=0x0000000d, */
+/* IDL:        SHTDN_REASON_MINOR_OTHERDRIVER=0x0000000e, */
+/* IDL:        SHTDN_REASON_MINOR_BLUESCREEN=0x0000000f, */
+/* IDL:        SHTDN_REASON_MINOR_SERVICEPACK=0x00000010, */
+/* IDL:        SHTDN_REASON_MINOR_HOTFIX=0x00000011, */
+/* IDL:        SHTDN_REASON_MINOR_SECURITYFIX=0x00000012, */
+/* IDL:        SHTDN_REASON_MINOR_SECURITY=0x00000013, */
+/* IDL:        SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY=0x00000014, */
+/* IDL:        SHTDN_REASON_MINOR_WMI=0x00000015, */
+/* IDL:        SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL=0x00000016, */
+/* IDL:        SHTDN_REASON_MINOR_HOTFIX_UNINSTALL=0x00000017, */
+/* IDL:        SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL=0x00000018, */
+/* IDL:        SHTDN_REASON_MINOR_MMC=0x00000019, */
+/* IDL:        SHTDN_REASON_MINOR_TERMSRV=0x00000020, */
+/* IDL: } */
+
+int
+initshutdown_dissect_enum_ReasonMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SHTDN_REASON_FLAG_USER_DEFINED =  0x40000000 , */
+/* IDL:        SHTDN_REASON_FLAG_PLANNED =  0x80000000 , */
+/* IDL: } */
+
+int
+initshutdown_dissect_bitmap_ReasonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_initshutdown_initshutdown_ReasonFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "SHTDN_REASON_FLAG_USER_DEFINED");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "SHTDN_REASON_FLAG_PLANNED");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_Init_hostname_, NDR_POINTER_UNIQUE, "Pointer to Hostname (uint16)",hf_initshutdown_initshutdown_Init_hostname);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_hostname, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_Init_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_initshutdown_initshutdown_Init_message);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = initshutdown_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_initshutdown_initshutdown_Init_message,0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_timeout, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_force_apps, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Init_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Init_do_reboot, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR initshutdown_Init( */
+/* IDL: [unique(1)] [in] uint16 *hostname, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
+/* IDL: [in] uint32 timeout, */
+/* IDL: [in] uint8 force_apps, */
+/* IDL: [in] uint8 do_reboot */
+/* IDL: ); */
+
+static int
+initshutdown_dissect_Init_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Init";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_Init_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Init";
+       offset = initshutdown_dissect_element_Init_hostname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_Init_message(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_Init_timeout(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_Init_force_apps(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_Init_do_reboot(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Abort_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_Abort_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_initshutdown_initshutdown_Abort_server);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_Abort_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_Abort_server, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR initshutdown_Abort( */
+/* IDL: [unique(1)] [in] uint16 *server */
+/* IDL: ); */
+
+static int
+initshutdown_dissect_Abort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Abort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_Abort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Abort";
+       offset = initshutdown_dissect_element_Abort_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_InitEx_hostname_, NDR_POINTER_UNIQUE, "Pointer to Hostname (uint16)",hf_initshutdown_initshutdown_InitEx_hostname);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_hostname, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, initshutdown_dissect_element_InitEx_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_initshutdown_initshutdown_InitEx_message);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = initshutdown_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_initshutdown_initshutdown_InitEx_message,0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_timeout, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_force_apps, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_do_reboot, 0);
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_element_InitEx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_initshutdown_InitEx_reason, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR initshutdown_InitEx( */
+/* IDL: [unique(1)] [in] uint16 *hostname, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
+/* IDL: [in] uint32 timeout, */
+/* IDL: [in] uint8 force_apps, */
+/* IDL: [in] uint8 do_reboot, */
+/* IDL: [in] uint32 reason */
+/* IDL: ); */
+
+static int
+initshutdown_dissect_InitEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="InitEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_initshutdown_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+initshutdown_dissect_InitEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="InitEx";
+       offset = initshutdown_dissect_element_InitEx_hostname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_InitEx_message(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_InitEx_timeout(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_InitEx_force_apps(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_InitEx_do_reboot(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = initshutdown_dissect_element_InitEx_reason(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector initshutdown_dissectors[] = {
+       { 0, "Init",
+          initshutdown_dissect_Init_request, initshutdown_dissect_Init_response},
+       { 1, "Abort",
+          initshutdown_dissect_Abort_request, initshutdown_dissect_Abort_response},
+       { 2, "InitEx",
+          initshutdown_dissect_InitEx_request, initshutdown_dissect_InitEx_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_initshutdown(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_initshutdown_initshutdown_InitEx_do_reboot,
+         { "Do Reboot", "initshutdown.initshutdown_InitEx.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_InitEx_force_apps,
+         { "Force Apps", "initshutdown.initshutdown_InitEx.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED,
+         { "Shtdn Reason Flag Planned", "initshutdown.initshutdown_ReasonFlags.SHTDN_REASON_FLAG_PLANNED", FT_BOOLEAN, 32, TFS(&initshutdown_ReasonFlags_SHTDN_REASON_FLAG_PLANNED_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED,
+         { "Shtdn Reason Flag User Defined", "initshutdown.initshutdown_ReasonFlags.SHTDN_REASON_FLAG_USER_DEFINED", FT_BOOLEAN, 32, TFS(&initshutdown_ReasonFlags_SHTDN_REASON_FLAG_USER_DEFINED_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_InitEx_timeout,
+         { "Timeout", "initshutdown.initshutdown_InitEx.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_InitEx_hostname,
+         { "Hostname", "initshutdown.initshutdown_InitEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_werror,
+         { "Windows Error", "initshutdown.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_Abort_server,
+         { "Server", "initshutdown.initshutdown_Abort.server", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_opnum,
+         { "Operation", "initshutdown.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_Init_hostname,
+         { "Hostname", "initshutdown.initshutdown_Init.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_InitEx_reason,
+         { "Reason", "initshutdown.initshutdown_InitEx.reason", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_Init_timeout,
+         { "Timeout", "initshutdown.initshutdown_Init.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_Init_force_apps,
+         { "Force Apps", "initshutdown.initshutdown_Init.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_Init_do_reboot,
+         { "Do Reboot", "initshutdown.initshutdown_Init.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_Init_message,
+         { "Message", "initshutdown.initshutdown_Init.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_initshutdown_initshutdown_InitEx_message,
+         { "Message", "initshutdown.initshutdown_InitEx.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_initshutdown,
+               &ett_initshutdown_initshutdown_ReasonFlags,
+       };
+
+       proto_dcerpc_initshutdown = proto_register_protocol("Init shutdown service", "INITSHUTDOWN", "initshutdown");
+       proto_register_field_array(proto_dcerpc_initshutdown, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_initshutdown(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_initshutdown, ett_dcerpc_initshutdown,
+               &uuid_dcerpc_initshutdown, ver_dcerpc_initshutdown,
+               initshutdown_dissectors, hf_initshutdown_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-initshutdown.h b/bin/default/librpc/gen_ndr/packet-dcerpc-initshutdown.h
new file mode 100644 (file)
index 0000000..37067b5
--- /dev/null
@@ -0,0 +1,61 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/initshutdown.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/initshutdown.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-lsa.h"
+
+#ifndef __PACKET_DCERPC_INITSHUTDOWN_H
+#define __PACKET_DCERPC_INITSHUTDOWN_H
+
+#define SHTDN_REASON_MAJOR_OTHER (0x00000000)
+#define SHTDN_REASON_MAJOR_HARDWARE (0x00010000)
+#define SHTDN_REASON_MAJOR_OPERATINGSYSTEM (0x00020000)
+#define SHTDN_REASON_MAJOR_SOFTWARE (0x00030000)
+#define SHTDN_REASON_MAJOR_APPLICATION (0x00040000)
+#define SHTDN_REASON_MAJOR_SYSTEM (0x00050000)
+#define SHTDN_REASON_MAJOR_POWER (0x00060000)
+#define SHTDN_REASON_MAJOR_LEGACY_API (0x00070000)
+extern const value_string initshutdown_initshutdown_ReasonMajor_vals[];
+int initshutdown_dissect_enum_ReasonMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SHTDN_REASON_MINOR_OTHER (0x00000000)
+#define SHTDN_REASON_MINOR_MAINTENANCE (0x00000001)
+#define SHTDN_REASON_MINOR_INSTALLATION (0x00000002)
+#define SHTDN_REASON_MINOR_UPGRADE (0x00000003)
+#define SHTDN_REASON_MINOR_RECONFIG (0x00000004)
+#define SHTDN_REASON_MINOR_HUNG (0x00000005)
+#define SHTDN_REASON_MINOR_UNSTABLE (0x00000006)
+#define SHTDN_REASON_MINOR_DISK (0x00000007)
+#define SHTDN_REASON_MINOR_PROCESSOR (0x00000008)
+#define SHTDN_REASON_MINOR_NETWORKCARD (0x00000009)
+#define SHTDN_REASON_MINOR_POWER_SUPPLY (0x0000000a)
+#define SHTDN_REASON_MINOR_CORDUNPLUGGED (0x0000000b)
+#define SHTDN_REASON_MINOR_ENVIRONMENT (0x0000000c)
+#define SHTDN_REASON_MINOR_HARDWARE_DRIVER (0x0000000d)
+#define SHTDN_REASON_MINOR_OTHERDRIVER (0x0000000e)
+#define SHTDN_REASON_MINOR_BLUESCREEN (0x0000000f)
+#define SHTDN_REASON_MINOR_SERVICEPACK (0x00000010)
+#define SHTDN_REASON_MINOR_HOTFIX (0x00000011)
+#define SHTDN_REASON_MINOR_SECURITYFIX (0x00000012)
+#define SHTDN_REASON_MINOR_SECURITY (0x00000013)
+#define SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY (0x00000014)
+#define SHTDN_REASON_MINOR_WMI (0x00000015)
+#define SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL (0x00000016)
+#define SHTDN_REASON_MINOR_HOTFIX_UNINSTALL (0x00000017)
+#define SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL (0x00000018)
+#define SHTDN_REASON_MINOR_MMC (0x00000019)
+#define SHTDN_REASON_MINOR_TERMSRV (0x00000020)
+extern const value_string initshutdown_initshutdown_ReasonMinor_vals[];
+int initshutdown_dissect_enum_ReasonMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int initshutdown_dissect_bitmap_ReasonFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_INITSHUTDOWN_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-keysvc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-keysvc.c
new file mode 100644 (file)
index 0000000..1e0a00e
--- /dev/null
@@ -0,0 +1,106 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/keysvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/keysvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-keysvc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_keysvc = -1;
+
+
+/* Header field declarations */
+static gint hf_keysvc_opnum = -1;
+static gint hf_keysvc_werror = -1;
+
+static gint proto_dcerpc_keysvc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_keysvc = {
+       0x8d0ffe72, 0xd252, 0x11d0,
+       { 0xbf, 0x8f, 0x00, 0xc0, 0x4f, 0xd9, 0x12, 0x6b }
+};
+static guint16 ver_dcerpc_keysvc = 1;
+
+
+/* IDL: WERROR keysvc_Unknown0( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+keysvc_dissect_Unknown0_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Unknown0";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_keysvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+keysvc_dissect_Unknown0_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Unknown0";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector keysvc_dissectors[] = {
+       { 0, "Unknown0",
+          keysvc_dissect_Unknown0_request, keysvc_dissect_Unknown0_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_keysvc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_keysvc_opnum,
+         { "Operation", "keysvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_keysvc_werror,
+         { "Windows Error", "keysvc.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_keysvc,
+       };
+
+       proto_dcerpc_keysvc = proto_register_protocol("Cryptographic Key Services", "KEYSVC", "keysvc");
+       proto_register_field_array(proto_dcerpc_keysvc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_keysvc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_keysvc, ett_dcerpc_keysvc,
+               &uuid_dcerpc_keysvc, ver_dcerpc_keysvc,
+               keysvc_dissectors, hf_keysvc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-keysvc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-keysvc.h
new file mode 100644 (file)
index 0000000..61d775c
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/keysvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/keysvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_KEYSVC_H
+#define __PACKET_DCERPC_KEYSVC_H
+
+#endif /* __PACKET_DCERPC_KEYSVC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-krb5pac.c b/bin/default/librpc/gen_ndr/packet-dcerpc-krb5pac.c
new file mode 100644 (file)
index 0000000..93f8f39
--- /dev/null
@@ -0,0 +1,1787 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/krb5pac.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/krb5pac.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-krb5pac.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_krb5pac = -1;
+static gint ett_krb5pac_PAC_LOGON_NAME = -1;
+static gint ett_krb5pac_PAC_SIGNATURE_DATA = -1;
+static gint ett_krb5pac_PAC_LOGON_INFO = -1;
+static gint ett_krb5pac_PAC_CONSTRAINED_DELEGATION = -1;
+static gint ett_krb5pac_PAC_UNKNOWN_12 = -1;
+static gint ett_krb5pac_PAC_LOGON_INFO_CTR = -1;
+static gint ett_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR = -1;
+static gint ett_krb5pac_DATA_BLOB_REM = -1;
+static gint ett_krb5pac_PAC_INFO = -1;
+static gint ett_krb5pac_PAC_BUFFER = -1;
+static gint ett_krb5pac_PAC_DATA = -1;
+static gint ett_krb5pac_PAC_BUFFER_RAW = -1;
+static gint ett_krb5pac_PAC_DATA_RAW = -1;
+static gint ett_krb5pac_PAC_Validate = -1;
+static gint ett_krb5pac_netsamlogoncache_entry = -1;
+
+
+/* Header field declarations */
+static gint hf_krb5pac_PAC_LOGON_INFO_res_group_dom_sid = -1;
+static gint hf_krb5pac_PAC_LOGON_INFO_info3 = -1;
+static gint hf_krb5pac_PAC_Validate_MessageType = -1;
+static gint hf_krb5pac_PAC_INFO_logon_info_ = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_upn_name = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_domain_size = -1;
+static gint hf_krb5pac_PAC_INFO_unknown_ = -1;
+static gint hf_krb5pac_PAC_BUFFER__pad = -1;
+static gint hf_krb5pac_PAC_INFO_kdc_cksum = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_domain_name = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_domain_offset = -1;
+static gint hf_krb5pac_PAC_SIGNATURE_DATA_signature = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_upn_size = -1;
+static gint hf_krb5pac_opnum = -1;
+static gint hf_krb5pac_PAC_LOGON_NAME_size = -1;
+static gint hf_krb5pac_decode_login_info_logon_info = -1;
+static gint hf_krb5pac_decode_pac_validate_pac_validate = -1;
+static gint hf_krb5pac_PAC_DATA_buffers = -1;
+static gint hf_krb5pac_PAC_BUFFER_info_ = -1;
+static gint hf_krb5pac_PAC_DATA_RAW_version = -1;
+static gint hf_krb5pac_PAC_BUFFER_RAW_ndr_size = -1;
+static gint hf_krb5pac_PAC_CONSTRAINED_DELEGATION_num_transited_services = -1;
+static gint hf_krb5pac_PAC_CONSTRAINED_DELEGATION_transited_services = -1;
+static gint hf_krb5pac_PAC_BUFFER_type = -1;
+static gint hf_krb5pac_PAC_INFO_logon_info = -1;
+static gint hf_krb5pac_PAC_CONSTRAINED_DELEGATION_proxy_target = -1;
+static gint hf_krb5pac_PAC_INFO_logon_name = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_unknown6 = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_unknown5 = -1;
+static gint hf_krb5pac_PAC_LOGON_NAME_logon_time = -1;
+static gint hf_krb5pac_decode_pac_raw_pac = -1;
+static gint hf_krb5pac_PAC_INFO_unknown = -1;
+static gint hf_krb5pac_PAC_BUFFER__ndr_size = -1;
+static gint hf_krb5pac_PAC_LOGON_INFO_res_groups = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_unknown3 = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_upn_offset = -1;
+static gint hf_krb5pac_PAC_Validate_ChecksumAndSignature = -1;
+static gint hf_krb5pac_decode_login_info_ctr_logon_info_ctr = -1;
+static gint hf_krb5pac_PAC_INFO_constrained_delegation = -1;
+static gint hf_krb5pac_PAC_INFO_constrained_delegation_ = -1;
+static gint hf_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR_info = -1;
+static gint hf_krb5pac_PAC_BUFFER_info = -1;
+static gint hf_krb5pac_netsamlogoncache_entry_info3 = -1;
+static gint hf_krb5pac_PAC_Validate_SignatureType = -1;
+static gint hf_krb5pac_PAC_DATA_num_buffers = -1;
+static gint hf_krb5pac_PAC_BUFFER_RAW__pad = -1;
+static gint hf_krb5pac_PAC_BUFFER_RAW_info = -1;
+static gint hf_krb5pac_PAC_LOGON_NAME_account_name = -1;
+static gint hf_krb5pac_PAC_Validate_ChecksumLength = -1;
+static gint hf_krb5pac_PAC_UNKNOWN_12_unknown4 = -1;
+static gint hf_krb5pac_PAC_INFO_srv_cksum = -1;
+static gint hf_krb5pac_netsamlogoncache_entry_timestamp = -1;
+static gint hf_krb5pac_PAC_DATA_RAW_buffers = -1;
+static gint hf_krb5pac_PAC_SIGNATURE_DATA_type = -1;
+static gint hf_krb5pac_decode_pac_pac = -1;
+static gint hf_krb5pac_PAC_Validate_SignatureLength = -1;
+static gint hf_krb5pac_PAC_DATA_RAW_num_buffers = -1;
+static gint hf_krb5pac_PAC_BUFFER_RAW_info_ = -1;
+static gint hf_krb5pac_PAC_BUFFER_RAW_type = -1;
+static gint hf_krb5pac_PAC_LOGON_INFO_CTR_info = -1;
+static gint hf_krb5pac_PAC_DATA_version = -1;
+static gint hf_krb5pac_DATA_BLOB_REM_remaining = -1;
+
+static gint proto_dcerpc_krb5pac = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_krb5pac = {
+       0x12345778, 0x1234, 0xabcd,
+       { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x", 0x }
+};
+static guint16 ver_dcerpc_krb5pac = 0;
+
+static int krb5pac_dissect_element_PAC_LOGON_NAME_logon_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_NAME_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_NAME_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_NAME_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_SIGNATURE_DATA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_SIGNATURE_DATA_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_INFO_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_INFO_res_group_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_INFO_res_group_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_INFO_res_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_proxy_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_num_transited_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_upn_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_upn_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_domain_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_domain_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_upn_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_upn_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_UNKNOWN_12_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_INFO_CTR_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_LOGON_INFO_CTR_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_CTR_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_CTR_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string krb5pac_PAC_TYPE_vals[] = {
+       { PAC_TYPE_LOGON_INFO, "PAC_TYPE_LOGON_INFO" },
+       { PAC_TYPE_SRV_CHECKSUM, "PAC_TYPE_SRV_CHECKSUM" },
+       { PAC_TYPE_KDC_CHECKSUM, "PAC_TYPE_KDC_CHECKSUM" },
+       { PAC_TYPE_LOGON_NAME, "PAC_TYPE_LOGON_NAME" },
+       { PAC_TYPE_CONSTRAINED_DELEGATION, "PAC_TYPE_CONSTRAINED_DELEGATION" },
+       { PAC_TYPE_UNKNOWN_12, "PAC_TYPE_UNKNOWN_12" },
+{ 0, NULL }
+};
+static int krb5pac_dissect_element_DATA_BLOB_REM_remaining(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_logon_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_logon_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_srv_cksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_kdc_cksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_logon_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_constrained_delegation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_constrained_delegation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_INFO_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int krb5pac_dissect_element_PAC_BUFFER__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int krb5pac_dissect_element_PAC_BUFFER_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int krb5pac_dissect_element_PAC_BUFFER_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int krb5pac_dissect_element_PAC_BUFFER__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_num_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_RAW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_RAW_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_RAW_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_RAW_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_RAW_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_BUFFER_RAW__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_RAW_num_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_RAW_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_RAW_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_DATA_RAW_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_Validate_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_Validate_ChecksumLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_Validate_SignatureType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_Validate_SignatureLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_PAC_Validate_ChecksumAndSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_netsamlogoncache_entry_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_netsamlogoncache_entry_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_decode_pac_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_decode_pac_raw_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_decode_login_info_logon_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_decode_login_info_ctr_logon_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int krb5pac_dissect_element_decode_pac_validate_pac_validate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME logon_time; */
+/* IDL:        [value(2*strlen_m(account_name))] uint16 size; */
+/* IDL:        [charset(UTF16)] uint8 account_name[size]; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_LOGON_NAME_logon_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_LOGON_NAME_logon_time);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_NAME_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_LOGON_NAME_size, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_NAME_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_NAME_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_LOGON_NAME_account_name, 0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_LOGON_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_LOGON_NAME);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_LOGON_NAME_logon_time(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_LOGON_NAME_size(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_LOGON_NAME_account_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 type; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB signature; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_SIGNATURE_DATA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_SIGNATURE_DATA_type, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_SIGNATURE_DATA_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_SIGNATURE_DATA_signature, 1);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_SIGNATURE_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_SIGNATURE_DATA);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_SIGNATURE_DATA_type(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_SIGNATURE_DATA_signature(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_SamInfo3 info3; */
+/* IDL:        [unique(1)] dom_sid2 *res_group_dom_sid; */
+/* IDL:        samr_RidWithAttributeArray res_groups; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_LOGON_INFO_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_netr_SamInfo3(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_LOGON_INFO_info3,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_INFO_res_group_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_LOGON_INFO_res_group_dom_sid_, NDR_POINTER_UNIQUE, "Pointer to Res Group Dom Sid (dom_sid2)",hf_krb5pac_PAC_LOGON_INFO_res_group_dom_sid);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_INFO_res_group_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_LOGON_INFO_res_group_dom_sid,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_INFO_res_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_samr_RidWithAttributeArray(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_LOGON_INFO_res_groups,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_LOGON_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_LOGON_INFO);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_LOGON_INFO_info3(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_LOGON_INFO_res_group_dom_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_LOGON_INFO_res_groups(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String proxy_target; */
+/* IDL:        uint32 num_transited_services; */
+/* IDL:        [unique(1)] [size_is(num_transited_services)] lsa_String *transited_services; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_proxy_target(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_CONSTRAINED_DELEGATION_proxy_target,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_num_transited_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_CONSTRAINED_DELEGATION_num_transited_services, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services_, NDR_POINTER_UNIQUE, "Pointer to Transited Services (lsa_String)",hf_krb5pac_PAC_CONSTRAINED_DELEGATION_transited_services);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services__);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_CONSTRAINED_DELEGATION_transited_services,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_CONSTRAINED_DELEGATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_CONSTRAINED_DELEGATION);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_proxy_target(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_num_transited_services(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_transited_services(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2*strlen_m(upn_name))] uint16 upn_size; */
+/* IDL:        uint16 upn_offset; */
+/* IDL:        [value(2*strlen_m(domain_name))] uint16 domain_size; */
+/* IDL:        uint16 domain_offset; */
+/* IDL:        uint16 unknown3; */
+/* IDL:        uint16 unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        [charset(UTF16)] uint8 upn_name[upn_size+2]; */
+/* IDL:        [charset(UTF16)] uint8 domain_name[domain_size+2]; */
+/* IDL:        uint32 unknown6; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_upn_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_upn_size, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_upn_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_upn_offset, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_domain_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_domain_size, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_domain_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_domain_offset, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_unknown3, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_unknown4, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_unknown5, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_upn_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_upn_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_upn_name, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_domain_name, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_UNKNOWN_12_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_UNKNOWN_12_unknown6, 0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_UNKNOWN_12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_UNKNOWN_12);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_upn_size(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_upn_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_domain_size(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_domain_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_upn_name(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_UNKNOWN_12_unknown6(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] PAC_LOGON_INFO *info; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_LOGON_INFO_CTR_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_LOGON_INFO_CTR_info_, NDR_POINTER_UNIQUE, "Pointer to Info (PAC_LOGON_INFO)",hf_krb5pac_PAC_LOGON_INFO_CTR_info);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_LOGON_INFO_CTR_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_LOGON_INFO(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_LOGON_INFO_CTR_info,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_LOGON_INFO_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_LOGON_INFO_CTR);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_LOGON_INFO_CTR_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] PAC_CONSTRAINED_DELEGATION *info; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_CTR_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_CTR_info_, NDR_POINTER_UNIQUE, "Pointer to Info (PAC_CONSTRAINED_DELEGATION)",hf_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR_info);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_CTR_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_CONSTRAINED_DELEGATION(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR_info,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_CONSTRAINED_DELEGATION_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_CONSTRAINED_DELEGATION_CTR_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PAC_TYPE_LOGON_INFO=1, */
+/* IDL:        PAC_TYPE_SRV_CHECKSUM=6, */
+/* IDL:        PAC_TYPE_KDC_CHECKSUM=7, */
+/* IDL:        PAC_TYPE_LOGON_NAME=10, */
+/* IDL:        PAC_TYPE_CONSTRAINED_DELEGATION=11, */
+/* IDL:        PAC_TYPE_UNKNOWN_12=12, */
+/* IDL: } */
+
+int
+krb5pac_dissect_enum_PAC_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB remaining; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_DATA_BLOB_REM_remaining(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_krb5pac_DATA_BLOB_REM_remaining, 1);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_DATA_BLOB_REM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_DATA_BLOB_REM);
+       }
+       
+       offset = krb5pac_dissect_element_DATA_BLOB_REM_remaining(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [nodiscriminant(1)] [public(1)] union { */
+/* IDL: [case(PAC_TYPE_LOGON_INFO)] [subcontext(0xFFFFFC01)] [case(PAC_TYPE_LOGON_INFO)] PAC_LOGON_INFO_CTR logon_info; */
+/* IDL: [case(PAC_TYPE_SRV_CHECKSUM)] [case(PAC_TYPE_SRV_CHECKSUM)] PAC_SIGNATURE_DATA srv_cksum; */
+/* IDL: [case(PAC_TYPE_KDC_CHECKSUM)] [case(PAC_TYPE_KDC_CHECKSUM)] PAC_SIGNATURE_DATA kdc_cksum; */
+/* IDL: [case(PAC_TYPE_LOGON_NAME)] [case(PAC_TYPE_LOGON_NAME)] PAC_LOGON_NAME logon_name; */
+/* IDL: [case(PAC_TYPE_CONSTRAINED_DELEGATION)] [subcontext(0xFFFFFC01)] [case(PAC_TYPE_CONSTRAINED_DELEGATION)] PAC_CONSTRAINED_DELEGATION_CTR constrained_delegation; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_INFO_logon_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_INFO_logon_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               krb5pac_dissect_element_PAC_INFO_logon_info_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_logon_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_LOGON_INFO_CTR(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_INFO_logon_info,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_srv_cksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_SIGNATURE_DATA(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_INFO_srv_cksum,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_kdc_cksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_SIGNATURE_DATA(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_INFO_kdc_cksum,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_logon_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_LOGON_NAME(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_INFO_logon_name,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_constrained_delegation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_INFO_constrained_delegation_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               krb5pac_dissect_element_PAC_INFO_constrained_delegation_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_constrained_delegation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_CONSTRAINED_DELEGATION_CTR(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_INFO_constrained_delegation,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_INFO_unknown_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               krb5pac_dissect_element_PAC_INFO_unknown_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_INFO_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_DATA_BLOB_REM(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_INFO_unknown,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_PAC_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "PAC_INFO");
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_INFO);
+       }
+
+       switch(level) {
+               case PAC_TYPE_LOGON_INFO:
+                       offset = krb5pac_dissect_element_PAC_INFO_logon_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case PAC_TYPE_SRV_CHECKSUM:
+                       offset = krb5pac_dissect_element_PAC_INFO_srv_cksum(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case PAC_TYPE_KDC_CHECKSUM:
+                       offset = krb5pac_dissect_element_PAC_INFO_kdc_cksum(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case PAC_TYPE_LOGON_NAME:
+                       offset = krb5pac_dissect_element_PAC_INFO_logon_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case PAC_TYPE_CONSTRAINED_DELEGATION:
+                       offset = krb5pac_dissect_element_PAC_INFO_constrained_delegation(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = krb5pac_dissect_element_PAC_INFO_unknown(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        PAC_TYPE type; */
+/* IDL:        [value(_ndr_size_PAC_INFO(info,type,0))] uint32 _ndr_size; */
+/* IDL:        [relative(1)] [subcontext_size(_subcontext_size_PAC_INFO(r,ndr->flags))] [subcontext(0)] [switch_is(type)] [flag(LIBNDR_FLAG_ALIGN8)] PAC_INFO *info; */
+/* IDL:        [value(0)] uint32 _pad; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = krb5pac_dissect_enum_PAC_TYPE(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_type, type);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER__ndr_size, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_BUFFER_info_, , "Pointer to Info (PAC_INFO)",hf_krb5pac_PAC_BUFFER_info);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               krb5pac_dissect_element_PAC_BUFFER_info__(subtvb, 0, pinfo, tree, drep, type);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = krb5pac_dissect_PAC_INFO(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_info, *type);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER__pad, 0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_BUFFER);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_BUFFER_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = krb5pac_dissect_element_PAC_BUFFER__ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_BUFFER_info(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = krb5pac_dissect_element_PAC_BUFFER__pad(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_buffers; */
+/* IDL:        uint32 version; */
+/* IDL:        PAC_BUFFER buffers[num_buffers]; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_DATA_num_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_DATA_num_buffers, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_DATA_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_DATA_version, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_DATA_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_DATA_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_BUFFER(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_DATA_buffers,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_DATA);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_DATA_num_buffers(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_DATA_version(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_DATA_buffers(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        PAC_TYPE type; */
+/* IDL:        uint32 ndr_size; */
+/* IDL:        [relative(1)] [subcontext_size(NDR_ROUND(ndr_size,8))] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN8)] DATA_BLOB_REM *info; */
+/* IDL:        [value(0)] uint32 _pad; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_RAW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_enum_PAC_TYPE(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_RAW_type, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_RAW_ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_RAW_ndr_size, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_RAW_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, krb5pac_dissect_element_PAC_BUFFER_RAW_info_, , "Pointer to Info (DATA_BLOB_REM)",hf_krb5pac_PAC_BUFFER_RAW_info);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_RAW_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_RAW_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               krb5pac_dissect_element_PAC_BUFFER_RAW_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_RAW_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_DATA_BLOB_REM(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_BUFFER_RAW_info,0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_BUFFER_RAW__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_BUFFER_RAW__pad, 0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_BUFFER_RAW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_BUFFER_RAW);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_BUFFER_RAW_type(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_BUFFER_RAW_ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_BUFFER_RAW_info(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_BUFFER_RAW__pad(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_buffers; */
+/* IDL:        uint32 version; */
+/* IDL:        PAC_BUFFER_RAW buffers[num_buffers]; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_DATA_RAW_num_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_DATA_RAW_num_buffers, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_DATA_RAW_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_DATA_RAW_version, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_DATA_RAW_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_DATA_RAW_buffers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_BUFFER_RAW(tvb,offset,pinfo,tree,drep,hf_krb5pac_PAC_DATA_RAW_buffers,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_DATA_RAW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_DATA_RAW);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_DATA_RAW_num_buffers(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_DATA_RAW_version(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_DATA_RAW_buffers(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(NETLOGON_GENERIC_KRB5_PAC_VALIDATE)] uint32 MessageType; */
+/* IDL:        uint32 ChecksumLength; */
+/* IDL:        int32 SignatureType; */
+/* IDL:        uint32 SignatureLength; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB ChecksumAndSignature; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_PAC_Validate_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_Validate_MessageType, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_Validate_ChecksumLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_Validate_ChecksumLength, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_Validate_SignatureType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_Validate_SignatureType, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_Validate_SignatureLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_Validate_SignatureLength, 0);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_PAC_Validate_ChecksumAndSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_krb5pac_PAC_Validate_ChecksumAndSignature, 1);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_PAC_Validate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_PAC_Validate);
+       }
+       
+       offset = krb5pac_dissect_element_PAC_Validate_MessageType(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_Validate_ChecksumLength(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_Validate_SignatureType(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_Validate_SignatureLength(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_PAC_Validate_ChecksumAndSignature(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        time_t timestamp; */
+/* IDL:        netr_SamInfo3 info3; */
+/* IDL: } */
+
+static int
+krb5pac_dissect_element_netsamlogoncache_entry_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_krb5pac_netsamlogoncache_entry_timestamp, NULL);
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_netsamlogoncache_entry_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_netr_SamInfo3(tvb,offset,pinfo,tree,drep,hf_krb5pac_netsamlogoncache_entry_info3,0);
+
+       return offset;
+}
+
+int
+krb5pac_dissect_struct_netsamlogoncache_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_krb5pac_netsamlogoncache_entry);
+       }
+       
+       offset = krb5pac_dissect_element_netsamlogoncache_entry_timestamp(tvb, offset, pinfo, tree, drep);
+
+       offset = krb5pac_dissect_element_netsamlogoncache_entry_info3(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_decode_pac_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_DATA(tvb,offset,pinfo,tree,drep,hf_krb5pac_decode_pac_pac,0);
+
+       return offset;
+}
+
+/* IDL: void decode_pac( */
+/* IDL: [in] PAC_DATA pac */
+/* IDL: ); */
+
+static int
+krb5pac_dissect_decode_pac_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_pac";
+       return offset;
+}
+
+static int
+krb5pac_dissect_decode_pac_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_pac";
+       offset = krb5pac_dissect_element_decode_pac_pac(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_decode_pac_raw_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_DATA_RAW(tvb,offset,pinfo,tree,drep,hf_krb5pac_decode_pac_raw_pac,0);
+
+       return offset;
+}
+
+/* IDL: void decode_pac_raw( */
+/* IDL: [in] PAC_DATA_RAW pac */
+/* IDL: ); */
+
+static int
+krb5pac_dissect_decode_pac_raw_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_pac_raw";
+       return offset;
+}
+
+static int
+krb5pac_dissect_decode_pac_raw_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_pac_raw";
+       offset = krb5pac_dissect_element_decode_pac_raw_pac(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_decode_login_info_logon_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_LOGON_INFO(tvb,offset,pinfo,tree,drep,hf_krb5pac_decode_login_info_logon_info,0);
+
+       return offset;
+}
+
+/* IDL: void decode_login_info( */
+/* IDL: [in] PAC_LOGON_INFO logon_info */
+/* IDL: ); */
+
+static int
+krb5pac_dissect_decode_login_info_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_login_info";
+       return offset;
+}
+
+static int
+krb5pac_dissect_decode_login_info_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_login_info";
+       offset = krb5pac_dissect_element_decode_login_info_logon_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_decode_login_info_ctr_logon_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_LOGON_INFO_CTR(tvb,offset,pinfo,tree,drep,hf_krb5pac_decode_login_info_ctr_logon_info_ctr,0);
+
+       return offset;
+}
+
+/* IDL: void decode_login_info_ctr( */
+/* IDL: [in] PAC_LOGON_INFO_CTR logon_info_ctr */
+/* IDL: ); */
+
+static int
+krb5pac_dissect_decode_login_info_ctr_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_login_info_ctr";
+       return offset;
+}
+
+static int
+krb5pac_dissect_decode_login_info_ctr_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_login_info_ctr";
+       offset = krb5pac_dissect_element_decode_login_info_ctr_logon_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+krb5pac_dissect_element_decode_pac_validate_pac_validate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = krb5pac_dissect_struct_PAC_Validate(tvb,offset,pinfo,tree,drep,hf_krb5pac_decode_pac_validate_pac_validate,0);
+
+       return offset;
+}
+
+/* IDL: void decode_pac_validate( */
+/* IDL: [in] PAC_Validate pac_validate */
+/* IDL: ); */
+
+static int
+krb5pac_dissect_decode_pac_validate_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_pac_validate";
+       return offset;
+}
+
+static int
+krb5pac_dissect_decode_pac_validate_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_pac_validate";
+       offset = krb5pac_dissect_element_decode_pac_validate_pac_validate(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector krb5pac_dissectors[] = {
+       { 0, "decode_pac",
+          krb5pac_dissect_decode_pac_request, krb5pac_dissect_decode_pac_response},
+       { 1, "decode_pac_raw",
+          krb5pac_dissect_decode_pac_raw_request, krb5pac_dissect_decode_pac_raw_response},
+       { 2, "decode_login_info",
+          krb5pac_dissect_decode_login_info_request, krb5pac_dissect_decode_login_info_response},
+       { 3, "decode_login_info_ctr",
+          krb5pac_dissect_decode_login_info_ctr_request, krb5pac_dissect_decode_login_info_ctr_response},
+       { 4, "decode_pac_validate",
+          krb5pac_dissect_decode_pac_validate_request, krb5pac_dissect_decode_pac_validate_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_krb5pac(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_krb5pac_PAC_LOGON_INFO_res_group_dom_sid,
+         { "Res Group Dom Sid", "krb5pac.PAC_LOGON_INFO.res_group_dom_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_LOGON_INFO_info3,
+         { "Info3", "krb5pac.PAC_LOGON_INFO.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_Validate_MessageType,
+         { "Messagetype", "krb5pac.PAC_Validate.MessageType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_logon_info_,
+         { "Subcontext length", "krb5pac.PAC_INFO.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_upn_name,
+         { "Upn Name", "krb5pac.PAC_UNKNOWN_12.upn_name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_domain_size,
+         { "Domain Size", "krb5pac.PAC_UNKNOWN_12.domain_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_unknown_,
+         { "Subcontext length", "krb5pac.PAC_INFO.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER__pad,
+         { " Pad", "krb5pac.PAC_BUFFER._pad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_kdc_cksum,
+         { "Kdc Cksum", "krb5pac.PAC_INFO.kdc_cksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_domain_name,
+         { "Domain Name", "krb5pac.PAC_UNKNOWN_12.domain_name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_domain_offset,
+         { "Domain Offset", "krb5pac.PAC_UNKNOWN_12.domain_offset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_SIGNATURE_DATA_signature,
+         { "Signature", "krb5pac.PAC_SIGNATURE_DATA.signature", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_upn_size,
+         { "Upn Size", "krb5pac.PAC_UNKNOWN_12.upn_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_opnum,
+         { "Operation", "krb5pac.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_LOGON_NAME_size,
+         { "Size", "krb5pac.PAC_LOGON_NAME.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_decode_login_info_logon_info,
+         { "Logon Info", "krb5pac.decode_login_info.logon_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_decode_pac_validate_pac_validate,
+         { "Pac Validate", "krb5pac.decode_pac_validate.pac_validate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_DATA_buffers,
+         { "Buffers", "krb5pac.PAC_DATA.buffers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_info_,
+         { "Subcontext length", "krb5pac.PAC_BUFFER.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_DATA_RAW_version,
+         { "Version", "krb5pac.PAC_DATA_RAW.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_RAW_ndr_size,
+         { "Ndr Size", "krb5pac.PAC_BUFFER_RAW.ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_CONSTRAINED_DELEGATION_num_transited_services,
+         { "Num Transited Services", "krb5pac.PAC_CONSTRAINED_DELEGATION.num_transited_services", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_CONSTRAINED_DELEGATION_transited_services,
+         { "Transited Services", "krb5pac.PAC_CONSTRAINED_DELEGATION.transited_services", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_type,
+         { "Type", "krb5pac.PAC_BUFFER.type", FT_UINT32, BASE_DEC, VALS(krb5pac_PAC_TYPE_vals), 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_logon_info,
+         { "Logon Info", "krb5pac.PAC_INFO.logon_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_CONSTRAINED_DELEGATION_proxy_target,
+         { "Proxy Target", "krb5pac.PAC_CONSTRAINED_DELEGATION.proxy_target", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_logon_name,
+         { "Logon Name", "krb5pac.PAC_INFO.logon_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_unknown6,
+         { "Unknown6", "krb5pac.PAC_UNKNOWN_12.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_unknown5,
+         { "Unknown5", "krb5pac.PAC_UNKNOWN_12.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_LOGON_NAME_logon_time,
+         { "Logon Time", "krb5pac.PAC_LOGON_NAME.logon_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_decode_pac_raw_pac,
+         { "Pac", "krb5pac.decode_pac_raw.pac", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_unknown,
+         { "Unknown", "krb5pac.PAC_INFO.unknown", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER__ndr_size,
+         { " Ndr Size", "krb5pac.PAC_BUFFER._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_LOGON_INFO_res_groups,
+         { "Res Groups", "krb5pac.PAC_LOGON_INFO.res_groups", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_unknown3,
+         { "Unknown3", "krb5pac.PAC_UNKNOWN_12.unknown3", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_upn_offset,
+         { "Upn Offset", "krb5pac.PAC_UNKNOWN_12.upn_offset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_Validate_ChecksumAndSignature,
+         { "Checksumandsignature", "krb5pac.PAC_Validate.ChecksumAndSignature", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_decode_login_info_ctr_logon_info_ctr,
+         { "Logon Info Ctr", "krb5pac.decode_login_info_ctr.logon_info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_constrained_delegation,
+         { "Constrained Delegation", "krb5pac.PAC_INFO.constrained_delegation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_constrained_delegation_,
+         { "Subcontext length", "krb5pac.PAC_INFO.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR_info,
+         { "Info", "krb5pac.PAC_CONSTRAINED_DELEGATION_CTR.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_info,
+         { "Info", "krb5pac.PAC_BUFFER.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_netsamlogoncache_entry_info3,
+         { "Info3", "krb5pac.netsamlogoncache_entry.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_Validate_SignatureType,
+         { "Signaturetype", "krb5pac.PAC_Validate.SignatureType", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_DATA_num_buffers,
+         { "Num Buffers", "krb5pac.PAC_DATA.num_buffers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_RAW__pad,
+         { " Pad", "krb5pac.PAC_BUFFER_RAW._pad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_RAW_info,
+         { "Info", "krb5pac.PAC_BUFFER_RAW.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_LOGON_NAME_account_name,
+         { "Account Name", "krb5pac.PAC_LOGON_NAME.account_name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_Validate_ChecksumLength,
+         { "Checksumlength", "krb5pac.PAC_Validate.ChecksumLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_UNKNOWN_12_unknown4,
+         { "Unknown4", "krb5pac.PAC_UNKNOWN_12.unknown4", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_INFO_srv_cksum,
+         { "Srv Cksum", "krb5pac.PAC_INFO.srv_cksum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_netsamlogoncache_entry_timestamp,
+         { "Timestamp", "krb5pac.netsamlogoncache_entry.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_DATA_RAW_buffers,
+         { "Buffers", "krb5pac.PAC_DATA_RAW.buffers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_SIGNATURE_DATA_type,
+         { "Type", "krb5pac.PAC_SIGNATURE_DATA.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_decode_pac_pac,
+         { "Pac", "krb5pac.decode_pac.pac", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_Validate_SignatureLength,
+         { "Signaturelength", "krb5pac.PAC_Validate.SignatureLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_DATA_RAW_num_buffers,
+         { "Num Buffers", "krb5pac.PAC_DATA_RAW.num_buffers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_RAW_info_,
+         { "Subcontext length", "krb5pac.PAC_BUFFER_RAW.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_BUFFER_RAW_type,
+         { "Type", "krb5pac.PAC_BUFFER_RAW.type", FT_UINT32, BASE_DEC, VALS(krb5pac_PAC_TYPE_vals), 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_LOGON_INFO_CTR_info,
+         { "Info", "krb5pac.PAC_LOGON_INFO_CTR.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_PAC_DATA_version,
+         { "Version", "krb5pac.PAC_DATA.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_krb5pac_DATA_BLOB_REM_remaining,
+         { "Remaining", "krb5pac.DATA_BLOB_REM.remaining", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_krb5pac,
+               &ett_krb5pac_PAC_LOGON_NAME,
+               &ett_krb5pac_PAC_SIGNATURE_DATA,
+               &ett_krb5pac_PAC_LOGON_INFO,
+               &ett_krb5pac_PAC_CONSTRAINED_DELEGATION,
+               &ett_krb5pac_PAC_UNKNOWN_12,
+               &ett_krb5pac_PAC_LOGON_INFO_CTR,
+               &ett_krb5pac_PAC_CONSTRAINED_DELEGATION_CTR,
+               &ett_krb5pac_DATA_BLOB_REM,
+               &ett_krb5pac_PAC_INFO,
+               &ett_krb5pac_PAC_BUFFER,
+               &ett_krb5pac_PAC_DATA,
+               &ett_krb5pac_PAC_BUFFER_RAW,
+               &ett_krb5pac_PAC_DATA_RAW,
+               &ett_krb5pac_PAC_Validate,
+               &ett_krb5pac_netsamlogoncache_entry,
+       };
+
+       proto_dcerpc_krb5pac = proto_register_protocol("Active Directory KRB5 PAC", "KRB5PAC", "krb5pac");
+       proto_register_field_array(proto_dcerpc_krb5pac, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_krb5pac(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_krb5pac, ett_dcerpc_krb5pac,
+               &uuid_dcerpc_krb5pac, ver_dcerpc_krb5pac,
+               krb5pac_dissectors, hf_krb5pac_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-krb5pac.h b/bin/default/librpc/gen_ndr/packet-dcerpc-krb5pac.h
new file mode 100644 (file)
index 0000000..083bfd6
--- /dev/null
@@ -0,0 +1,48 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/krb5pac.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/krb5pac.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-netlogon.h"
+#include "packet-dcerpc-samr.h"
+
+#ifndef __PACKET_DCERPC_KRB5PAC_H
+#define __PACKET_DCERPC_KRB5PAC_H
+
+#define NETLOGON_GENERIC_KRB5_PAC_VALIDATE     ( 3 )
+
+int krb5pac_dissect_struct_PAC_LOGON_NAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_SIGNATURE_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_LOGON_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_CONSTRAINED_DELEGATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_UNKNOWN_12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_LOGON_INFO_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_CONSTRAINED_DELEGATION_CTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define PAC_TYPE_LOGON_INFO (1)
+#define PAC_TYPE_SRV_CHECKSUM (6)
+#define PAC_TYPE_KDC_CHECKSUM (7)
+#define PAC_TYPE_LOGON_NAME (10)
+#define PAC_TYPE_CONSTRAINED_DELEGATION (11)
+#define PAC_TYPE_UNKNOWN_12 (12)
+extern const value_string krb5pac_PAC_TYPE_vals[];
+int krb5pac_dissect_enum_PAC_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int krb5pac_dissect_struct_DATA_BLOB_REM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_BUFFER_RAW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_DATA_RAW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_PAC_Validate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int krb5pac_dissect_struct_netsamlogoncache_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_KRB5PAC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-lsa.c b/bin/default/librpc/gen_ndr/packet-dcerpc-lsa.c
new file mode 100644 (file)
index 0000000..cb3da7a
--- /dev/null
@@ -0,0 +1,15397 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/lsa.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/lsa.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-lsa.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_lsarpc = -1;
+static gint ett_lsarpc_security_secinfo = -1;
+static gint ett_lsarpc_kerb_EncTypes = -1;
+static gint ett_lsarpc_lsa_String = -1;
+static gint ett_lsarpc_lsa_StringLarge = -1;
+static gint ett_lsarpc_lsa_Strings = -1;
+static gint ett_lsarpc_lsa_AsciiString = -1;
+static gint ett_lsarpc_lsa_AsciiStringLarge = -1;
+static gint ett_lsarpc_lsa_BinaryString = -1;
+static gint ett_lsarpc_lsa_LUID = -1;
+static gint ett_lsarpc_lsa_PrivEntry = -1;
+static gint ett_lsarpc_lsa_PrivArray = -1;
+static gint ett_lsarpc_lsa_QosInfo = -1;
+static gint ett_lsarpc_lsa_ObjectAttribute = -1;
+static gint ett_lsarpc_lsa_PolicyAccessMask = -1;
+static gint ett_lsarpc_lsa_AccountAccessMask = -1;
+static gint ett_lsarpc_lsa_SecretAccessMask = -1;
+static gint ett_lsarpc_lsa_TrustedAccessMask = -1;
+static gint ett_lsarpc_lsa_AuditLogInfo = -1;
+static gint ett_lsarpc_lsa_AuditEventsInfo = -1;
+static gint ett_lsarpc_lsa_DomainInfo = -1;
+static gint ett_lsarpc_lsa_PDAccountInfo = -1;
+static gint ett_lsarpc_lsa_ServerRole = -1;
+static gint ett_lsarpc_lsa_ReplicaSourceInfo = -1;
+static gint ett_lsarpc_lsa_DefaultQuotaInfo = -1;
+static gint ett_lsarpc_lsa_ModificationInfo = -1;
+static gint ett_lsarpc_lsa_AuditFullSetInfo = -1;
+static gint ett_lsarpc_lsa_AuditFullQueryInfo = -1;
+static gint ett_lsarpc_lsa_DnsDomainInfo = -1;
+static gint ett_lsarpc_lsa_PolicyInformation = -1;
+static gint ett_lsarpc_lsa_SidPtr = -1;
+static gint ett_lsarpc_lsa_SidArray = -1;
+static gint ett_lsarpc_lsa_DomainList = -1;
+static gint ett_lsarpc_lsa_TranslatedSid = -1;
+static gint ett_lsarpc_lsa_TransSidArray = -1;
+static gint ett_lsarpc_lsa_RefDomainList = -1;
+static gint ett_lsarpc_lsa_TranslatedName = -1;
+static gint ett_lsarpc_lsa_TransNameArray = -1;
+static gint ett_lsarpc_lsa_LUIDAttribute = -1;
+static gint ett_lsarpc_lsa_PrivilegeSet = -1;
+static gint ett_lsarpc_lsa_DATA_BUF = -1;
+static gint ett_lsarpc_lsa_DATA_BUF2 = -1;
+static gint ett_lsarpc_lsa_TrustDirection = -1;
+static gint ett_lsarpc_lsa_TrustAttributes = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoName = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoControllers = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoPosixOffset = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoPassword = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoBasic = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoInfoEx = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoBuffer = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfo = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfo = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternal = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfoInternal = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoInfoEx2Internal = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoFullInfo2Internal = -1;
+static gint ett_lsarpc_lsa_TrustDomainInfoSupportedEncTypes = -1;
+static gint ett_lsarpc_lsa_TrustedDomainInfo = -1;
+static gint ett_lsarpc_lsa_DATA_BUF_PTR = -1;
+static gint ett_lsarpc_lsa_RightAttribute = -1;
+static gint ett_lsarpc_lsa_RightSet = -1;
+static gint ett_lsarpc_lsa_DomainListEx = -1;
+static gint ett_lsarpc_lsa_krbAuthenticationOptions = -1;
+static gint ett_lsarpc_lsa_DomainInfoKerberos = -1;
+static gint ett_lsarpc_lsa_DomainInfoEfs = -1;
+static gint ett_lsarpc_lsa_DomainInformationPolicy = -1;
+static gint ett_lsarpc_lsa_TranslatedName2 = -1;
+static gint ett_lsarpc_lsa_TransNameArray2 = -1;
+static gint ett_lsarpc_lsa_TranslatedSid2 = -1;
+static gint ett_lsarpc_lsa_TransSidArray2 = -1;
+static gint ett_lsarpc_lsa_TranslatedSid3 = -1;
+static gint ett_lsarpc_lsa_TransSidArray3 = -1;
+static gint ett_lsarpc_lsa_ForestTrustBinaryData = -1;
+static gint ett_lsarpc_lsa_ForestTrustDomainInfo = -1;
+static gint ett_lsarpc_lsa_ForestTrustData = -1;
+static gint ett_lsarpc_lsa_ForestTrustRecord = -1;
+static gint ett_lsarpc_lsa_ForestTrustInformation = -1;
+static gint ett_lsarpc_lsa_ForestTrustCollisionTDOFlags = -1;
+static gint ett_lsarpc_lsa_ForestTrustCollisionXrefFlags = -1;
+static gint ett_lsarpc_lsa_ForestTrustCollisionFlags = -1;
+static gint ett_lsarpc_lsa_ForestTrustCollisionRecord = -1;
+static gint ett_lsarpc_lsa_ForestTrustCollisionInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_lsarpc_lsa_TrustedDomainInfo_enc_types = -1;
+static gint hf_lsarpc_lsa_SetSystemAccessAccount_handle = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE = -1;
+static gint hf_lsarpc_lsa_AsciiStringLarge_size = -1;
+static gint hf_lsarpc_lsa_LookupPrivName_luid = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_count = -1;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_trusted_domain_name = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_auth_info_internal = -1;
+static gint hf_lsarpc_lsa_Delete_handle = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_account_domain = -1;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_clock_skew = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_ADMIN = -1;
+static gint hf_lsarpc_lsa_ForestTrustData_domain_info = -1;
+static gint hf_lsarpc_lsa_AddPrivilegesToAccount_handle = -1;
+static gint hf_lsarpc_lsa_ObjectAttribute_sec_qos = -1;
+static gint hf_lsarpc_lsa_LookupNames3_handle = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_level = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_sid = -1;
+static gint hf_lsarpc_lsa_EnumAccounts_handle = -1;
+static gint hf_lsarpc_lsa_CreateAccount_sid = -1;
+static gint hf_lsarpc_lsa_ReplicaSourceInfo_account = -1;
+static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_handle = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_info = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoControllers_netbios_names = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS = -1;
+static gint hf_lsarpc_lsa_PrivilegeSet_set = -1;
+static gint hf_lsarpc_lsa_QuerySecret_new_val = -1;
+static gint hf_lsarpc_lsa_TranslatedSid2_unknown = -1;
+static gint hf_lsarpc_lsa_LookupSids2_handle = -1;
+static gint hf_lsarpc_lsa_DomainListEx_domains = -1;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_check_only = -1;
+static gint hf_lsarpc_lsa_LookupNames3_num_names = -1;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_max_size = -1;
+static gint hf_lsarpc_lsa_LookupPrivName_handle = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionFlags_flags = -1;
+static gint hf_lsarpc_lsa_OpenAccount_handle = -1;
+static gint hf_lsarpc_lsa_OpenSecret_access_mask = -1;
+static gint hf_lsarpc_lsa_QuerySecurity_sdbuf = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_trusted_domain = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_EnumPrivs_handle = -1;
+static gint hf_lsarpc_lsa_LUID_high = -1;
+static gint hf_lsarpc_lsa_QueryInfoPolicy_handle = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_audit_events = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE = -1;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_service_tkt_lifetime = -1;
+static gint hf_lsarpc_lsa_CreateSecret_access_mask = -1;
+static gint hf_lsarpc_lsa_GetUserName_authority_name = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_dom_sid = -1;
+static gint hf_lsarpc_lsa_AuditFullSetInfo_shutdown_on_full = -1;
+static gint hf_lsarpc_lsa_DeleteTrustedDomain_dom_sid = -1;
+static gint hf_lsarpc_lsa_LookupNames4_names = -1;
+static gint hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data = -1;
+static gint hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_role = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_audit_log = -1;
+static gint hf_lsarpc_lsa_LookupNames2_client_revision = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_dns = -1;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_handle = -1;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_trusted_domain_name = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_trusted_domain = -1;
+static gint hf_lsarpc_lsa_OpenPolicy2_handle = -1;
+static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_count = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_mod = -1;
+static gint hf_lsarpc_lsa_LookupSids3_client_revision = -1;
+static gint hf_lsarpc_lsa_RemoveAccountRights_rights = -1;
+static gint hf_lsarpc_lsa_SetSecret_sec_handle = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_access_mask = -1;
+static gint hf_lsarpc_lsa_RightAttribute_name = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoPassword_old_password = -1;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_renewaltime = -1;
+static gint hf_lsarpc_lsa_LUID_low = -1;
+static gint hf_lsarpc_lsa_LookupNames3_names = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_dom_sid = -1;
+static gint hf_lsarpc_lsa_SetSecObj_sdbuf = -1;
+static gint hf_lsarpc_lsa_RemoveAccountRights_remove_all = -1;
+static gint hf_lsarpc_lsa_LookupSids_names = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_access_mask = -1;
+static gint hf_lsarpc_lsa_RetrievePrivateData_handle = -1;
+static gint hf_lsarpc_lsa_RefDomainList_max_size = -1;
+static gint hf_lsarpc_lsa_TransSidArray_sids = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_attributes = -1;
+static gint hf_lsarpc_lsa_CreateSecret_sec_handle = -1;
+static gint hf_lsarpc_lsa_SetSecret_old_val = -1;
+static gint hf_lsarpc_lsa_SetSecObj_sec_info = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_last_update_time = -1;
+static gint hf_lsarpc_lsa_LookupSids2_client_revision = -1;
+static gint hf_lsarpc_lsa_DnsDomainInfo_dns_forest = -1;
+static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_info = -1;
+static gint hf_lsarpc_lsa_ForestTrustDomainInfo_netbios_domain_name = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_direction = -1;
+static gint hf_lsarpc_lsa_LookupNames3_sids = -1;
+static gint hf_lsarpc_lsa_ObjectAttribute_sec_desc = -1;
+static gint hf_lsarpc_lsa_AuditLogInfo_retention_time = -1;
+static gint hf_lsarpc_lsa_DnsDomainInfo_name = -1;
+static gint hf_lsarpc_lsa_TranslatedSid2_sid_index = -1;
+static gint hf_lsarpc_lsa_QuerySecret_old_mtime = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_handle = -1;
+static gint hf_lsarpc_lsa_TransNameArray_names = -1;
+static gint hf_lsarpc_lsa_RefDomainList_count = -1;
+static gint hf_lsarpc_lsa_QueryInfoPolicy2_info = -1;
+static gint hf_lsarpc_lsa_GetSystemAccessAccount_access_mask = -1;
+static gint hf_lsarpc_lsa_DomainInformationPolicy_kerberos_info = -1;
+static gint hf_lsarpc_lsa_QueryInfoPolicy_info = -1;
+static gint hf_lsarpc_lsa_CreateAccount_acct_handle = -1;
+static gint hf_lsarpc_lsa_AuditLogInfo_maximum_log_size = -1;
+static gint hf_lsarpc_lsa_AuditLogInfo_shutdown_in_progress = -1;
+static gint hf_lsarpc_lsa_OpenSecret_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoName_netbios_name = -1;
+static gint hf_lsarpc_lsa_SetInformationTrustedDomain_info = -1;
+static gint hf_lsarpc_lsa_LookupNames_handle = -1;
+static gint hf_lsarpc_lsa_EnumTrustDom_max_size = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoPassword_password = -1;
+static gint hf_lsarpc_lsa_ObjectAttribute_object_name = -1;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_highest_record_type = -1;
+static gint hf_lsarpc_lsa_EnumTrustDom_resume_handle = -1;
+static gint hf_lsarpc_lsa_QosInfo_impersonation_level = -1;
+static gint hf_lsarpc_lsa_QueryInfoPolicy2_level = -1;
+static gint hf_lsarpc_lsa_TranslatedSid3_sid = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoBasic_netbios_name = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN = -1;
+static gint hf_lsarpc_lsa_ForestTrustInformation_entries = -1;
+static gint hf_lsarpc_lsa_ForestTrustData_top_level_name_ex = -1;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_non_paged_pool = -1;
+static gint hf_lsarpc_lsa_ForestTrustBinaryData_length = -1;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_unknown = -1;
+static gint hf_lsarpc_lsa_QosInfo_len = -1;
+static gint hf_lsarpc_lsa_LookupNames3_level = -1;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_disp_name = -1;
+static gint hf_lsarpc_lsa_LookupNames_level = -1;
+static gint hf_lsarpc_lsa_LookupNames4_count = -1;
+static gint hf_lsarpc_lsa_LookupNames_names = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX = -1;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES = -1;
+static gint hf_lsarpc_lsa_PrivEntry_luid = -1;
+static gint hf_lsarpc_lsa_EnumAccounts_resume_handle = -1;
+static gint hf_lsarpc_lsa_LookupSids3_level = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT = -1;
+static gint hf_lsarpc_lsa_DATA_BUF_data = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_name = -1;
+static gint hf_lsarpc_lsa_DomainListEx_count = -1;
+static gint hf_lsarpc_lsa_DeleteObject_handle = -1;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_pagefile = -1;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_min_wss = -1;
+static gint hf_lsarpc_lsa_ForestTrustData_top_level_name = -1;
+static gint hf_lsarpc_lsa_TranslatedName2_sid_type = -1;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_returned_language_id = -1;
+static gint hf_lsarpc_lsa_SetSystemAccessAccount_access_mask = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomain_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_info_ex = -1;
+static gint hf_lsarpc_lsa_ForestTrustRecord_type = -1;
+static gint hf_lsarpc_lsa_DATA_BUF2_data = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH = -1;
+static gint hf_lsarpc_lsa_RemoveAccountRights_handle = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION = -1;
+static gint hf_lsarpc_lsa_LookupNames3_count = -1;
+static gint hf_lsarpc_lsa_LookupNames3_client_revision = -1;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_forest_trust_info = -1;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_resume_handle = -1;
+static gint hf_lsarpc_lsa_TransNameArray2_count = -1;
+static gint hf_lsarpc_lsa_DomainInfo_sid = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_level = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_sid = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info = -1;
+static gint hf_lsarpc_lsa_LookupNames3_domains = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_access_mask = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_info = -1;
+static gint hf_lsarpc_lsa_SetSecret_new_val = -1;
+static gint hf_lsarpc_lsa_String_string = -1;
+static gint hf_lsarpc_lsa_PrivArray_count = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_level = -1;
+static gint hf_lsarpc_lsa_DATA_BUF_size = -1;
+static gint hf_lsarpc_lsa_QueryDomainInformationPolicy_level = -1;
+static gint hf_lsarpc_lsa_StorePrivateData_val = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_index = -1;
+static gint hf_lsarpc_lsa_StringLarge_string = -1;
+static gint hf_lsarpc_lsa_DomainInfo_name = -1;
+static gint hf_lsarpc_lsa_AsciiString_size = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_ADMIN = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_NEW = -1;
+static gint hf_lsarpc_lsa_LookupNames2_sids = -1;
+static gint hf_lsarpc_lsa_SetDomainInformationPolicy_level = -1;
+static gint hf_lsarpc_lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT = -1;
+static gint hf_lsarpc_lsa_SetInfoPolicy2_info = -1;
+static gint hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND = -1;
+static gint hf_lsarpc_lsa_AsciiStringLarge_string = -1;
+static gint hf_lsarpc_lsa_LookupSids2_level = -1;
+static gint hf_lsarpc_lsa_OpenSecret_sec_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info = -1;
+static gint hf_lsarpc_lsa_DomainInformationPolicy_efs_info = -1;
+static gint hf_lsarpc_lsa_EnumAccounts_sids = -1;
+static gint hf_lsarpc_lsa_ReplicaSourceInfo_source = -1;
+static gint hf_lsarpc_lsa_QuerySecurity_sec_info = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_name = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_info_ex2_internal = -1;
+static gint hf_lsarpc_lsa_LookupSids2_domains = -1;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_domains = -1;
+static gint hf_lsarpc_lsa_EnumAccounts_num_entries = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_posix_offset = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_type = -1;
+static gint hf_lsarpc_lsa_DnsDomainInfo_sid = -1;
+static gint hf_lsarpc_lsa_LookupNames_num_names = -1;
+static gint hf_lsarpc_lsa_ForestTrustDomainInfo_domain_sid = -1;
+static gint hf_lsarpc_lsa_LookupSids_handle = -1;
+static gint hf_lsarpc_lsa_AsciiString_string = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_info_ex = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_handle = -1;
+static gint hf_lsarpc_lsa_CreateAccount_handle = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_name = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length = -1;
+static gint hf_lsarpc_lsa_EnumAccountRights_rights = -1;
+static gint hf_lsarpc_lsa_SetSecObj_handle = -1;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_name = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION = -1;
+static gint hf_lsarpc_lsa_OpenPolicy2_access_mask = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_auth_info = -1;
+static gint hf_lsarpc_lsa_SetInfoPolicy2_handle = -1;
+static gint hf_lsarpc_lsa_LookupNames2_num_names = -1;
+static gint hf_lsarpc_lsa_SetInfoPolicy2_level = -1;
+static gint hf_lsarpc_lsa_EnumPrivsAccount_privs = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_controllers = -1;
+static gint hf_lsarpc_lsa_OpenAccount_access_mask = -1;
+static gint hf_lsarpc_lsa_EnumPrivs_privs = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN = -1;
+static gint hf_lsarpc_lsa_AuditLogInfo_percent_full = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_quota = -1;
+static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_privs = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_AuthType = -1;
+static gint hf_lsarpc_lsa_TranslatedName_sid_type = -1;
+static gint hf_lsarpc_lsa_LookupSids2_names = -1;
+static gint hf_lsarpc_lsa_EnumPrivsAccount_handle = -1;
+static gint hf_lsarpc_lsa_SidArray_sids = -1;
+static gint hf_lsarpc_lsa_RemoveAccountRights_sid = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_info = -1;
+static gint hf_lsarpc_lsa_String_length = -1;
+static gint hf_lsarpc_opnum = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_info = -1;
+static gint hf_lsarpc_lsa_PrivilegeSet_count = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_level = -1;
+static gint hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info = -1;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_language_id = -1;
+static gint hf_lsarpc_lsa_TransSidArray3_sids = -1;
+static gint hf_lsarpc_status = -1;
+static gint hf_lsarpc_lsa_LookupNames_count = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_info = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info = -1;
+static gint hf_lsarpc_lsa_LookupPrivValue_name = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS = -1;
+static gint hf_lsarpc_lsa_ForestTrustBinaryData_data = -1;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS = -1;
+static gint hf_lsarpc_lsa_TranslatedSid_sid_index = -1;
+static gint hf_lsarpc_lsa_AsciiStringLarge_length = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternal_auth_blob = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_TransNameArray2_names = -1;
+static gint hf_lsarpc_lsa_EnumTrustDom_handle = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionInfo_count = -1;
+static gint hf_lsarpc_lsa_CreateAccount_access_mask = -1;
+static gint hf_lsarpc_lsa_OpenPolicy2_attr = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_netbios_name = -1;
+static gint hf_lsarpc_lsa_OpenPolicy_system_name = -1;
+static gint hf_lsarpc_lsa_ForestTrustRecord_flags = -1;
+static gint hf_lsarpc_lsa_LookupSids2_sids = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_auth_info = -1;
+static gint hf_lsarpc_lsa_TranslatedName_sid_index = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_password = -1;
+static gint hf_lsarpc_lsa_ModificationInfo_db_create_time = -1;
+static gint hf_lsarpc_lsa_RetrievePrivateData_name = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_domain = -1;
+static gint hf_lsarpc_lsa_DATA_BUF2_size = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_handle = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS = -1;
+static gint hf_lsarpc_lsa_LookupNames4_domains = -1;
+static gint hf_lsarpc_lsa_TranslatedSid_sid_type = -1;
+static gint hf_lsarpc_lsa_LookupNames2_count = -1;
+static gint hf_lsarpc_lsa_LookupSids2_lookup_options = -1;
+static gint hf_lsarpc_lsa_ForestTrustDomainInfo_dns_domain_name = -1;
+static gint hf_lsarpc_lsa_AuditLogInfo_next_audit_record = -1;
+static gint hf_lsarpc_lsa_PrivArray_privs = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_posix_offset = -1;
+static gint hf_lsarpc_lsa_TransSidArray2_sids = -1;
+static gint hf_lsarpc_lsa_TransSidArray3_count = -1;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_handle = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_policy_handle = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_l_account_domain = -1;
+static gint hf_lsarpc_lsa_StorePrivateData_handle = -1;
+static gint hf_lsarpc_lsa_DomainList_count = -1;
+static gint hf_lsarpc_lsa_QuerySecret_sec_handle = -1;
+static gint hf_lsarpc_lsa_AuditFullQueryInfo_shutdown_on_full = -1;
+static gint hf_lsarpc_lsa_GetUserName_system_name = -1;
+static gint hf_lsarpc_lsa_SidArray_num_sids = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_LookupNames4_level = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_handle = -1;
+static gint hf_lsarpc_lsa_RightSet_names = -1;
+static gint hf_lsarpc_lsa_LookupNames_domains = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION = -1;
+static gint hf_lsarpc_lsa_LookupNames_sids = -1;
+static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_name = -1;
+static gint hf_lsarpc_lsa_LookupPrivName_name = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION = -1;
+static gint hf_lsarpc_lsa_LookupNames4_sids = -1;
+static gint hf_lsarpc_lsa_SetInformationTrustedDomain_level = -1;
+static gint hf_lsarpc_lsa_RefDomainList_domains = -1;
+static gint hf_lsarpc_lsa_SetDomainInformationPolicy_info = -1;
+static gint hf_lsarpc_lsa_SetDomainInformationPolicy_handle = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_replica = -1;
+static gint hf_lsarpc_lsa_TransSidArray_count = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfo_level = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfo_auth_info = -1;
+static gint hf_lsarpc_lsa_StorePrivateData_name = -1;
+static gint hf_lsarpc_lsa_EnumAccountRights_handle = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH = -1;
+static gint hf_lsarpc_lsa_AuditLogInfo_time_to_shutdown = -1;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_VIEW = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx_domain_name = -1;
+static gint hf_lsarpc_lsa_LookupSids2_count = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_info_basic = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoPosixOffset_posix_offset = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info2_internal = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_policy_handle = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST = -1;
+static gint hf_lsarpc_lsa_OpenSecret_name = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx2_info = -1;
+static gint hf_lsarpc_lsa_GetUserName_account_name = -1;
+static gint hf_lsarpc_lsa_LUIDAttribute_attribute = -1;
+static gint hf_lsarpc_lsa_OpenPolicy_access_mask = -1;
+static gint hf_lsarpc_lsa_DATA_BUF_PTR_buf = -1;
+static gint hf_lsarpc_lsa_LookupSids3_sids = -1;
+static gint hf_lsarpc_lsa_String_size = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_posix_offset = -1;
+static gint hf_lsarpc_lsa_LookupSids3_lookup_options = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_info_ex = -1;
+static gint hf_lsarpc_lsa_OpenAccount_sid = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_type = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_handle = -1;
+static gint hf_lsarpc_lsa_DnsDomainInfo_domain_guid = -1;
+static gint hf_lsarpc_lsa_ForestTrustRecord_time = -1;
+static gint hf_lsarpc_lsa_LUIDAttribute_luid = -1;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_lifetime = -1;
+static gint hf_lsarpc_lsa_AddAccountRights_rights = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoSupportedEncTypes_enc_types = -1;
+static gint hf_lsarpc_lsa_PrivilegeSet_unknown = -1;
+static gint hf_lsarpc_lsa_ObjectAttribute_root_dir = -1;
+static gint hf_lsarpc_lsa_LookupSids3_names = -1;
+static gint hf_lsarpc_lsa_CreateSecret_handle = -1;
+static gint hf_lsarpc_lsa_SetInformationTrustedDomain_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_StringLarge_length = -1;
+static gint hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_CONFLICT = -1;
+static gint hf_lsarpc_lsa_BinaryString_length = -1;
+static gint hf_lsarpc_lsa_LookupNames2_lookup_options = -1;
+static gint hf_lsarpc_lsa_LookupNames2_names = -1;
+static gint hf_lsarpc_lsa_OpenAccount_acct_handle = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionInfo_entries = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN = -1;
+static gint hf_lsarpc_lsa_QuerySecret_old_val = -1;
+static gint hf_lsarpc_lsa_DeleteTrustedDomain_handle = -1;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_handle = -1;
+static gint hf_lsarpc_lsa_LookupNames2_domains = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN = -1;
+static gint hf_lsarpc_lsa_LookupNames4_lookup_options = -1;
+static gint hf_lsarpc_lsa_EnumPrivs_resume_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoControllers_entries = -1;
+static gint hf_lsarpc_lsa_LookupNames2_handle = -1;
+static gint hf_lsarpc_lsa_LookupPrivDisplayName_language_id_sys = -1;
+static gint hf_lsarpc_lsa_SetTrustedDomainInfoByName_info = -1;
+static gint hf_lsarpc_lsa_AddPrivilegesToAccount_privs = -1;
+static gint hf_lsarpc_lsa_Close_handle = -1;
+static gint hf_lsarpc_lsa_TranslatedName2_name = -1;
+static gint hf_lsarpc_lsa_AddAccountRights_sid = -1;
+static gint hf_lsarpc_lsa_LookupPrivValue_luid = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES = -1;
+static gint hf_lsarpc_lsa_TranslatedName2_unknown = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_access_mask = -1;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_reserved = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS = -1;
+static gint hf_lsarpc_lsa_DomainList_domains = -1;
+static gint hf_lsarpc_lsa_CreateSecret_name = -1;
+static gint hf_lsarpc_lsa_AuditEventsInfo_auditing_mode = -1;
+static gint hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info = -1;
+static gint hf_lsarpc_lsa_EnumAccountsWithUserRight_sids = -1;
+static gint hf_lsarpc_lsa_SetInfoPolicy_info = -1;
+static gint hf_lsarpc_lsa_SidPtr_sid = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info = -1;
+static gint hf_lsarpc_lsa_DomainInfoKerberos_authentication_options = -1;
+static gint hf_lsarpc_lsa_LookupNames4_client_revision = -1;
+static gint hf_lsarpc_lsa_QuerySecurity_handle = -1;
+static gint hf_lsarpc_lsa_PDAccountInfo_name = -1;
+static gint hf_lsarpc_lsa_ForestTrustInformation_count = -1;
+static gint hf_lsarpc_lsa_TranslatedSid3_flags = -1;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_unknown = -1;
+static gint hf_lsarpc_lsa_LookupSids3_domains = -1;
+static gint hf_lsarpc_lsa_Strings_count = -1;
+static gint hf_lsarpc_lsa_QueryInfoPolicy2_handle = -1;
+static gint hf_lsarpc_lsa_QueryTrustedDomainInfo_trustdom_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoBuffer_data = -1;
+static gint hf_lsarpc_lsa_LookupNames3_lookup_options = -1;
+static gint hf_lsarpc_lsa_StringLarge_size = -1;
+static gint hf_lsarpc_lsa_ObjectAttribute_attributes = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal = -1;
+static gint hf_lsarpc_lsa_QosInfo_effective_only = -1;
+static gint hf_lsarpc_lsa_OpenPolicy_attr = -1;
+static gint hf_lsarpc_lsa_ObjectAttribute_len = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoBasic_sid = -1;
+static gint hf_lsarpc_lsa_PrivEntry_name = -1;
+static gint hf_lsarpc_lsa_ServerRole_role = -1;
+static gint hf_lsarpc_lsa_BinaryString_array = -1;
+static gint hf_lsarpc_lsa_TranslatedSid3_sid_type = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_CONFLICT = -1;
+static gint hf_lsarpc_lsa_LookupNames4_num_names = -1;
+static gint hf_lsarpc_lsa_GetSystemAccessAccount_handle = -1;
+static gint hf_lsarpc_lsa_EnumPrivs_max_count = -1;
+static gint hf_lsarpc_lsa_LookupNames2_level = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_info_ex = -1;
+static gint hf_lsarpc_lsa_DATA_BUF_length = -1;
+static gint hf_lsarpc_lsa_Strings_names = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_posix_offset = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_auditfullset = -1;
+static gint hf_lsarpc_lsa_OpenPolicy_handle = -1;
+static gint hf_lsarpc_lsa_ForestTrustData_data = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionRecord_flags = -1;
+static gint hf_lsarpc_lsa_LookupSids_count = -1;
+static gint hf_lsarpc_lsa_DnsDomainInfo_dns_domain = -1;
+static gint hf_lsarpc_lsa_QueryInfoPolicy_level = -1;
+static gint hf_lsarpc_lsa_TranslatedName_name = -1;
+static gint hf_lsarpc_lsa_LookupSids_domains = -1;
+static gint hf_lsarpc_lsa_TranslatedSid_rid = -1;
+static gint hf_lsarpc_lsa_DomainInfoEfs_efs_blob = -1;
+static gint hf_lsarpc_lsa_RemovePrivilegesFromAccount_remove_all = -1;
+static gint hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE = -1;
+static gint hf_lsarpc_lsa_AddAccountRights_handle = -1;
+static gint hf_lsarpc_lsa_DomainInfoEfs_blob_size = -1;
+static gint hf_lsarpc_lsa_OpenPolicy2_system_name = -1;
+static gint hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomain_policy_handle = -1;
+static gint hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_auth_info = -1;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_max_wss = -1;
+static gint hf_lsarpc_lsa_DefaultQuotaInfo_paged_pool = -1;
+static gint hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY = -1;
+static gint hf_lsarpc_lsa_LookupSids_level = -1;
+static gint hf_lsarpc_lsa_AuditFullQueryInfo_log_is_full = -1;
+static gint hf_lsarpc_lsa_RightSet_count = -1;
+static gint hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_ADMIN = -1;
+static gint hf_lsarpc_lsa_AuditEventsInfo_settings = -1;
+static gint hf_lsarpc_lsa_TranslatedSid2_rid = -1;
+static gint hf_lsarpc_lsa_TranslatedSid2_sid_type = -1;
+static gint hf_lsarpc_lsa_OpenTrustedDomainByName_handle = -1;
+static gint hf_lsarpc_lsa_EnumTrustedDomainsEx_handle = -1;
+static gint hf_lsarpc_lsa_AsciiString_length = -1;
+static gint hf_lsarpc_lsa_EnumAccountRights_sid = -1;
+static gint hf_lsarpc_lsa_LookupSids_sids = -1;
+static gint hf_lsarpc_lsa_CloseTrustedDomainEx_handle = -1;
+static gint hf_lsarpc_lsa_QosInfo_context_mode = -1;
+static gint hf_lsarpc_lsa_BinaryString_size = -1;
+static gint hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION = -1;
+static gint hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_SET_VALUE = -1;
+static gint hf_lsarpc_lsa_EnumTrustDom_domains = -1;
+static gint hf_lsarpc_lsa_TransNameArray_count = -1;
+static gint hf_lsarpc_lsa_RetrievePrivateData_val = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_pd = -1;
+static gint hf_lsarpc_lsa_TranslatedName2_sid_index = -1;
+static gint hf_lsarpc_lsa_PolicyInformation_auditfullquery = -1;
+static gint hf_lsarpc_lsa_ModificationInfo_modified_id = -1;
+static gint hf_lsarpc_lsa_QuerySecret_new_mtime = -1;
+static gint hf_lsarpc_lsa_LookupPrivValue_handle = -1;
+static gint hf_lsarpc_lsa_TransSidArray2_count = -1;
+static gint hf_lsarpc_lsa_AuditEventsInfo_count = -1;
+static gint hf_lsarpc_lsa_SetInfoPolicy_level = -1;
+static gint hf_lsarpc_lsa_TrustedDomainInfo_full_info = -1;
+static gint hf_lsarpc_lsa_CreateTrustedDomainEx_access_mask = -1;
+static gint hf_lsarpc_lsa_LookupSids3_count = -1;
+static gint hf_lsarpc_lsa_SetInfoPolicy_handle = -1;
+static gint hf_lsarpc_lsa_TranslatedSid3_sid_index = -1;
+
+static gint proto_dcerpc_lsarpc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_lsarpc = {
+       0x12345778, 0x1234, 0xabcd,
+       { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab }
+};
+static guint16 ver_dcerpc_lsarpc = 0;
+
+static int lsarpc_dissect_element_lsa_String_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_String_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_String_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_String_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_String_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StringLarge_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StringLarge_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StringLarge_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StringLarge_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Strings_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Strings_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Strings_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Strings_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiStringLarge_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiStringLarge_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiStringLarge_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiStringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AsciiStringLarge_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_BinaryString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_BinaryString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_BinaryString_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_BinaryString_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_BinaryString_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LUID_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LUID_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivEntry_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivArray_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivArray_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivArray_privs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QosInfo_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QosInfo_impersonation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QosInfo_context_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QosInfo_effective_only(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_root_dir(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_root_dir_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_object_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_object_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_sec_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_sec_desc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_sec_qos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ObjectAttribute_sec_qos_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION_tfs = {
+   "LSA_POLICY_VIEW_LOCAL_INFORMATION is SET",
+   "LSA_POLICY_VIEW_LOCAL_INFORMATION is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION_tfs = {
+   "LSA_POLICY_VIEW_AUDIT_INFORMATION is SET",
+   "LSA_POLICY_VIEW_AUDIT_INFORMATION is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION_tfs = {
+   "LSA_POLICY_GET_PRIVATE_INFORMATION is SET",
+   "LSA_POLICY_GET_PRIVATE_INFORMATION is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN_tfs = {
+   "LSA_POLICY_TRUST_ADMIN is SET",
+   "LSA_POLICY_TRUST_ADMIN is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT_tfs = {
+   "LSA_POLICY_CREATE_ACCOUNT is SET",
+   "LSA_POLICY_CREATE_ACCOUNT is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET_tfs = {
+   "LSA_POLICY_CREATE_SECRET is SET",
+   "LSA_POLICY_CREATE_SECRET is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE_tfs = {
+   "LSA_POLICY_CREATE_PRIVILEGE is SET",
+   "LSA_POLICY_CREATE_PRIVILEGE is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS_tfs = {
+   "LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS is SET",
+   "LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS_tfs = {
+   "LSA_POLICY_SET_AUDIT_REQUIREMENTS is SET",
+   "LSA_POLICY_SET_AUDIT_REQUIREMENTS is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN_tfs = {
+   "LSA_POLICY_AUDIT_LOG_ADMIN is SET",
+   "LSA_POLICY_AUDIT_LOG_ADMIN is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN_tfs = {
+   "LSA_POLICY_SERVER_ADMIN is SET",
+   "LSA_POLICY_SERVER_ADMIN is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES_tfs = {
+   "LSA_POLICY_LOOKUP_NAMES is SET",
+   "LSA_POLICY_LOOKUP_NAMES is NOT SET",
+};
+static const true_false_string lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION_tfs = {
+   "LSA_POLICY_NOTIFICATION is SET",
+   "LSA_POLICY_NOTIFICATION is NOT SET",
+};
+static const true_false_string lsa_AccountAccessMask_LSA_ACCOUNT_VIEW_tfs = {
+   "LSA_ACCOUNT_VIEW is SET",
+   "LSA_ACCOUNT_VIEW is NOT SET",
+};
+static const true_false_string lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES_tfs = {
+   "LSA_ACCOUNT_ADJUST_PRIVILEGES is SET",
+   "LSA_ACCOUNT_ADJUST_PRIVILEGES is NOT SET",
+};
+static const true_false_string lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS_tfs = {
+   "LSA_ACCOUNT_ADJUST_QUOTAS is SET",
+   "LSA_ACCOUNT_ADJUST_QUOTAS is NOT SET",
+};
+static const true_false_string lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS_tfs = {
+   "LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS is SET",
+   "LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS is NOT SET",
+};
+static const true_false_string lsa_SecretAccessMask_LSA_SECRET_SET_VALUE_tfs = {
+   "LSA_SECRET_SET_VALUE is SET",
+   "LSA_SECRET_SET_VALUE is NOT SET",
+};
+static const true_false_string lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE_tfs = {
+   "LSA_SECRET_QUERY_VALUE is SET",
+   "LSA_SECRET_QUERY_VALUE is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME_tfs = {
+   "LSA_TRUSTED_QUERY_DOMAIN_NAME is SET",
+   "LSA_TRUSTED_QUERY_DOMAIN_NAME is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS_tfs = {
+   "LSA_TRUSTED_QUERY_CONTROLLERS is SET",
+   "LSA_TRUSTED_QUERY_CONTROLLERS is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS_tfs = {
+   "LSA_TRUSTED_SET_CONTROLLERS is SET",
+   "LSA_TRUSTED_SET_CONTROLLERS is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX_tfs = {
+   "LSA_TRUSTED_QUERY_POSIX is SET",
+   "LSA_TRUSTED_QUERY_POSIX is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX_tfs = {
+   "LSA_TRUSTED_SET_POSIX is SET",
+   "LSA_TRUSTED_SET_POSIX is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH_tfs = {
+   "LSA_TRUSTED_SET_AUTH is SET",
+   "LSA_TRUSTED_SET_AUTH is NOT SET",
+};
+static const true_false_string lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH_tfs = {
+   "LSA_TRUSTED_QUERY_AUTH is SET",
+   "LSA_TRUSTED_QUERY_AUTH is NOT SET",
+};
+static int lsarpc_dissect_element_lsa_AuditLogInfo_percent_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditLogInfo_maximum_log_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditLogInfo_retention_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditLogInfo_shutdown_in_progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditLogInfo_time_to_shutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditLogInfo_next_audit_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_PolicyAuditPolicy_vals[] = {
+       { LSA_AUDIT_POLICY_NONE, "LSA_AUDIT_POLICY_NONE" },
+       { LSA_AUDIT_POLICY_SUCCESS, "LSA_AUDIT_POLICY_SUCCESS" },
+       { LSA_AUDIT_POLICY_FAILURE, "LSA_AUDIT_POLICY_FAILURE" },
+       { LSA_AUDIT_POLICY_ALL, "LSA_AUDIT_POLICY_ALL" },
+       { LSA_AUDIT_POLICY_CLEAR, "LSA_AUDIT_POLICY_CLEAR" },
+{ 0, NULL }
+};
+const value_string lsarpc_lsa_PolicyAuditEventType_vals[] = {
+       { LSA_AUDIT_CATEGORY_SYSTEM, "LSA_AUDIT_CATEGORY_SYSTEM" },
+       { LSA_AUDIT_CATEGORY_LOGON, "LSA_AUDIT_CATEGORY_LOGON" },
+       { LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS, "LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS" },
+       { LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS, "LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS" },
+       { LSA_AUDIT_CATEGORY_PROCCESS_TRACKING, "LSA_AUDIT_CATEGORY_PROCCESS_TRACKING" },
+       { LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES, "LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES" },
+       { LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT, "LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT" },
+       { LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS, "LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS" },
+       { LSA_AUDIT_CATEGORY_ACCOUNT_LOGON, "LSA_AUDIT_CATEGORY_ACCOUNT_LOGON" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_AuditEventsInfo_auditing_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditEventsInfo_settings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditEventsInfo_settings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditEventsInfo_settings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditEventsInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfo_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfo_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PDAccountInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_Role_vals[] = {
+       { LSA_ROLE_BACKUP, "LSA_ROLE_BACKUP" },
+       { LSA_ROLE_PRIMARY, "LSA_ROLE_PRIMARY" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_ServerRole_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ReplicaSourceInfo_source(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ReplicaSourceInfo_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DefaultQuotaInfo_paged_pool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DefaultQuotaInfo_non_paged_pool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DefaultQuotaInfo_min_wss(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DefaultQuotaInfo_max_wss(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DefaultQuotaInfo_pagefile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DefaultQuotaInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ModificationInfo_modified_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ModificationInfo_db_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditFullSetInfo_shutdown_on_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditFullQueryInfo_shutdown_on_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AuditFullQueryInfo_log_is_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DnsDomainInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DnsDomainInfo_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DnsDomainInfo_dns_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DnsDomainInfo_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DnsDomainInfo_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DnsDomainInfo_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_PolicyInfo_vals[] = {
+       { LSA_POLICY_INFO_AUDIT_LOG, "LSA_POLICY_INFO_AUDIT_LOG" },
+       { LSA_POLICY_INFO_AUDIT_EVENTS, "LSA_POLICY_INFO_AUDIT_EVENTS" },
+       { LSA_POLICY_INFO_DOMAIN, "LSA_POLICY_INFO_DOMAIN" },
+       { LSA_POLICY_INFO_PD, "LSA_POLICY_INFO_PD" },
+       { LSA_POLICY_INFO_ACCOUNT_DOMAIN, "LSA_POLICY_INFO_ACCOUNT_DOMAIN" },
+       { LSA_POLICY_INFO_ROLE, "LSA_POLICY_INFO_ROLE" },
+       { LSA_POLICY_INFO_REPLICA, "LSA_POLICY_INFO_REPLICA" },
+       { LSA_POLICY_INFO_QUOTA, "LSA_POLICY_INFO_QUOTA" },
+       { LSA_POLICY_INFO_MOD, "LSA_POLICY_INFO_MOD" },
+       { LSA_POLICY_INFO_AUDIT_FULL_SET, "LSA_POLICY_INFO_AUDIT_FULL_SET" },
+       { LSA_POLICY_INFO_AUDIT_FULL_QUERY, "LSA_POLICY_INFO_AUDIT_FULL_QUERY" },
+       { LSA_POLICY_INFO_DNS, "LSA_POLICY_INFO_DNS" },
+       { LSA_POLICY_INFO_DNS_INT, "LSA_POLICY_INFO_DNS_INT" },
+       { LSA_POLICY_INFO_L_ACCOUNT_DOMAIN, "LSA_POLICY_INFO_L_ACCOUNT_DOMAIN" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_PolicyInformation_audit_log(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_audit_events(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_pd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_account_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_replica(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_quota(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_mod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_auditfullset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_auditfullquery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PolicyInformation_l_account_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SidPtr_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SidPtr_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SidArray_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SidArray_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SidArray_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SidArray_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainList_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainList_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainList_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_SidType_vals[] = {
+       { SID_NAME_USE_NONE, "SID_NAME_USE_NONE" },
+       { SID_NAME_USER, "SID_NAME_USER" },
+       { SID_NAME_DOM_GRP, "SID_NAME_DOM_GRP" },
+       { SID_NAME_DOMAIN, "SID_NAME_DOMAIN" },
+       { SID_NAME_ALIAS, "SID_NAME_ALIAS" },
+       { SID_NAME_WKN_GRP, "SID_NAME_WKN_GRP" },
+       { SID_NAME_DELETED, "SID_NAME_DELETED" },
+       { SID_NAME_INVALID, "SID_NAME_INVALID" },
+       { SID_NAME_UNKNOWN, "SID_NAME_UNKNOWN" },
+       { SID_NAME_COMPUTER, "SID_NAME_COMPUTER" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_TranslatedSid_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RefDomainList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RefDomainList_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RefDomainList_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RefDomainList_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RefDomainList_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_LookupNamesLevel_vals[] = {
+       { LSA_LOOKUP_NAMES_ALL, "LSA_LOOKUP_NAMES_ALL" },
+       { LSA_LOOKUP_NAMES_DOMAINS_ONLY, "LSA_LOOKUP_NAMES_DOMAINS_ONLY" },
+       { LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY, "LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY" },
+       { LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY, "LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY" },
+       { LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY, "LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY" },
+       { LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2, "LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2" },
+       { LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC, "LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_TranslatedName_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedName_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LUIDAttribute_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LUIDAttribute_attribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivilegeSet_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivilegeSet_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_PrivilegeSet_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_TrustDomInfoEnum_vals[] = {
+       { LSA_TRUSTED_DOMAIN_INFO_NAME, "LSA_TRUSTED_DOMAIN_INFO_NAME" },
+       { LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS, "LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS" },
+       { LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET, "LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET" },
+       { LSA_TRUSTED_DOMAIN_INFO_PASSWORD, "LSA_TRUSTED_DOMAIN_INFO_PASSWORD" },
+       { LSA_TRUSTED_DOMAIN_INFO_BASIC, "LSA_TRUSTED_DOMAIN_INFO_BASIC" },
+       { LSA_TRUSTED_DOMAIN_INFO_INFO_EX, "LSA_TRUSTED_DOMAIN_INFO_INFO_EX" },
+       { LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO, "LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO" },
+       { LSA_TRUSTED_DOMAIN_INFO_FULL_INFO, "LSA_TRUSTED_DOMAIN_INFO_FULL_INFO" },
+       { LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL, "LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL" },
+       { LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL, "LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL" },
+       { LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL, "LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL" },
+       { LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL, "LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL" },
+       { LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES, "LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES" },
+{ 0, NULL }
+};
+static const true_false_string lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND_tfs = {
+   "LSA_TRUST_DIRECTION_INBOUND is SET",
+   "LSA_TRUST_DIRECTION_INBOUND is NOT SET",
+};
+static const true_false_string lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND_tfs = {
+   "LSA_TRUST_DIRECTION_OUTBOUND is SET",
+   "LSA_TRUST_DIRECTION_OUTBOUND is NOT SET",
+};
+const value_string lsarpc_lsa_TrustType_vals[] = {
+       { LSA_TRUST_TYPE_DOWNLEVEL, "LSA_TRUST_TYPE_DOWNLEVEL" },
+       { LSA_TRUST_TYPE_UPLEVEL, "LSA_TRUST_TYPE_UPLEVEL" },
+       { LSA_TRUST_TYPE_MIT, "LSA_TRUST_TYPE_MIT" },
+{ 0, NULL }
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE_tfs = {
+   "LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE is SET",
+   "LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY_tfs = {
+   "LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY is SET",
+   "LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN_tfs = {
+   "LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN is SET",
+   "LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE_tfs = {
+   "LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE is SET",
+   "LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_tfs = {
+   "LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION is SET",
+   "LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST_tfs = {
+   "LSA_TRUST_ATTRIBUTE_WITHIN_FOREST is SET",
+   "LSA_TRUST_ATTRIBUTE_WITHIN_FOREST is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL_tfs = {
+   "LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL is SET",
+   "LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL is NOT SET",
+};
+static const true_false_string lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION_tfs = {
+   "LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION is SET",
+   "LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION is NOT SET",
+};
+static int lsarpc_dissect_element_lsa_TrustDomainInfoName_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoControllers_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoPosixOffset_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoPassword_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoPassword_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoPassword_old_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoPassword_old_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoBasic_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoBasic_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoBasic_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_direction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_TrustAuthType_vals[] = {
+       { TRUST_AUTH_TYPE_NONE, "TRUST_AUTH_TYPE_NONE" },
+       { TRUST_AUTH_TYPE_NT4OWF, "TRUST_AUTH_TYPE_NT4OWF" },
+       { TRUST_AUTH_TYPE_CLEAR, "TRUST_AUTH_TYPE_CLEAR" },
+       { TRUST_AUTH_TYPE_VERSION, "TRUST_AUTH_TYPE_VERSION" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_last_update_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_AuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfoInternal_auth_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustDomainInfoSupportedEncTypes_enc_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_controllers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_info_basic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_auth_info_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_info_ex2_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info2_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TrustedDomainInfo_enc_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_PTR_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DATA_BUF_PTR_buf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RightAttribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RightAttribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RightSet_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RightSet_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RightSet_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RightSet_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainListEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainListEx_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainListEx_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainListEx_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT_tfs = {
+   "LSA_POLICY_KERBEROS_VALIDATE_CLIENT is SET",
+   "LSA_POLICY_KERBEROS_VALIDATE_CLIENT is NOT SET",
+};
+static int lsarpc_dissect_element_lsa_DomainInfoKerberos_authentication_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoKerberos_service_tkt_lifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoKerberos_user_tkt_lifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoKerberos_user_tkt_renewaltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoKerberos_clock_skew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoKerberos_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoEfs_blob_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_DomainInfoEnum_vals[] = {
+       { LSA_DOMAIN_INFO_POLICY_EFS, "LSA_DOMAIN_INFO_POLICY_EFS" },
+       { LSA_DOMAIN_INFO_POLICY_KERBEROS, "LSA_DOMAIN_INFO_POLICY_KERBEROS" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_DomainInformationPolicy_efs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DomainInformationPolicy_kerberos_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedName2_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedName2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedName2_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedName2_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray2_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransNameArray2_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_LookupOptions_vals[] = {
+       { LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES, "LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES" },
+       { LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL, "LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL" },
+{ 0, NULL }
+};
+const value_string lsarpc_lsa_ClientRevision_vals[] = {
+       { LSA_CLIENT_REVISION_1, "LSA_CLIENT_REVISION_1" },
+       { LSA_CLIENT_REVISION_2, "LSA_CLIENT_REVISION_2" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_TranslatedSid2_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid2_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid2_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray2_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray2_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid3_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid3_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid3_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TranslatedSid3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_TransSidArray3_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustDomainInfo_netbios_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustData_top_level_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustData_top_level_name_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustData_domain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_ForestTrustRecordType_vals[] = {
+       { LSA_FOREST_TRUST_TOP_LEVEL_NAME, "LSA_FOREST_TRUST_TOP_LEVEL_NAME" },
+       { LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX, "LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX" },
+       { LSA_FOREST_TRUST_DOMAIN_INFO, "LSA_FOREST_TRUST_DOMAIN_INFO" },
+       { LSA_FOREST_TRUST_RECORD_TYPE_LAST, "LSA_FOREST_TRUST_RECORD_TYPE_LAST" },
+{ 0, NULL }
+};
+static int lsarpc_dissect_element_lsa_ForestTrustRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustRecord_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int lsarpc_dissect_element_lsa_ForestTrustRecord_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int lsarpc_dissect_element_lsa_ForestTrustInformation_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustInformation_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustInformation_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustInformation_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustInformation_entries___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string lsarpc_lsa_ForestTrustCollisionRecordType_vals[] = {
+       { LSA_FOREST_TRUST_COLLISION_TDO, "LSA_FOREST_TRUST_COLLISION_TDO" },
+       { LSA_FOREST_TRUST_COLLISION_XREF, "LSA_FOREST_TRUST_COLLISION_XREF" },
+       { LSA_FOREST_TRUST_COLLISION_OTHER, "LSA_FOREST_TRUST_COLLISION_OTHER" },
+{ 0, NULL }
+};
+static const true_false_string lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_NEW_tfs = {
+   "LSA_TLN_DISABLED_NEW is SET",
+   "LSA_TLN_DISABLED_NEW is NOT SET",
+};
+static const true_false_string lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_ADMIN_tfs = {
+   "LSA_TLN_DISABLED_ADMIN is SET",
+   "LSA_TLN_DISABLED_ADMIN is NOT SET",
+};
+static const true_false_string lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_CONFLICT_tfs = {
+   "LSA_TLN_DISABLED_CONFLICT is SET",
+   "LSA_TLN_DISABLED_CONFLICT is NOT SET",
+};
+static const true_false_string lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_ADMIN_tfs = {
+   "LSA_SID_DISABLED_ADMIN is SET",
+   "LSA_SID_DISABLED_ADMIN is NOT SET",
+};
+static const true_false_string lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_CONFLICT_tfs = {
+   "LSA_SID_DISABLED_CONFLICT is SET",
+   "LSA_SID_DISABLED_CONFLICT is NOT SET",
+};
+static const true_false_string lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_ADMIN_tfs = {
+   "LSA_NB_DISABLED_ADMIN is SET",
+   "LSA_NB_DISABLED_ADMIN is NOT SET",
+};
+static const true_false_string lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT_tfs = {
+   "LSA_NB_DISABLED_CONFLICT is SET",
+   "LSA_NB_DISABLED_CONFLICT is NOT SET",
+};
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Delete_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_Delete_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivs_max_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecObj_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecObj_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecObj_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecObj_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecObj_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_attr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_attr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_acct_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateAccount_acct_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccounts_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_policy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomain_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustDom_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateSecret_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateSecret_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateSecret_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateSecret_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateSecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateSecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_acct_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenAccount_acct_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivsAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivsAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivsAccount_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivsAccount_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumPrivsAccount_privs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddPrivilegesToAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddPrivilegesToAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddPrivilegesToAccount_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddPrivilegesToAccount_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_remove_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetSystemAccessAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetSystemAccessAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetSystemAccessAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetSystemAccessAccount_access_mask_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSystemAccessAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSystemAccessAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSystemAccessAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomain_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInformationTrustedDomain_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInformationTrustedDomain_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInformationTrustedDomain_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInformationTrustedDomain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInformationTrustedDomain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenSecret_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenSecret_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenSecret_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenSecret_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenSecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenSecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecret_new_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecret_new_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecret_old_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetSecret_old_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_new_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_new_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_new_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_new_mtime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_old_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_old_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_old_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QuerySecret_old_mtime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivValue_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivValue_luid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_luid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivName_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_language_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_language_id_sys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_returned_language_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupPrivDisplayName_returned_language_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DeleteObject_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DeleteObject_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountRights_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountRights_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountRights_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountRights_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountRights_rights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumAccountRights_rights_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddAccountRights_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddAccountRights_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddAccountRights_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddAccountRights_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddAccountRights_rights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_AddAccountRights_rights_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_remove_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_rights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RemoveAccountRights_rights_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DeleteTrustedDomain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DeleteTrustedDomain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DeleteTrustedDomain_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_DeleteTrustedDomain_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StorePrivateData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StorePrivateData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StorePrivateData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StorePrivateData_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StorePrivateData_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_StorePrivateData_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_RetrievePrivateData_val__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_attr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_attr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenPolicy2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_account_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_authority_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_authority_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_GetUserName_authority_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryInfoPolicy2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetInfoPolicy2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_trusted_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_trusted_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_trusted_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_trusted_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_policy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetDomainInformationPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetDomainInformationPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetDomainInformationPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetDomainInformationPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_SetDomainInformationPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomainByName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomainByName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomainByName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomainByName_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomainByName_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_OpenTrustedDomainByName_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids2_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames2_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_policy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_auth_info_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_auth_info_internal_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames3_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_highest_record_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_check_only(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupSids3_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int lsarpc_dissect_element_lsa_LookupNames4_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_security_secinfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_kerb_EncTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_kerb_EncTypes);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2*strlen_m(string))] uint16 length; */
+/* IDL:        [value(2*strlen_m(string))] uint16 size; */
+/* IDL:        [unique(1)] [charset(UTF16)] [length_is(length/2)] [size_is(size/2)] uint16 *string; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_String_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_String_length, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_String_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_String_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_String_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_String_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_lsarpc_lsa_String_string);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_String_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_String_string__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_String_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_String_string, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_String);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_String_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_String_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_String_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2*strlen_m(string))] uint16 length; */
+/* IDL:        [value(2*strlen_m_term(string))] uint16 size; */
+/* IDL:        [unique(1)] [charset(UTF16)] [length_is(length/2)] [size_is(size/2)] uint16 *string; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_StringLarge_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_StringLarge_length, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StringLarge_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_StringLarge_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StringLarge_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_StringLarge_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_lsarpc_lsa_StringLarge_string);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_StringLarge_string__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StringLarge_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_StringLarge_string, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_StringLarge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_StringLarge);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_StringLarge_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_StringLarge_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_StringLarge_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_String *names; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_Strings_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_Strings_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Strings_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_Strings_names_, NDR_POINTER_UNIQUE, "Pointer to Names (lsa_String)",hf_lsarpc_lsa_Strings_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Strings_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_Strings_names__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Strings_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_Strings_names,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_Strings);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_Strings_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_Strings_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen_m(string))] uint16 length; */
+/* IDL:        [value(strlen_m(string))] uint16 size; */
+/* IDL:        [unique(1)] [charset(DOS)] [length_is(length)] [size_is(size)] uint8 *string; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_AsciiString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiString_length, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiString_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_lsarpc_lsa_AsciiString_string);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiString_string__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiString_string, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_AsciiString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AsciiString);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_AsciiString_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AsciiString_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AsciiString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen_m(string))] uint16 length; */
+/* IDL:        [value(strlen_m_term(string))] uint16 size; */
+/* IDL:        [unique(1)] [charset(DOS)] [length_is(length)] [size_is(size)] uint8 *string; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_AsciiStringLarge_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiStringLarge_length, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiStringLarge_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiStringLarge_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiStringLarge_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiStringLarge_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint8)",hf_lsarpc_lsa_AsciiStringLarge_string);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiStringLarge_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AsciiStringLarge_string__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AsciiStringLarge_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AsciiStringLarge_string, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_AsciiStringLarge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AsciiStringLarge);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_AsciiStringLarge_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AsciiStringLarge_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AsciiStringLarge_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        uint16 size; */
+/* IDL:        [unique(1)] [length_is(length/2)] [size_is(size/2)] uint16 *array; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_BinaryString_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_BinaryString_length, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_BinaryString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_BinaryString_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_BinaryString_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_BinaryString_array_, NDR_POINTER_UNIQUE, "Pointer to Array (uint16)",hf_lsarpc_lsa_BinaryString_array);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_BinaryString_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_BinaryString_array__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_BinaryString_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_BinaryString_array, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_BinaryString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_BinaryString);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_BinaryString_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_BinaryString_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_BinaryString_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 low; */
+/* IDL:        uint32 high; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_LUID_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LUID_low, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LUID_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LUID_high, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_LUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_LUID);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_LUID_low(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_LUID_high(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_StringLarge name; */
+/* IDL:        lsa_LUID luid; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_PrivEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PrivEntry_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivEntry_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_LUID(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PrivEntry_luid,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_PrivEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PrivEntry);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_PrivEntry_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_PrivEntry_luid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_PrivEntry *privs; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_PrivArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_PrivArray_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivArray_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_PrivArray_privs_, NDR_POINTER_UNIQUE, "Pointer to Privs (lsa_PrivEntry)",hf_lsarpc_lsa_PrivArray_privs);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivArray_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_PrivArray_privs__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivArray_privs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_PrivEntry(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PrivArray_privs,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_PrivArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PrivArray);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_PrivArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_PrivArray_privs(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint3264 len; */
+/* IDL:        uint16 impersonation_level; */
+/* IDL:        uint8 context_mode; */
+/* IDL:        uint8 effective_only; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_QosInfo_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QosInfo_len, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QosInfo_impersonation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QosInfo_impersonation_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QosInfo_context_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QosInfo_context_mode, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QosInfo_effective_only(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QosInfo_effective_only, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_QosInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_QosInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_QosInfo_len(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_QosInfo_impersonation_level(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_QosInfo_context_mode(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_QosInfo_effective_only(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint3264 len; */
+/* IDL:        [unique(1)] uint8 *root_dir; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *object_name; */
+/* IDL:        uint32 attributes; */
+/* IDL:        [unique(1)] security_descriptor *sec_desc; */
+/* IDL:        [unique(1)] lsa_QosInfo *sec_qos; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ObjectAttribute_len, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_root_dir(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ObjectAttribute_root_dir_, NDR_POINTER_UNIQUE, "Pointer to Root Dir (uint8)",hf_lsarpc_lsa_ObjectAttribute_root_dir);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_root_dir_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ObjectAttribute_root_dir, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_object_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ObjectAttribute_object_name_, NDR_POINTER_UNIQUE, "Pointer to Object Name (uint16)",hf_lsarpc_lsa_ObjectAttribute_object_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_object_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_lsarpc_lsa_ObjectAttribute_object_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ObjectAttribute_attributes, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_sec_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ObjectAttribute_sec_desc_, NDR_POINTER_UNIQUE, "Pointer to Sec Desc (security_descriptor)",hf_lsarpc_lsa_ObjectAttribute_sec_desc);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_sec_desc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_security_descriptor(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ObjectAttribute_sec_desc,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_sec_qos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ObjectAttribute_sec_qos_, NDR_POINTER_UNIQUE, "Pointer to Sec Qos (lsa_QosInfo)",hf_lsarpc_lsa_ObjectAttribute_sec_qos);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ObjectAttribute_sec_qos_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_QosInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ObjectAttribute_sec_qos,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ObjectAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ObjectAttribute);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ObjectAttribute_len(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ObjectAttribute_root_dir(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ObjectAttribute_object_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ObjectAttribute_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ObjectAttribute_sec_desc(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ObjectAttribute_sec_qos(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_POLICY_VIEW_LOCAL_INFORMATION =  0x00000001 , */
+/* IDL:        LSA_POLICY_VIEW_AUDIT_INFORMATION =  0x00000002 , */
+/* IDL:        LSA_POLICY_GET_PRIVATE_INFORMATION =  0x00000004 , */
+/* IDL:        LSA_POLICY_TRUST_ADMIN =  0x00000008 , */
+/* IDL:        LSA_POLICY_CREATE_ACCOUNT =  0x00000010 , */
+/* IDL:        LSA_POLICY_CREATE_SECRET =  0x00000020 , */
+/* IDL:        LSA_POLICY_CREATE_PRIVILEGE =  0x00000040 , */
+/* IDL:        LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS =  0x00000080 , */
+/* IDL:        LSA_POLICY_SET_AUDIT_REQUIREMENTS =  0x00000100 , */
+/* IDL:        LSA_POLICY_AUDIT_LOG_ADMIN =  0x00000200 , */
+/* IDL:        LSA_POLICY_SERVER_ADMIN =  0x00000400 , */
+/* IDL:        LSA_POLICY_LOOKUP_NAMES =  0x00000800 , */
+/* IDL:        LSA_POLICY_NOTIFICATION =  0x00001000 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_PolicyAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_PolicyAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_POLICY_VIEW_LOCAL_INFORMATION");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_POLICY_VIEW_AUDIT_INFORMATION");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "LSA_POLICY_GET_PRIVATE_INFORMATION");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "LSA_POLICY_TRUST_ADMIN");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "LSA_POLICY_CREATE_ACCOUNT");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "LSA_POLICY_CREATE_SECRET");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "LSA_POLICY_CREATE_PRIVILEGE");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "LSA_POLICY_SET_AUDIT_REQUIREMENTS");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "LSA_POLICY_AUDIT_LOG_ADMIN");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "LSA_POLICY_SERVER_ADMIN");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "LSA_POLICY_LOOKUP_NAMES");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "LSA_POLICY_NOTIFICATION");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_ACCOUNT_VIEW =  0x00000001 , */
+/* IDL:        LSA_ACCOUNT_ADJUST_PRIVILEGES =  0x00000002 , */
+/* IDL:        LSA_ACCOUNT_ADJUST_QUOTAS =  0x00000004 , */
+/* IDL:        LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS =  0x00000008 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_AccountAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_AccountAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_VIEW, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_ACCOUNT_VIEW");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_ACCOUNT_ADJUST_PRIVILEGES");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "LSA_ACCOUNT_ADJUST_QUOTAS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_SECRET_SET_VALUE =  0x00000001 , */
+/* IDL:        LSA_SECRET_QUERY_VALUE =  0x00000002 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_SecretAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_SecretAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_SET_VALUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_SECRET_SET_VALUE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_SECRET_QUERY_VALUE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_TRUSTED_QUERY_DOMAIN_NAME =  0x00000001 , */
+/* IDL:        LSA_TRUSTED_QUERY_CONTROLLERS =  0x00000002 , */
+/* IDL:        LSA_TRUSTED_SET_CONTROLLERS =  0x00000004 , */
+/* IDL:        LSA_TRUSTED_QUERY_POSIX =  0x00000008 , */
+/* IDL:        LSA_TRUSTED_SET_POSIX =  0x00000010 , */
+/* IDL:        LSA_TRUSTED_SET_AUTH =  0x00000020 , */
+/* IDL:        LSA_TRUSTED_QUERY_AUTH =  0x00000040 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_TrustedAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_TRUSTED_QUERY_DOMAIN_NAME");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_TRUSTED_QUERY_CONTROLLERS");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "LSA_TRUSTED_SET_CONTROLLERS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "LSA_TRUSTED_QUERY_POSIX");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "LSA_TRUSTED_SET_POSIX");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "LSA_TRUSTED_SET_AUTH");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "LSA_TRUSTED_QUERY_AUTH");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 percent_full; */
+/* IDL:        uint32 maximum_log_size; */
+/* IDL:        hyper retention_time; */
+/* IDL:        uint8 shutdown_in_progress; */
+/* IDL:        hyper time_to_shutdown; */
+/* IDL:        uint32 next_audit_record; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_AuditLogInfo_percent_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditLogInfo_percent_full, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditLogInfo_maximum_log_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditLogInfo_maximum_log_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditLogInfo_retention_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditLogInfo_retention_time, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditLogInfo_shutdown_in_progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditLogInfo_shutdown_in_progress, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditLogInfo_time_to_shutdown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditLogInfo_time_to_shutdown, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditLogInfo_next_audit_record(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditLogInfo_next_audit_record, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_AuditLogInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditLogInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_AuditLogInfo_percent_full(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditLogInfo_maximum_log_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditLogInfo_retention_time(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditLogInfo_shutdown_in_progress(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditLogInfo_time_to_shutdown(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditLogInfo_next_audit_record(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_AUDIT_POLICY_NONE=0, */
+/* IDL:        LSA_AUDIT_POLICY_SUCCESS=1, */
+/* IDL:        LSA_AUDIT_POLICY_FAILURE=2, */
+/* IDL:        LSA_AUDIT_POLICY_ALL=(LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE), */
+/* IDL:        LSA_AUDIT_POLICY_CLEAR=4, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_PolicyAuditPolicy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_AUDIT_CATEGORY_SYSTEM=0, */
+/* IDL:        LSA_AUDIT_CATEGORY_LOGON=1, */
+/* IDL:        LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS=2, */
+/* IDL:        LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS=3, */
+/* IDL:        LSA_AUDIT_CATEGORY_PROCCESS_TRACKING=4, */
+/* IDL:        LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES=5, */
+/* IDL:        LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT=6, */
+/* IDL:        LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS=7, */
+/* IDL:        LSA_AUDIT_CATEGORY_ACCOUNT_LOGON=8, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_PolicyAuditEventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 auditing_mode; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_PolicyAuditPolicy *settings; */
+/* IDL:        uint32 count; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_AuditEventsInfo_auditing_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditEventsInfo_auditing_mode, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditEventsInfo_settings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AuditEventsInfo_settings_, NDR_POINTER_UNIQUE, "Pointer to Settings (lsa_PolicyAuditPolicy)",hf_lsarpc_lsa_AuditEventsInfo_settings);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditEventsInfo_settings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AuditEventsInfo_settings__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditEventsInfo_settings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_PolicyAuditPolicy(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditEventsInfo_settings, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditEventsInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditEventsInfo_count, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_AuditEventsInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditEventsInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_AuditEventsInfo_auditing_mode(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditEventsInfo_settings(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditEventsInfo_count(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_StringLarge name; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DomainInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DomainInfo_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfo_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainInfo_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_DomainInfo_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfo_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DomainInfo_sid,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DomainInfo_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfo_sid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String name; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_PDAccountInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PDAccountInfo_name,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_PDAccountInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PDAccountInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_PDAccountInfo_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_ROLE_BACKUP=2, */
+/* IDL:        LSA_ROLE_PRIMARY=3, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_Role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_Role role; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ServerRole_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_Role(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ServerRole_role, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ServerRole(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ServerRole);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ServerRole_role(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String source; */
+/* IDL:        lsa_String account; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ReplicaSourceInfo_source(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ReplicaSourceInfo_source,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ReplicaSourceInfo_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ReplicaSourceInfo_account,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ReplicaSourceInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ReplicaSourceInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ReplicaSourceInfo_source(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ReplicaSourceInfo_account(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 paged_pool; */
+/* IDL:        uint32 non_paged_pool; */
+/* IDL:        uint32 min_wss; */
+/* IDL:        uint32 max_wss; */
+/* IDL:        uint32 pagefile; */
+/* IDL:        hyper unknown; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DefaultQuotaInfo_paged_pool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DefaultQuotaInfo_paged_pool, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DefaultQuotaInfo_non_paged_pool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DefaultQuotaInfo_non_paged_pool, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DefaultQuotaInfo_min_wss(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DefaultQuotaInfo_min_wss, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DefaultQuotaInfo_max_wss(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DefaultQuotaInfo_max_wss, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DefaultQuotaInfo_pagefile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DefaultQuotaInfo_pagefile, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DefaultQuotaInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DefaultQuotaInfo_unknown, NULL);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DefaultQuotaInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DefaultQuotaInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DefaultQuotaInfo_paged_pool(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DefaultQuotaInfo_non_paged_pool(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DefaultQuotaInfo_min_wss(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DefaultQuotaInfo_max_wss(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DefaultQuotaInfo_pagefile(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DefaultQuotaInfo_unknown(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper modified_id; */
+/* IDL:        NTTIME_hyper db_create_time; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ModificationInfo_modified_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ModificationInfo_modified_id, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ModificationInfo_db_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ModificationInfo_db_create_time);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ModificationInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ModificationInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ModificationInfo_modified_id(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ModificationInfo_db_create_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 shutdown_on_full; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_AuditFullSetInfo_shutdown_on_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditFullSetInfo_shutdown_on_full, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_AuditFullSetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditFullSetInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_AuditFullSetInfo_shutdown_on_full(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 shutdown_on_full; */
+/* IDL:        uint8 log_is_full; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_AuditFullQueryInfo_shutdown_on_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditFullQueryInfo_shutdown_on_full, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AuditFullQueryInfo_log_is_full(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AuditFullQueryInfo_log_is_full, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_AuditFullQueryInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_AuditFullQueryInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_AuditFullQueryInfo_shutdown_on_full(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_AuditFullQueryInfo_log_is_full(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_StringLarge name; */
+/* IDL:        lsa_StringLarge dns_domain; */
+/* IDL:        lsa_StringLarge dns_forest; */
+/* IDL:        GUID domain_guid; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DnsDomainInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DnsDomainInfo_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DnsDomainInfo_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DnsDomainInfo_dns_domain,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DnsDomainInfo_dns_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DnsDomainInfo_dns_forest,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DnsDomainInfo_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DnsDomainInfo_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DnsDomainInfo_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DnsDomainInfo_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_DnsDomainInfo_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DnsDomainInfo_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DnsDomainInfo_sid,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DnsDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DnsDomainInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DnsDomainInfo_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DnsDomainInfo_dns_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DnsDomainInfo_dns_forest(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DnsDomainInfo_domain_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DnsDomainInfo_sid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_POLICY_INFO_AUDIT_LOG=1, */
+/* IDL:        LSA_POLICY_INFO_AUDIT_EVENTS=2, */
+/* IDL:        LSA_POLICY_INFO_DOMAIN=3, */
+/* IDL:        LSA_POLICY_INFO_PD=4, */
+/* IDL:        LSA_POLICY_INFO_ACCOUNT_DOMAIN=5, */
+/* IDL:        LSA_POLICY_INFO_ROLE=6, */
+/* IDL:        LSA_POLICY_INFO_REPLICA=7, */
+/* IDL:        LSA_POLICY_INFO_QUOTA=8, */
+/* IDL:        LSA_POLICY_INFO_MOD=9, */
+/* IDL:        LSA_POLICY_INFO_AUDIT_FULL_SET=10, */
+/* IDL:        LSA_POLICY_INFO_AUDIT_FULL_QUERY=11, */
+/* IDL:        LSA_POLICY_INFO_DNS=12, */
+/* IDL:        LSA_POLICY_INFO_DNS_INT=13, */
+/* IDL:        LSA_POLICY_INFO_L_ACCOUNT_DOMAIN=14, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_PolicyInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(LSA_POLICY_INFO_AUDIT_LOG)] [case(LSA_POLICY_INFO_AUDIT_LOG)] lsa_AuditLogInfo audit_log; */
+/* IDL: [case(LSA_POLICY_INFO_AUDIT_EVENTS)] [case(LSA_POLICY_INFO_AUDIT_EVENTS)] lsa_AuditEventsInfo audit_events; */
+/* IDL: [case(LSA_POLICY_INFO_DOMAIN)] [case(LSA_POLICY_INFO_DOMAIN)] lsa_DomainInfo domain; */
+/* IDL: [case(LSA_POLICY_INFO_PD)] [case(LSA_POLICY_INFO_PD)] lsa_PDAccountInfo pd; */
+/* IDL: [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] [case(LSA_POLICY_INFO_ACCOUNT_DOMAIN)] lsa_DomainInfo account_domain; */
+/* IDL: [case(LSA_POLICY_INFO_ROLE)] [case(LSA_POLICY_INFO_ROLE)] lsa_ServerRole role; */
+/* IDL: [case(LSA_POLICY_INFO_REPLICA)] [case(LSA_POLICY_INFO_REPLICA)] lsa_ReplicaSourceInfo replica; */
+/* IDL: [case(LSA_POLICY_INFO_QUOTA)] [case(LSA_POLICY_INFO_QUOTA)] lsa_DefaultQuotaInfo quota; */
+/* IDL: [case(LSA_POLICY_INFO_MOD)] [case(LSA_POLICY_INFO_MOD)] lsa_ModificationInfo mod; */
+/* IDL: [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] [case(LSA_POLICY_INFO_AUDIT_FULL_SET)] lsa_AuditFullSetInfo auditfullset; */
+/* IDL: [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] [case(LSA_POLICY_INFO_AUDIT_FULL_QUERY)] lsa_AuditFullQueryInfo auditfullquery; */
+/* IDL: [case(LSA_POLICY_INFO_DNS)] [case(LSA_POLICY_INFO_DNS)] lsa_DnsDomainInfo dns; */
+/* IDL: [case(LSA_POLICY_INFO_DNS_INT)] [case(LSA_POLICY_INFO_DNS_INT)] lsa_DnsDomainInfo dns; */
+/* IDL: [case(LSA_POLICY_INFO_L_ACCOUNT_DOMAIN)] [case(LSA_POLICY_INFO_L_ACCOUNT_DOMAIN)] lsa_DomainInfo l_account_domain; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_audit_log(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_AuditLogInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_audit_log,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_audit_events(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_AuditEventsInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_audit_events,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_domain,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_pd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_PDAccountInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_pd,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_account_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_account_domain,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ServerRole(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_role,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_replica(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ReplicaSourceInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_replica,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_quota(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DefaultQuotaInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_quota,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_mod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ModificationInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_mod,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_auditfullset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_AuditFullSetInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_auditfullset,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_auditfullquery(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_AuditFullQueryInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_auditfullquery,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DnsDomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_dns,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_dns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DnsDomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_dns,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PolicyInformation_l_account_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PolicyInformation_l_account_domain,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_PolicyInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "lsa_PolicyInformation");
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PolicyInformation);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case LSA_POLICY_INFO_AUDIT_LOG:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_audit_log(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_AUDIT_EVENTS:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_audit_events(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_DOMAIN:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_PD:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_pd(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_ACCOUNT_DOMAIN:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_account_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_ROLE:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_role(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_REPLICA:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_replica(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_QUOTA:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_quota(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_MOD:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_mod(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_AUDIT_FULL_SET:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_auditfullset(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_AUDIT_FULL_QUERY:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_auditfullquery(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_DNS:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_dns(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_DNS_INT:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_dns(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_POLICY_INFO_L_ACCOUNT_DOMAIN:
+                       offset = lsarpc_dissect_element_lsa_PolicyInformation_l_account_domain(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_SidPtr_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SidPtr_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_SidPtr_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SidPtr_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SidPtr_sid,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_SidPtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_SidPtr);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_SidPtr_sid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,20480)] uint32 num_sids; */
+/* IDL:        [unique(1)] [size_is(num_sids)] lsa_SidPtr *sids; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_SidArray_num_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SidArray_num_sids, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SidArray_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SidArray_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (lsa_SidPtr)",hf_lsarpc_lsa_SidArray_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SidArray_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SidArray_sids__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SidArray_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_SidPtr(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SidArray_sids,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_SidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_SidArray);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_SidArray_num_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_SidArray_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_DomainInfo *domains; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DomainList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainList_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainList_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainList_domains_, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_DomainInfo)",hf_lsarpc_lsa_DomainList_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainList_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainList_domains__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainList_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DomainList_domains,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DomainList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainList);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DomainList_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainList_domains(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SID_NAME_USE_NONE=0, */
+/* IDL:        SID_NAME_USER=1, */
+/* IDL:        SID_NAME_DOM_GRP=2, */
+/* IDL:        SID_NAME_DOMAIN=3, */
+/* IDL:        SID_NAME_ALIAS=4, */
+/* IDL:        SID_NAME_WKN_GRP=5, */
+/* IDL:        SID_NAME_DELETED=6, */
+/* IDL:        SID_NAME_INVALID=7, */
+/* IDL:        SID_NAME_UNKNOWN=8, */
+/* IDL:        SID_NAME_COMPUTER=9, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_SidType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_SidType sid_type; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 sid_index; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_SidType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid_sid_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid_rid, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid_sid_index, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TranslatedSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedSid);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TranslatedSid_sid_type(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid_sid_index(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_TranslatedSid *sids; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TransSidArray_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransSidArray_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (lsa_TranslatedSid)",hf_lsarpc_lsa_TransSidArray_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransSidArray_sids__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TranslatedSid(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TransSidArray_sids,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TransSidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransSidArray);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TransSidArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TransSidArray_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_DomainInfo *domains; */
+/* IDL:        uint32 max_size; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_RefDomainList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RefDomainList_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RefDomainList_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RefDomainList_domains_, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_DomainInfo)",hf_lsarpc_lsa_RefDomainList_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RefDomainList_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RefDomainList_domains__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RefDomainList_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RefDomainList_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RefDomainList_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RefDomainList_max_size, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_RefDomainList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_RefDomainList);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_RefDomainList_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_RefDomainList_domains(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_RefDomainList_max_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_LOOKUP_NAMES_ALL=1, */
+/* IDL:        LSA_LOOKUP_NAMES_DOMAINS_ONLY=2, */
+/* IDL:        LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY=3, */
+/* IDL:        LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY=4, */
+/* IDL:        LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY=5, */
+/* IDL:        LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2=6, */
+/* IDL:        LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC=7, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_LookupNamesLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_SidType sid_type; */
+/* IDL:        lsa_String name; */
+/* IDL:        uint32 sid_index; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_SidType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedName_sid_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TranslatedName_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedName_sid_index, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TranslatedName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedName);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TranslatedName_sid_type(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedName_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedName_sid_index(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,20480)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_TranslatedName *names; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TransNameArray_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransNameArray_names_, NDR_POINTER_UNIQUE, "Pointer to Names (lsa_TranslatedName)",hf_lsarpc_lsa_TransNameArray_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransNameArray_names__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TranslatedName(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TransNameArray_names,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TransNameArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransNameArray);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TransNameArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TransNameArray_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_LUID luid; */
+/* IDL:        uint32 attribute; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_LUIDAttribute_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_LUID(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LUIDAttribute_luid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LUIDAttribute_attribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LUIDAttribute_attribute, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_LUIDAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_LUIDAttribute);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_LUIDAttribute_luid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_LUIDAttribute_attribute(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1000)] uint32 count; */
+/* IDL:        uint32 unknown; */
+/* IDL:        [size_is(count)] lsa_LUIDAttribute set[*]; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_PrivilegeSet_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_PrivilegeSet_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivilegeSet_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_PrivilegeSet_unknown, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivilegeSet_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_PrivilegeSet_set_);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_PrivilegeSet_set_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_LUIDAttribute(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_PrivilegeSet_set,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_PrivilegeSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_PrivilegeSet);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_PrivilegeSet_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_PrivilegeSet_unknown(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_PrivilegeSet_set(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint3264 length; */
+/* IDL:        uint3264 size; */
+/* IDL:        [unique(1)] [length_is(length)] [size_is(size)] uint8 *data; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF_length, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF_size, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_lsarpc_lsa_DATA_BUF_data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF_data__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF_data, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DATA_BUF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DATA_BUF);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DATA_BUF_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DATA_BUF_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DATA_BUF_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,65536)] uint32 size; */
+/* IDL:        [unique(1)] [size_is(size)] uint8 *data; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF2_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF2_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_lsarpc_lsa_DATA_BUF2_data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF2_data__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DATA_BUF2_data, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DATA_BUF2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DATA_BUF2);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DATA_BUF2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DATA_BUF2_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_NAME=1, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS=2, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET=3, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_PASSWORD=4, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_BASIC=5, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_INFO_EX=6, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO=7, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_FULL_INFO=8, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL=9, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL=10, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL=11, */
+/* IDL:        LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL=12, */
+/* IDL:        LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES=13, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_TRUST_DIRECTION_INBOUND =  0x00000001 , */
+/* IDL:        LSA_TRUST_DIRECTION_OUTBOUND =  0x00000002 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_TrustDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_TrustDirection);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_TRUST_DIRECTION_INBOUND");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_TRUST_DIRECTION_OUTBOUND");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_TRUST_TYPE_DOWNLEVEL=0x00000001, */
+/* IDL:        LSA_TRUST_TYPE_UPLEVEL=0x00000002, */
+/* IDL:        LSA_TRUST_TYPE_MIT=0x00000003, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_TrustType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE =  0x00000001 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY =  0x00000002 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN =  0x00000004 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE =  0x00000008 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION =  0x00000010 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_WITHIN_FOREST =  0x00000020 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL =  0x00000040 , */
+/* IDL:        LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION =  0x00000080 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_TrustAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_TrustAttributes);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_WITHIN_FOREST");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_StringLarge netbios_name; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoName_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoName_netbios_name,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoName);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoName_netbios_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 entries; */
+/* IDL:        [unique(1)] [size_is(entries)] lsa_StringLarge *netbios_names; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoControllers_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoControllers_entries, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names_, NDR_POINTER_UNIQUE, "Pointer to Netbios Names (lsa_StringLarge)",hf_lsarpc_lsa_TrustDomainInfoControllers_netbios_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoControllers_netbios_names,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoControllers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoControllers);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoControllers_entries(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoControllers_netbios_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 posix_offset; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoPosixOffset_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoPosixOffset_posix_offset, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoPosixOffset);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoPosixOffset_posix_offset(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] lsa_DATA_BUF *password; */
+/* IDL:        [unique(1)] lsa_DATA_BUF *old_password; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoPassword_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoPassword_password_, NDR_POINTER_UNIQUE, "Pointer to Password (lsa_DATA_BUF)",hf_lsarpc_lsa_TrustDomainInfoPassword_password);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoPassword_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoPassword_password,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoPassword_old_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoPassword_old_password_, NDR_POINTER_UNIQUE, "Pointer to Old Password (lsa_DATA_BUF)",hf_lsarpc_lsa_TrustDomainInfoPassword_old_password);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoPassword_old_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoPassword_old_password,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoPassword);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoPassword_password(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoPassword_old_password(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String netbios_name; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoBasic_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoBasic_netbios_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoBasic_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoBasic_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_TrustDomainInfoBasic_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoBasic_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoBasic_sid,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoBasic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoBasic);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoBasic_netbios_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoBasic_sid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_StringLarge domain_name; */
+/* IDL:        lsa_StringLarge netbios_name; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL:        lsa_TrustDirection trust_direction; */
+/* IDL:        lsa_TrustType trust_type; */
+/* IDL:        lsa_TrustAttributes trust_attributes; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoInfoEx_domain_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoInfoEx_netbios_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_TrustDomainInfoInfoEx_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoInfoEx_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_direction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustDirection(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_direction, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustAttributes(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_attributes, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoInfoEx);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_netbios_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_direction(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_type(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx_trust_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        TRUST_AUTH_TYPE_NONE=0, */
+/* IDL:        TRUST_AUTH_TYPE_NT4OWF=1, */
+/* IDL:        TRUST_AUTH_TYPE_CLEAR=2, */
+/* IDL:        TRUST_AUTH_TYPE_VERSION=3, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_TrustAuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME_hyper last_update_time; */
+/* IDL:        lsa_TrustAuthType AuthType; */
+/* IDL:        lsa_DATA_BUF2 data; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_last_update_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoBuffer_last_update_time);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_AuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustAuthType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoBuffer_AuthType, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoBuffer_data,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoBuffer);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_last_update_time(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_AuthType(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoBuffer_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 incoming_count; */
+/* IDL:        [unique(1)] lsa_TrustDomainInfoBuffer *incoming_current_auth_info; */
+/* IDL:        [unique(1)] lsa_TrustDomainInfoBuffer *incoming_previous_auth_info; */
+/* IDL:        uint32 outgoing_count; */
+/* IDL:        [unique(1)] lsa_TrustDomainInfoBuffer *outgoing_current_auth_info; */
+/* IDL:        [unique(1)] lsa_TrustDomainInfoBuffer *outgoing_previous_auth_info; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info_, NDR_POINTER_UNIQUE, "Pointer to Incoming Current Auth Info (lsa_TrustDomainInfoBuffer)",hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info_, NDR_POINTER_UNIQUE, "Pointer to Incoming Previous Auth Info (lsa_TrustDomainInfoBuffer)",hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info_, NDR_POINTER_UNIQUE, "Pointer to Outgoing Current Auth Info (lsa_TrustDomainInfoBuffer)",hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info_, NDR_POINTER_UNIQUE, "Pointer to Outgoing Previous Auth Info (lsa_TrustDomainInfoBuffer)",hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoAuthInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_TrustDomainInfoInfoEx info_ex; */
+/* IDL:        lsa_TrustDomainInfoPosixOffset posix_offset; */
+/* IDL:        lsa_TrustDomainInfoAuthInfo auth_info; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfo_info_ex,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfo_posix_offset,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfo_auth_info,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoFullInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_info_ex(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_posix_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_DATA_BUF2 auth_blob; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfoInternal_auth_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternal_auth_blob,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfoInternal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternal);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoAuthInfoInternal_auth_blob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_TrustDomainInfoInfoEx info_ex; */
+/* IDL:        lsa_TrustDomainInfoPosixOffset posix_offset; */
+/* IDL:        lsa_TrustDomainInfoAuthInfoInternal auth_info; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_info_ex,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_posix_offset,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfoInternal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_auth_info,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfoInternal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoFullInfoInternal);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_info_ex(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_posix_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfoInternal_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_TrustDomainInfoInfoEx info_ex; */
+/* IDL:        uint32 forest_trust_length; */
+/* IDL:        [unique(1)] [size_is(forest_trust_length)] uint8 *forest_trust_data; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_info_ex,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data_, NDR_POINTER_UNIQUE, "Pointer to Forest Trust Data (uint8)",hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx2Internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoInfoEx2Internal);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_info_ex(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_TrustDomainInfoInfoEx2Internal info; */
+/* IDL:        lsa_TrustDomainInfoPosixOffset posix_offset; */
+/* IDL:        lsa_TrustDomainInfoAuthInfo auth_info; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx2Internal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_posix_offset,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_auth_info,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo2Internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoFullInfo2Internal);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_info(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_posix_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoFullInfo2Internal_auth_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        kerb_EncTypes enc_types; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustDomainInfoSupportedEncTypes_enc_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_kerb_EncTypes(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TrustDomainInfoSupportedEncTypes_enc_types, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TrustDomainInfoSupportedEncTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustDomainInfoSupportedEncTypes);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TrustDomainInfoSupportedEncTypes_enc_types(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(lsa_TrustDomInfoEnum)] union { */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] lsa_TrustDomainInfoName name; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)] [case(LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS)] lsa_TrustDomainInfoControllers controllers; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] lsa_TrustDomainInfoPosixOffset posix_offset; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] lsa_TrustDomainInfoPassword password; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] [case(LSA_TRUSTED_DOMAIN_INFO_BASIC)] lsa_TrustDomainInfoBasic info_basic; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX)] lsa_TrustDomainInfoInfoEx info_ex; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO)] lsa_TrustDomainInfoAuthInfo auth_info; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO)] lsa_TrustDomainInfoFullInfo full_info; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)] [case(LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL)] lsa_TrustDomainInfoAuthInfoInternal auth_info_internal; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)] [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL)] lsa_TrustDomainInfoFullInfoInternal full_info_internal; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)] [case(LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL)] lsa_TrustDomainInfoInfoEx2Internal info_ex2_internal; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)] [case(LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL)] lsa_TrustDomainInfoFullInfo2Internal full_info2_internal; */
+/* IDL: [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES)] [case(LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES)] lsa_TrustDomainInfoSupportedEncTypes enc_types; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoName(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_controllers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoControllers(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_controllers,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_posix_offset,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoPassword(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_password,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_info_basic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoBasic(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_info_basic,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_info_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_info_ex,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_auth_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_full_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_auth_info_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfoInternal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfoInternal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_info_ex2_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx2Internal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_info_ex2_internal,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info2_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo2Internal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_full_info2_internal,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TrustedDomainInfo_enc_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoSupportedEncTypes(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TrustedDomainInfo_enc_types,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_TrustedDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "lsa_TrustedDomainInfo");
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TrustedDomainInfo);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case LSA_TRUSTED_DOMAIN_INFO_NAME:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_controllers(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_posix_offset(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_PASSWORD:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_password(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_BASIC:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_info_basic(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_INFO_EX:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_info_ex(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_auth_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_auth_info_internal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info_internal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_info_ex2_internal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_full_info2_internal(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES:
+                       offset = lsarpc_dissect_element_lsa_TrustedDomainInfo_enc_types(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] lsa_DATA_BUF *buf; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_PTR_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DATA_BUF_PTR_buf_, NDR_POINTER_UNIQUE, "Pointer to Buf (lsa_DATA_BUF)",hf_lsarpc_lsa_DATA_BUF_PTR_buf);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DATA_BUF_PTR_buf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DATA_BUF_PTR_buf,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DATA_BUF_PTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DATA_BUF_PTR);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DATA_BUF_PTR_buf(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_RightAttribute_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RightAttribute_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_lsarpc_lsa_RightAttribute_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RightAttribute_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_lsarpc_lsa_RightAttribute_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_RightAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_RightAttribute);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_RightAttribute_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,256)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_StringLarge *names; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_RightSet_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RightSet_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RightSet_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RightSet_names_, NDR_POINTER_UNIQUE, "Pointer to Names (lsa_StringLarge)",hf_lsarpc_lsa_RightSet_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RightSet_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RightSet_names__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RightSet_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RightSet_names,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_RightSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_RightSet);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_RightSet_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_RightSet_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_TrustDomainInfoInfoEx *domains; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DomainListEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainListEx_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainListEx_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainListEx_domains_, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_TrustDomainInfoInfoEx)",hf_lsarpc_lsa_DomainListEx_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainListEx_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainListEx_domains__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainListEx_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DomainListEx_domains,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DomainListEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainListEx);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DomainListEx_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainListEx_domains(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_POLICY_KERBEROS_VALIDATE_CLIENT =  0x00000080 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_krbAuthenticationOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_krbAuthenticationOptions);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "LSA_POLICY_KERBEROS_VALIDATE_CLIENT");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_krbAuthenticationOptions authentication_options; */
+/* IDL:        hyper service_tkt_lifetime; */
+/* IDL:        hyper user_tkt_lifetime; */
+/* IDL:        hyper user_tkt_renewaltime; */
+/* IDL:        hyper clock_skew; */
+/* IDL:        hyper reserved; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoKerberos_authentication_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_krbAuthenticationOptions(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoKerberos_authentication_options, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoKerberos_service_tkt_lifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoKerberos_service_tkt_lifetime, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoKerberos_user_tkt_lifetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_lifetime, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoKerberos_user_tkt_renewaltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_renewaltime, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoKerberos_clock_skew(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoKerberos_clock_skew, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoKerberos_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoKerberos_reserved, NULL);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DomainInfoKerberos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInfoKerberos);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DomainInfoKerberos_authentication_options(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfoKerberos_service_tkt_lifetime(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfoKerberos_user_tkt_lifetime(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfoKerberos_user_tkt_renewaltime(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfoKerberos_clock_skew(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfoKerberos_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 blob_size; */
+/* IDL:        [unique(1)] [size_is(blob_size)] uint8 *efs_blob; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoEfs_blob_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoEfs_blob_size, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_, NDR_POINTER_UNIQUE, "Pointer to Efs Blob (uint8)",hf_lsarpc_lsa_DomainInfoEfs_efs_blob);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DomainInfoEfs_efs_blob, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_DomainInfoEfs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInfoEfs);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_DomainInfoEfs_blob_size(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_DomainInfoEfs_efs_blob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_DOMAIN_INFO_POLICY_EFS=2, */
+/* IDL:        LSA_DOMAIN_INFO_POLICY_KERBEROS=3, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_DomainInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(LSA_DOMAIN_INFO_POLICY_EFS)] [case(LSA_DOMAIN_INFO_POLICY_EFS)] lsa_DomainInfoEfs efs_info; */
+/* IDL: [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] [case(LSA_DOMAIN_INFO_POLICY_KERBEROS)] lsa_DomainInfoKerberos kerberos_info; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_DomainInformationPolicy_efs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfoEfs(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DomainInformationPolicy_efs_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DomainInformationPolicy_kerberos_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfoKerberos(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DomainInformationPolicy_kerberos_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_DomainInformationPolicy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "lsa_DomainInformationPolicy");
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_DomainInformationPolicy);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case LSA_DOMAIN_INFO_POLICY_EFS:
+                       offset = lsarpc_dissect_element_lsa_DomainInformationPolicy_efs_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_DOMAIN_INFO_POLICY_KERBEROS:
+                       offset = lsarpc_dissect_element_lsa_DomainInformationPolicy_kerberos_info(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        lsa_SidType sid_type; */
+/* IDL:        lsa_String name; */
+/* IDL:        uint32 sid_index; */
+/* IDL:        uint32 unknown; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName2_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_SidType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedName2_sid_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TranslatedName2_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName2_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedName2_sid_index, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedName2_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedName2_unknown, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TranslatedName2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedName2);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TranslatedName2_sid_type(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedName2_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedName2_sid_index(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedName2_unknown(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_TranslatedName2 *names; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TransNameArray2_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray2_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransNameArray2_names_, NDR_POINTER_UNIQUE, "Pointer to Names (lsa_TranslatedName2)",hf_lsarpc_lsa_TransNameArray2_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransNameArray2_names__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransNameArray2_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TranslatedName2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TransNameArray2_names,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TransNameArray2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransNameArray2);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TransNameArray2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TransNameArray2_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES=0x00000000, */
+/* IDL:        LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL=0x80000000, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_LookupOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_CLIENT_REVISION_1=0x00000001, */
+/* IDL:        LSA_CLIENT_REVISION_2=0x00000002, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_ClientRevision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_SidType sid_type; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 sid_index; */
+/* IDL:        uint32 unknown; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid2_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_SidType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid2_sid_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid2_rid, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid2_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid2_sid_index, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid2_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid2_unknown, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TranslatedSid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedSid2);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TranslatedSid2_sid_type(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid2_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid2_sid_index(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid2_unknown(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_TranslatedSid2 *sids; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TransSidArray2_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray2_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransSidArray2_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (lsa_TranslatedSid2)",hf_lsarpc_lsa_TransSidArray2_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransSidArray2_sids__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray2_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TranslatedSid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TransSidArray2_sids,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TransSidArray2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransSidArray2);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TransSidArray2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TransSidArray2_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_SidType sid_type; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL:        uint32 sid_index; */
+/* IDL:        uint32 flags; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid3_sid_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_SidType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid3_sid_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid3_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TranslatedSid3_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_TranslatedSid3_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid3_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TranslatedSid3_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid3_sid_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid3_sid_index, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TranslatedSid3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TranslatedSid3_flags, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TranslatedSid3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TranslatedSid3);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TranslatedSid3_sid_type(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid3_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid3_sid_index(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TranslatedSid3_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,1000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_TranslatedSid3 *sids; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_TransSidArray3_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransSidArray3_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (lsa_TranslatedSid3)",hf_lsarpc_lsa_TransSidArray3_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_TransSidArray3_sids__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_TransSidArray3_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TranslatedSid3(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_TransSidArray3_sids,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_TransSidArray3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_TransSidArray3);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_TransSidArray3_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_TransSidArray3_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,131072)] uint3264 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustBinaryData_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustBinaryData_length, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustBinaryData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustBinaryData_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_lsarpc_lsa_ForestTrustBinaryData_data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustBinaryData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustBinaryData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustBinaryData_data, 0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ForestTrustBinaryData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustBinaryData);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ForestTrustBinaryData_length(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustBinaryData_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] dom_sid2 *domain_sid; */
+/* IDL:        lsa_StringLarge dns_domain_name; */
+/* IDL:        lsa_StringLarge netbios_domain_name; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid_, NDR_POINTER_UNIQUE, "Pointer to Domain Sid (dom_sid2)",hf_lsarpc_lsa_ForestTrustDomainInfo_domain_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustDomainInfo_domain_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustDomainInfo_dns_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustDomainInfo_dns_domain_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustDomainInfo_netbios_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustDomainInfo_netbios_domain_name,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ForestTrustDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustDomainInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ForestTrustDomainInfo_domain_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustDomainInfo_dns_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustDomainInfo_netbios_domain_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME)] lsa_StringLarge top_level_name; */
+/* IDL: [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] [case(LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX)] lsa_StringLarge top_level_name_ex; */
+/* IDL: [case(LSA_FOREST_TRUST_DOMAIN_INFO)] [case(LSA_FOREST_TRUST_DOMAIN_INFO)] lsa_ForestTrustDomainInfo domain_info; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustData_top_level_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustData_top_level_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustData_top_level_name_ex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustData_top_level_name_ex,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustData_domain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustDomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustData_domain_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustBinaryData(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustData_data,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_ForestTrustData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "lsa_ForestTrustData");
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustData);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case LSA_FOREST_TRUST_TOP_LEVEL_NAME:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustData_top_level_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustData_top_level_name_ex(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_FOREST_TRUST_DOMAIN_INFO:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustData_domain_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustData_data(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        LSA_FOREST_TRUST_TOP_LEVEL_NAME=0, */
+/* IDL:        LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX=1, */
+/* IDL:        LSA_FOREST_TRUST_DOMAIN_INFO=2, */
+/* IDL:        LSA_FOREST_TRUST_RECORD_TYPE_LAST=3, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_ForestTrustRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        lsa_ForestTrustRecordType type; */
+/* IDL:        hyper time; */
+/* IDL:        [switch_is(type)] lsa_ForestTrustData forest_trust_data; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_flags, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustRecord_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = lsarpc_dissect_enum_lsa_ForestTrustRecordType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_type, type);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustRecord_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_time, NULL);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = lsarpc_dissect_lsa_ForestTrustData(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data, *type);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ForestTrustRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustRecord);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ForestTrustRecord_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustRecord_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustRecord_time(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustRecord_forest_trust_data(tvb, offset, pinfo, tree, drep, &type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [range(0,4000)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_ForestTrustRecord **entries; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustInformation_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustInformation_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustInformation_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustInformation_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (lsa_ForestTrustRecord)",hf_lsarpc_lsa_ForestTrustInformation_entries);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustInformation_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustInformation_entries__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustInformation_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustInformation_entries___, NDR_POINTER_UNIQUE, "Pointer to Entries (lsa_ForestTrustRecord)",hf_lsarpc_lsa_ForestTrustInformation_entries);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustInformation_entries___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustRecord(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustInformation_entries,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ForestTrustInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustInformation);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ForestTrustInformation_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustInformation_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LSA_FOREST_TRUST_COLLISION_TDO=0, */
+/* IDL:        LSA_FOREST_TRUST_COLLISION_XREF=1, */
+/* IDL:        LSA_FOREST_TRUST_COLLISION_OTHER=2, */
+/* IDL: } */
+
+int
+lsarpc_dissect_enum_lsa_ForestTrustCollisionRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_TLN_DISABLED_NEW =  0x00000001 , */
+/* IDL:        LSA_TLN_DISABLED_ADMIN =  0x00000002 , */
+/* IDL:        LSA_TLN_DISABLED_CONFLICT =  0x00000004 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_ForestTrustCollisionTDOFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_ForestTrustCollisionTDOFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_NEW, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_TLN_DISABLED_NEW");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_ADMIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_TLN_DISABLED_ADMIN");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_CONFLICT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "LSA_TLN_DISABLED_CONFLICT");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        LSA_SID_DISABLED_ADMIN =  0x00000001 , */
+/* IDL:        LSA_SID_DISABLED_CONFLICT =  0x00000002 , */
+/* IDL:        LSA_NB_DISABLED_ADMIN =  0x00000004 , */
+/* IDL:        LSA_NB_DISABLED_CONFLICT =  0x00000008 , */
+/* IDL: } */
+
+int
+lsarpc_dissect_bitmap_lsa_ForestTrustCollisionXrefFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_lsarpc_lsa_ForestTrustCollisionXrefFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_ADMIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "LSA_SID_DISABLED_ADMIN");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_CONFLICT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "LSA_SID_DISABLED_CONFLICT");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_ADMIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "LSA_NB_DISABLED_ADMIN");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "LSA_NB_DISABLED_CONFLICT");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(LSA_FOREST_TRUST_COLLISION_TDO)] [case(LSA_FOREST_TRUST_COLLISION_TDO)] lsa_ForestTrustCollisionTDOFlags flags; */
+/* IDL: [case(LSA_FOREST_TRUST_COLLISION_XREF)] [case(LSA_FOREST_TRUST_COLLISION_XREF)] lsa_ForestTrustCollisionXrefFlags flags; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_ForestTrustCollisionTDOFlags(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionFlags_flags, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_ForestTrustCollisionXrefFlags(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionFlags_flags, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionFlags_flags, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_ForestTrustCollisionFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "lsa_ForestTrustCollisionFlags");
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustCollisionFlags);
+       }
+
+       switch(level) {
+               case LSA_FOREST_TRUST_COLLISION_TDO:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LSA_FOREST_TRUST_COLLISION_XREF:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionFlags_flags(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 index; */
+/* IDL:        lsa_ForestTrustCollisionRecordType type; */
+/* IDL:        [switch_is(type)] lsa_ForestTrustCollisionFlags flags; */
+/* IDL:        lsa_String name; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionRecord_index, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = lsarpc_dissect_enum_lsa_ForestTrustCollisionRecordType(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionRecord_type, type);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *type)
+{
+       offset = lsarpc_dissect_lsa_ForestTrustCollisionFlags(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionRecord_flags, *type);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustCollisionRecord_name,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ForestTrustCollisionRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustCollisionRecord);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_index(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_flags(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionRecord_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_ForestTrustCollisionRecord **entries; */
+/* IDL: } */
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_ForestTrustCollisionInfo_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (lsa_ForestTrustCollisionRecord)",hf_lsarpc_lsa_ForestTrustCollisionInfo_entries);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries__);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries___, NDR_POINTER_UNIQUE, "Pointer to Entries (lsa_ForestTrustCollisionRecord)",hf_lsarpc_lsa_ForestTrustCollisionInfo_entries);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustCollisionRecord(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_ForestTrustCollisionInfo_entries,0);
+
+       return offset;
+}
+
+int
+lsarpc_dissect_struct_lsa_ForestTrustCollisionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_lsarpc_lsa_ForestTrustCollisionInfo);
+       }
+       
+       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_count(tvb, offset, pinfo, tree, drep);
+
+       offset = lsarpc_dissect_element_lsa_ForestTrustCollisionInfo_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_Close_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_Close_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_Close_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_Close( */
+/* IDL: [out] [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_Close_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_Close";
+       offset = lsarpc_dissect_element_lsa_Close_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_Close_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_Close";
+       offset = lsarpc_dissect_element_lsa_Close_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Delete_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_Delete_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_Delete_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_Delete_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_Delete_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_Delete( */
+/* IDL: [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_Delete_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_Delete";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_Delete_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_Delete";
+       offset = lsarpc_dissect_element_lsa_Delete_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumPrivs_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumPrivs_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumPrivs_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumPrivs_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_lsarpc_lsa_EnumPrivs_resume_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumPrivs_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumPrivs_privs_, NDR_POINTER_REF, "Pointer to Privs (lsa_PrivArray)",hf_lsarpc_lsa_EnumPrivs_privs);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_PrivArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumPrivs_privs,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivs_max_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumPrivs_max_count, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumPrivs( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [out] [ref] lsa_PrivArray *privs, */
+/* IDL: [in] uint32 max_count */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumPrivs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumPrivs";
+       offset = lsarpc_dissect_element_lsa_EnumPrivs_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_EnumPrivs_privs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumPrivs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumPrivs";
+       offset = lsarpc_dissect_element_lsa_EnumPrivs_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumPrivs_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumPrivs_max_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_QuerySecurity_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QuerySecurity_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QuerySecurity_sec_info, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_lsarpc_lsa_QuerySecurity_sdbuf);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecurity_sdbuf__, NDR_POINTER_UNIQUE, "Pointer to Sdbuf (sec_desc_buf)",hf_lsarpc_lsa_QuerySecurity_sdbuf);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_QuerySecurity_sdbuf,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QuerySecurity( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] security_secinfo sec_info, */
+/* IDL: [out] [ref] sec_desc_buf **sdbuf */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QuerySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QuerySecurity";
+       offset = lsarpc_dissect_element_lsa_QuerySecurity_sdbuf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QuerySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QuerySecurity";
+       offset = lsarpc_dissect_element_lsa_QuerySecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QuerySecurity_sec_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecObj_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetSecObj_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetSecObj_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecObj_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetSecObj_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecObj_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetSecObj_sec_info, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecObj_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetSecObj_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_lsarpc_lsa_SetSecObj_sdbuf);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecObj_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SetSecObj_sdbuf,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetSecObj( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] security_secinfo sec_info, */
+/* IDL: [in] [ref] sec_desc_buf *sdbuf */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetSecObj_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetSecObj";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetSecObj_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetSecObj";
+       offset = lsarpc_dissect_element_lsa_SetSecObj_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetSecObj_sec_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetSecObj_sdbuf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_ChangePassword( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_ChangePassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_ChangePassword";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_ChangePassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_ChangePassword";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenPolicy_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_lsarpc_lsa_OpenPolicy_system_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenPolicy_system_name, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_attr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenPolicy_attr_, NDR_POINTER_REF, "Pointer to Attr (lsa_ObjectAttribute)",hf_lsarpc_lsa_OpenPolicy_attr);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_attr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ObjectAttribute(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_OpenPolicy_attr,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_PolicyAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenPolicy_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenPolicy_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_OpenPolicy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenPolicy_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_OpenPolicy( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [ref] [in] lsa_ObjectAttribute *attr, */
+/* IDL: [in] lsa_PolicyAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_OpenPolicy_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_OpenPolicy";
+       offset = lsarpc_dissect_element_lsa_OpenPolicy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_OpenPolicy_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_OpenPolicy";
+       offset = lsarpc_dissect_element_lsa_OpenPolicy_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenPolicy_attr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenPolicy_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryInfoPolicy_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_QueryInfoPolicy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryInfoPolicy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_PolicyInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryInfoPolicy_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryInfoPolicy_info_, NDR_POINTER_REF, "Pointer to Info (lsa_PolicyInformation)",hf_lsarpc_lsa_QueryInfoPolicy_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryInfoPolicy_info__, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_PolicyInformation)",hf_lsarpc_lsa_QueryInfoPolicy_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_PolicyInformation(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryInfoPolicy_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QueryInfoPolicy( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_PolicyInfo level, */
+/* IDL: [out] [ref] [switch_is(level)] lsa_PolicyInformation **info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QueryInfoPolicy_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QueryInfoPolicy";
+       offset = lsarpc_dissect_element_lsa_QueryInfoPolicy_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QueryInfoPolicy_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QueryInfoPolicy";
+       offset = lsarpc_dissect_element_lsa_QueryInfoPolicy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryInfoPolicy_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetInfoPolicy_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetInfoPolicy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInfoPolicy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_PolicyInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInfoPolicy_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetInfoPolicy_info_, NDR_POINTER_REF, "Pointer to Info (lsa_PolicyInformation)",hf_lsarpc_lsa_SetInfoPolicy_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_PolicyInformation(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInfoPolicy_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetInfoPolicy( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_PolicyInfo level, */
+/* IDL: [ref] [in] [switch_is(level)] lsa_PolicyInformation *info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetInfoPolicy_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetInfoPolicy";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetInfoPolicy_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetInfoPolicy";
+       offset = lsarpc_dissect_element_lsa_SetInfoPolicy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetInfoPolicy_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetInfoPolicy_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_ClearAuditLog( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_ClearAuditLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_ClearAuditLog";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_ClearAuditLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_ClearAuditLog";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_CreateAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateAccount_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_CreateAccount_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateAccount_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_AccountAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateAccount_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_acct_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateAccount_acct_handle_, NDR_POINTER_REF, "Pointer to Acct Handle (policy_handle)",hf_lsarpc_lsa_CreateAccount_acct_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateAccount_acct_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateAccount_acct_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CreateAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] dom_sid2 *sid, */
+/* IDL: [in] lsa_AccountAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *acct_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CreateAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CreateAccount";
+       offset = lsarpc_dissect_element_lsa_CreateAccount_acct_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CreateAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CreateAccount";
+       offset = lsarpc_dissect_element_lsa_CreateAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateAccount_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateAccount_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccounts_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumAccounts_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumAccounts_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccounts_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_lsarpc_lsa_EnumAccounts_resume_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumAccounts_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccounts_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_lsarpc_lsa_EnumAccounts_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumAccounts_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccounts_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumAccounts_num_entries, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumAccounts( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [out] [ref] lsa_SidArray *sids, */
+/* IDL: [in] [range(0,8192)] uint32 num_entries */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumAccounts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumAccounts";
+       offset = lsarpc_dissect_element_lsa_EnumAccounts_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_EnumAccounts_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumAccounts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumAccounts";
+       offset = lsarpc_dissect_element_lsa_EnumAccounts_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumAccounts_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumAccounts_num_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomain_policy_handle_, NDR_POINTER_REF, "Pointer to Policy Handle (policy_handle)",hf_lsarpc_lsa_CreateTrustedDomain_policy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_policy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomain_policy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomain_info_, NDR_POINTER_REF, "Pointer to Info (lsa_DomainInfo)",hf_lsarpc_lsa_CreateTrustedDomain_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateTrustedDomain_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomain_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomain_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_CreateTrustedDomain_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomain_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomain_trustdom_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CreateTrustedDomain( */
+/* IDL: [ref] [in] policy_handle *policy_handle, */
+/* IDL: [ref] [in] lsa_DomainInfo *info, */
+/* IDL: [in] lsa_TrustedAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *trustdom_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CreateTrustedDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CreateTrustedDomain";
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomain_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CreateTrustedDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CreateTrustedDomain";
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomain_policy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomain_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomain_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumTrustDom_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumTrustDom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumTrustDom_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_lsarpc_lsa_EnumTrustDom_resume_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumTrustDom_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumTrustDom_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_DomainList)",hf_lsarpc_lsa_EnumTrustDom_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumTrustDom_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustDom_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumTrustDom_max_size, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumTrustDom( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [out] [ref] lsa_DomainList *domains, */
+/* IDL: [in] uint32 max_size */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumTrustDom_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumTrustDom";
+       offset = lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_EnumTrustDom_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumTrustDom_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumTrustDom";
+       offset = lsarpc_dissect_element_lsa_EnumTrustDom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumTrustDom_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumTrustDom_max_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupNames_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames_num_names, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames_names_);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_TransSidArray)",hf_lsarpc_lsa_LookupNames_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransSidArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupNames_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames_count, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupNames( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [range(0,1000)] uint32 num_names, */
+/* IDL: [in] [size_is(num_names)] lsa_String names[*], */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransSidArray *sids, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupNames";
+       offset = lsarpc_dissect_element_lsa_LookupNames_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupNames";
+       offset = lsarpc_dissect_element_lsa_LookupNames_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames_num_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupSids_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_lsarpc_lsa_LookupSids_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupSids_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupSids_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids_names_, NDR_POINTER_REF, "Pointer to Names (lsa_TransNameArray)",hf_lsarpc_lsa_LookupSids_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransNameArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupSids_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids_count, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupSids( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_SidArray *sids, */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransNameArray *names, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupSids_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupSids";
+       offset = lsarpc_dissect_element_lsa_LookupSids_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupSids_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupSids_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupSids_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupSids";
+       offset = lsarpc_dissect_element_lsa_LookupSids_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateSecret_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateSecret_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_CreateSecret_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateSecret_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateSecret_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateSecret_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateSecret_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateSecret_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_SecretAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateSecret_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateSecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateSecret_sec_handle_, NDR_POINTER_REF, "Pointer to Sec Handle (policy_handle)",hf_lsarpc_lsa_CreateSecret_sec_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateSecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateSecret_sec_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CreateSecret( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_String name, */
+/* IDL: [in] lsa_SecretAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *sec_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CreateSecret_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CreateSecret";
+       offset = lsarpc_dissect_element_lsa_CreateSecret_sec_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CreateSecret_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CreateSecret";
+       offset = lsarpc_dissect_element_lsa_CreateSecret_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateSecret_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateSecret_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_OpenAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenAccount_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_OpenAccount_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_OpenAccount_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_AccountAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenAccount_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_acct_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenAccount_acct_handle_, NDR_POINTER_REF, "Pointer to Acct Handle (policy_handle)",hf_lsarpc_lsa_OpenAccount_acct_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenAccount_acct_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenAccount_acct_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_OpenAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] dom_sid2 *sid, */
+/* IDL: [in] lsa_AccountAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *acct_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_OpenAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_OpenAccount";
+       offset = lsarpc_dissect_element_lsa_OpenAccount_acct_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_OpenAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_OpenAccount";
+       offset = lsarpc_dissect_element_lsa_OpenAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenAccount_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenAccount_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivsAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumPrivsAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumPrivsAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivsAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumPrivsAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivsAccount_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumPrivsAccount_privs_, NDR_POINTER_REF, "Pointer to Privs (lsa_PrivilegeSet)",hf_lsarpc_lsa_EnumPrivsAccount_privs);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivsAccount_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumPrivsAccount_privs__, NDR_POINTER_UNIQUE, "Pointer to Privs (lsa_PrivilegeSet)",hf_lsarpc_lsa_EnumPrivsAccount_privs);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumPrivsAccount_privs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_PrivilegeSet(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumPrivsAccount_privs,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumPrivsAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [ref] lsa_PrivilegeSet **privs */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumPrivsAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumPrivsAccount";
+       offset = lsarpc_dissect_element_lsa_EnumPrivsAccount_privs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumPrivsAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumPrivsAccount";
+       offset = lsarpc_dissect_element_lsa_EnumPrivsAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddPrivilegesToAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AddPrivilegesToAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_AddPrivilegesToAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddPrivilegesToAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AddPrivilegesToAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddPrivilegesToAccount_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AddPrivilegesToAccount_privs_, NDR_POINTER_REF, "Pointer to Privs (lsa_PrivilegeSet)",hf_lsarpc_lsa_AddPrivilegesToAccount_privs);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddPrivilegesToAccount_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_PrivilegeSet(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_AddPrivilegesToAccount_privs,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_AddPrivilegesToAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_PrivilegeSet *privs */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_AddPrivilegesToAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_AddPrivilegesToAccount";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_AddPrivilegesToAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_AddPrivilegesToAccount";
+       offset = lsarpc_dissect_element_lsa_AddPrivilegesToAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_AddPrivilegesToAccount_privs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_RemovePrivilegesFromAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RemovePrivilegesFromAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_remove_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RemovePrivilegesFromAccount_remove_all, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_privs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_privs_, NDR_POINTER_UNIQUE, "Pointer to Privs (lsa_PrivilegeSet)",hf_lsarpc_lsa_RemovePrivilegesFromAccount_privs);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_privs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_PrivilegeSet(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RemovePrivilegesFromAccount_privs,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_RemovePrivilegesFromAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] uint8 remove_all, */
+/* IDL: [unique(1)] [in] lsa_PrivilegeSet *privs */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_RemovePrivilegesFromAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_RemovePrivilegesFromAccount";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_RemovePrivilegesFromAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_RemovePrivilegesFromAccount";
+       offset = lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_remove_all(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RemovePrivilegesFromAccount_privs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_GetQuotasForAccount( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_GetQuotasForAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_GetQuotasForAccount";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_GetQuotasForAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_GetQuotasForAccount";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetQuotasForAccount( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetQuotasForAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetQuotasForAccount";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetQuotasForAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetQuotasForAccount";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetSystemAccessAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetSystemAccessAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_GetSystemAccessAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetSystemAccessAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_GetSystemAccessAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetSystemAccessAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetSystemAccessAccount_access_mask_, NDR_POINTER_REF, "Pointer to Access Mask (lsa_AccountAccessMask)",hf_lsarpc_lsa_GetSystemAccessAccount_access_mask);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetSystemAccessAccount_access_mask_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_AccountAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_GetSystemAccessAccount_access_mask, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_GetSystemAccessAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [ref] lsa_AccountAccessMask *access_mask */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_GetSystemAccessAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_GetSystemAccessAccount";
+       offset = lsarpc_dissect_element_lsa_GetSystemAccessAccount_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_GetSystemAccessAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_GetSystemAccessAccount";
+       offset = lsarpc_dissect_element_lsa_GetSystemAccessAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSystemAccessAccount_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetSystemAccessAccount_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetSystemAccessAccount_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSystemAccessAccount_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetSystemAccessAccount_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSystemAccessAccount_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_AccountAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetSystemAccessAccount_access_mask, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetSystemAccessAccount( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_AccountAccessMask access_mask */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetSystemAccessAccount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetSystemAccessAccount";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetSystemAccessAccount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetSystemAccessAccount";
+       offset = lsarpc_dissect_element_lsa_SetSystemAccessAccount_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetSystemAccessAccount_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenTrustedDomain_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_OpenTrustedDomain_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenTrustedDomain_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenTrustedDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_OpenTrustedDomain_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_OpenTrustedDomain_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenTrustedDomain_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenTrustedDomain_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_OpenTrustedDomain_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomain_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenTrustedDomain_trustdom_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_OpenTrustedDomain( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [ref] [in] dom_sid2 *sid, */
+/* IDL: [in] lsa_TrustedAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *trustdom_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_OpenTrustedDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_OpenTrustedDomain";
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomain_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_OpenTrustedDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_OpenTrustedDomain";
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomain_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomain_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_QueryTrustedDomainInfo_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfo_trustdom_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfo_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_QueryTrustedDomainInfo_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_QueryTrustedDomainInfo_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_TrustedDomainInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QueryTrustedDomainInfo( */
+/* IDL: [ref] [in] policy_handle *trustdom_handle, */
+/* IDL: [in] lsa_TrustDomInfoEnum level, */
+/* IDL: [out] [ref] [switch_is(level)] lsa_TrustedDomainInfo **info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QueryTrustedDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QueryTrustedDomainInfo";
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QueryTrustedDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QueryTrustedDomainInfo";
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInformationTrustedDomain_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetInformationTrustedDomain_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_SetInformationTrustedDomain_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInformationTrustedDomain_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInformationTrustedDomain_trustdom_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInformationTrustedDomain_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInformationTrustedDomain_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInformationTrustedDomain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetInformationTrustedDomain_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_SetInformationTrustedDomain_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInformationTrustedDomain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_TrustedDomainInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInformationTrustedDomain_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetInformationTrustedDomain( */
+/* IDL: [ref] [in] policy_handle *trustdom_handle, */
+/* IDL: [in] lsa_TrustDomInfoEnum level, */
+/* IDL: [ref] [in] [switch_is(level)] lsa_TrustedDomainInfo *info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetInformationTrustedDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetInformationTrustedDomain";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetInformationTrustedDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetInformationTrustedDomain";
+       offset = lsarpc_dissect_element_lsa_SetInformationTrustedDomain_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetInformationTrustedDomain_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetInformationTrustedDomain_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenSecret_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenSecret_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_OpenSecret_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenSecret_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenSecret_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenSecret_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_OpenSecret_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenSecret_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_SecretAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenSecret_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenSecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenSecret_sec_handle_, NDR_POINTER_REF, "Pointer to Sec Handle (policy_handle)",hf_lsarpc_lsa_OpenSecret_sec_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenSecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenSecret_sec_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_OpenSecret( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_String name, */
+/* IDL: [in] lsa_SecretAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *sec_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_OpenSecret_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_OpenSecret";
+       offset = lsarpc_dissect_element_lsa_OpenSecret_sec_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_OpenSecret_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_OpenSecret";
+       offset = lsarpc_dissect_element_lsa_OpenSecret_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenSecret_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenSecret_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetSecret_sec_handle_, NDR_POINTER_REF, "Pointer to Sec Handle (policy_handle)",hf_lsarpc_lsa_SetSecret_sec_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetSecret_sec_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecret_new_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetSecret_new_val_, NDR_POINTER_UNIQUE, "Pointer to New Val (lsa_DATA_BUF)",hf_lsarpc_lsa_SetSecret_new_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecret_new_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SetSecret_new_val,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecret_old_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetSecret_old_val_, NDR_POINTER_UNIQUE, "Pointer to Old Val (lsa_DATA_BUF)",hf_lsarpc_lsa_SetSecret_old_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetSecret_old_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SetSecret_old_val,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetSecret( */
+/* IDL: [ref] [in] policy_handle *sec_handle, */
+/* IDL: [unique(1)] [in] lsa_DATA_BUF *new_val, */
+/* IDL: [unique(1)] [in] lsa_DATA_BUF *old_val */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetSecret_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetSecret";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetSecret_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetSecret";
+       offset = lsarpc_dissect_element_lsa_SetSecret_sec_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetSecret_new_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetSecret_old_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_sec_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecret_sec_handle_, NDR_POINTER_REF, "Pointer to Sec Handle (policy_handle)",hf_lsarpc_lsa_QuerySecret_sec_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_sec_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QuerySecret_sec_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_new_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecret_new_val_, NDR_POINTER_UNIQUE, "Pointer to New Val (lsa_DATA_BUF_PTR)",hf_lsarpc_lsa_QuerySecret_new_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_new_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF_PTR(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_QuerySecret_new_val,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_new_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecret_new_mtime_, NDR_POINTER_UNIQUE, "Pointer to New Mtime (NTTIME_hyper)",hf_lsarpc_lsa_QuerySecret_new_mtime);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_new_mtime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QuerySecret_new_mtime);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_old_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecret_old_val_, NDR_POINTER_UNIQUE, "Pointer to Old Val (lsa_DATA_BUF_PTR)",hf_lsarpc_lsa_QuerySecret_old_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_old_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF_PTR(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_QuerySecret_old_val,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_old_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QuerySecret_old_mtime_, NDR_POINTER_UNIQUE, "Pointer to Old Mtime (NTTIME_hyper)",hf_lsarpc_lsa_QuerySecret_old_mtime);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QuerySecret_old_mtime_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QuerySecret_old_mtime);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QuerySecret( */
+/* IDL: [ref] [in] policy_handle *sec_handle, */
+/* IDL: [out] [unique(1)] [in] lsa_DATA_BUF_PTR *new_val, */
+/* IDL: [out] [unique(1)] [in] NTTIME_hyper *new_mtime, */
+/* IDL: [out] [unique(1)] [in] lsa_DATA_BUF_PTR *old_val, */
+/* IDL: [out] [unique(1)] [in] NTTIME_hyper *old_mtime */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QuerySecret_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QuerySecret";
+       offset = lsarpc_dissect_element_lsa_QuerySecret_new_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_QuerySecret_new_mtime(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_QuerySecret_old_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_QuerySecret_old_mtime(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QuerySecret_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QuerySecret";
+       offset = lsarpc_dissect_element_lsa_QuerySecret_sec_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QuerySecret_new_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QuerySecret_new_mtime(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QuerySecret_old_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QuerySecret_old_mtime(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivValue_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupPrivValue_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupPrivValue_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivValue_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_lsarpc_lsa_LookupPrivValue_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupPrivValue_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivValue_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivValue_luid_, NDR_POINTER_REF, "Pointer to Luid (lsa_LUID)",hf_lsarpc_lsa_LookupPrivValue_luid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivValue_luid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_LUID(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupPrivValue_luid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupPrivValue( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [out] [ref] lsa_LUID *luid */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupPrivValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupPrivValue";
+       offset = lsarpc_dissect_element_lsa_LookupPrivValue_luid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupPrivValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupPrivValue";
+       offset = lsarpc_dissect_element_lsa_LookupPrivValue_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupPrivValue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivName_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupPrivName_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupPrivName_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_luid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivName_luid_, NDR_POINTER_REF, "Pointer to Luid (lsa_LUID)",hf_lsarpc_lsa_LookupPrivName_luid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_luid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_LUID(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupPrivName_luid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivName_name_, NDR_POINTER_REF, "Pointer to Name (lsa_StringLarge)",hf_lsarpc_lsa_LookupPrivName_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivName_name__, NDR_POINTER_UNIQUE, "Pointer to Name (lsa_StringLarge)",hf_lsarpc_lsa_LookupPrivName_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivName_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupPrivName_name,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupPrivName( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_LUID *luid, */
+/* IDL: [out] [ref] lsa_StringLarge **name */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupPrivName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupPrivName";
+       offset = lsarpc_dissect_element_lsa_LookupPrivName_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupPrivName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupPrivName";
+       offset = lsarpc_dissect_element_lsa_LookupPrivName_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupPrivName_luid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivDisplayName_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupPrivDisplayName_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupPrivDisplayName_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivDisplayName_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_lsarpc_lsa_LookupPrivDisplayName_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupPrivDisplayName_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_language_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupPrivDisplayName_language_id, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_language_id_sys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupPrivDisplayName_language_id_sys, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name_, NDR_POINTER_REF, "Pointer to Disp Name (lsa_StringLarge)",hf_lsarpc_lsa_LookupPrivDisplayName_disp_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name__, NDR_POINTER_UNIQUE, "Pointer to Disp Name (lsa_StringLarge)",hf_lsarpc_lsa_LookupPrivDisplayName_disp_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupPrivDisplayName_disp_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_returned_language_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupPrivDisplayName_returned_language_id_, NDR_POINTER_REF, "Pointer to Returned Language Id (uint16)",hf_lsarpc_lsa_LookupPrivDisplayName_returned_language_id);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupPrivDisplayName_returned_language_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupPrivDisplayName_returned_language_id, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupPrivDisplayName( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [in] uint16 language_id, */
+/* IDL: [in] uint16 language_id_sys, */
+/* IDL: [out] [ref] lsa_StringLarge **disp_name, */
+/* IDL: [out] [ref] uint16 *returned_language_id */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupPrivDisplayName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupPrivDisplayName";
+       offset = lsarpc_dissect_element_lsa_LookupPrivDisplayName_disp_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupPrivDisplayName_returned_language_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupPrivDisplayName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupPrivDisplayName";
+       offset = lsarpc_dissect_element_lsa_LookupPrivDisplayName_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupPrivDisplayName_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupPrivDisplayName_language_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupPrivDisplayName_language_id_sys(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DeleteObject_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DeleteObject_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_DeleteObject_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DeleteObject_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DeleteObject_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_DeleteObject( */
+/* IDL: [out] [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_DeleteObject_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_DeleteObject";
+       offset = lsarpc_dissect_element_lsa_DeleteObject_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_DeleteObject_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_DeleteObject";
+       offset = lsarpc_dissect_element_lsa_DeleteObject_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumAccountsWithUserRight_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumAccountsWithUserRight_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_name_, NDR_POINTER_UNIQUE, "Pointer to Name (lsa_String)",hf_lsarpc_lsa_EnumAccountsWithUserRight_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumAccountsWithUserRight_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_lsarpc_lsa_EnumAccountsWithUserRight_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumAccountsWithUserRight_sids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumAccountsWithUserRight( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [unique(1)] [in] lsa_String *name, */
+/* IDL: [out] [ref] lsa_SidArray *sids */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumAccountsWithUserRight_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumAccountsWithUserRight";
+       offset = lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumAccountsWithUserRight_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumAccountsWithUserRight";
+       offset = lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumAccountsWithUserRight_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountRights_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccountRights_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumAccountRights_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountRights_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumAccountRights_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountRights_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccountRights_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_EnumAccountRights_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountRights_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumAccountRights_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountRights_rights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumAccountRights_rights_, NDR_POINTER_REF, "Pointer to Rights (lsa_RightSet)",hf_lsarpc_lsa_EnumAccountRights_rights);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumAccountRights_rights_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RightSet(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumAccountRights_rights,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumAccountRights( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] dom_sid2 *sid, */
+/* IDL: [out] [ref] lsa_RightSet *rights */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumAccountRights_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumAccountRights";
+       offset = lsarpc_dissect_element_lsa_EnumAccountRights_rights(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumAccountRights_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumAccountRights";
+       offset = lsarpc_dissect_element_lsa_EnumAccountRights_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumAccountRights_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddAccountRights_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AddAccountRights_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_AddAccountRights_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddAccountRights_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_AddAccountRights_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddAccountRights_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AddAccountRights_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_AddAccountRights_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddAccountRights_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_AddAccountRights_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddAccountRights_rights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_AddAccountRights_rights_, NDR_POINTER_REF, "Pointer to Rights (lsa_RightSet)",hf_lsarpc_lsa_AddAccountRights_rights);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_AddAccountRights_rights_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RightSet(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_AddAccountRights_rights,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_AddAccountRights( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] dom_sid2 *sid, */
+/* IDL: [in] [ref] lsa_RightSet *rights */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_AddAccountRights_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_AddAccountRights";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_AddAccountRights_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_AddAccountRights";
+       offset = lsarpc_dissect_element_lsa_AddAccountRights_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_AddAccountRights_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_AddAccountRights_rights(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RemoveAccountRights_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_RemoveAccountRights_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RemoveAccountRights_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RemoveAccountRights_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_lsarpc_lsa_RemoveAccountRights_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RemoveAccountRights_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_remove_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RemoveAccountRights_remove_all, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_rights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RemoveAccountRights_rights_, NDR_POINTER_REF, "Pointer to Rights (lsa_RightSet)",hf_lsarpc_lsa_RemoveAccountRights_rights);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RemoveAccountRights_rights_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RightSet(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RemoveAccountRights_rights,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_RemoveAccountRights( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] dom_sid2 *sid, */
+/* IDL: [in] uint8 remove_all, */
+/* IDL: [in] [ref] lsa_RightSet *rights */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_RemoveAccountRights_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_RemoveAccountRights";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_RemoveAccountRights_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_RemoveAccountRights";
+       offset = lsarpc_dissect_element_lsa_RemoveAccountRights_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RemoveAccountRights_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RemoveAccountRights_remove_all(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RemoveAccountRights_rights(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_dom_sid_, NDR_POINTER_REF, "Pointer to Dom Sid (dom_sid2)",hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_dom_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_dom_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info__, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_TrustedDomainInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QueryTrustedDomainInfoBySid( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] dom_sid2 *dom_sid, */
+/* IDL: [in] lsa_TrustDomInfoEnum level, */
+/* IDL: [out] [ref] [switch_is(level)] lsa_TrustedDomainInfo **info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QueryTrustedDomainInfoBySid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QueryTrustedDomainInfoBySid";
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QueryTrustedDomainInfoBySid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QueryTrustedDomainInfoBySid";
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_dom_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoBySid_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetTrustedDomainInfo_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetTrustedDomainInfo_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetTrustedDomainInfo_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetTrustedDomainInfo_dom_sid_, NDR_POINTER_REF, "Pointer to Dom Sid (dom_sid2)",hf_lsarpc_lsa_SetTrustedDomainInfo_dom_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SetTrustedDomainInfo_dom_sid,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetTrustedDomainInfo_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetTrustedDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_SetTrustedDomainInfo_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_TrustedDomainInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetTrustedDomainInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetTrustedDomainInfo( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [ref] [in] dom_sid2 *dom_sid, */
+/* IDL: [in] lsa_TrustDomInfoEnum level, */
+/* IDL: [ref] [in] [switch_is(level)] lsa_TrustedDomainInfo *info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetTrustedDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetTrustedDomainInfo";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetTrustedDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetTrustedDomainInfo";
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfo_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfo_dom_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DeleteTrustedDomain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DeleteTrustedDomain_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_DeleteTrustedDomain_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DeleteTrustedDomain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_DeleteTrustedDomain_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DeleteTrustedDomain_dom_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_DeleteTrustedDomain_dom_sid_, NDR_POINTER_REF, "Pointer to Dom Sid (dom_sid2)",hf_lsarpc_lsa_DeleteTrustedDomain_dom_sid);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_DeleteTrustedDomain_dom_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_DeleteTrustedDomain_dom_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_DeleteTrustedDomain( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [ref] [in] dom_sid2 *dom_sid */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_DeleteTrustedDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_DeleteTrustedDomain";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_DeleteTrustedDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_DeleteTrustedDomain";
+       offset = lsarpc_dissect_element_lsa_DeleteTrustedDomain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_DeleteTrustedDomain_dom_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StorePrivateData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_StorePrivateData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_StorePrivateData_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StorePrivateData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_StorePrivateData_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StorePrivateData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_StorePrivateData_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_lsarpc_lsa_StorePrivateData_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StorePrivateData_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_StorePrivateData_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StorePrivateData_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_StorePrivateData_val_, NDR_POINTER_UNIQUE, "Pointer to Val (lsa_DATA_BUF)",hf_lsarpc_lsa_StorePrivateData_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_StorePrivateData_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_StorePrivateData_val,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_StorePrivateData( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [unique(1)] [in] lsa_DATA_BUF *val */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_StorePrivateData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_StorePrivateData";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_StorePrivateData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_StorePrivateData";
+       offset = lsarpc_dissect_element_lsa_StorePrivateData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_StorePrivateData_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_StorePrivateData_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RetrievePrivateData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_RetrievePrivateData_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_RetrievePrivateData_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RetrievePrivateData_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_lsarpc_lsa_RetrievePrivateData_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RetrievePrivateData_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_val(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RetrievePrivateData_val_, NDR_POINTER_REF, "Pointer to Val (lsa_DATA_BUF)",hf_lsarpc_lsa_RetrievePrivateData_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_val_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_RetrievePrivateData_val__, NDR_POINTER_UNIQUE, "Pointer to Val (lsa_DATA_BUF)",hf_lsarpc_lsa_RetrievePrivateData_val);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_RetrievePrivateData_val__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DATA_BUF(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_RetrievePrivateData_val,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_RetrievePrivateData( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [out] [in] [ref] lsa_DATA_BUF **val */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_RetrievePrivateData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_RetrievePrivateData";
+       offset = lsarpc_dissect_element_lsa_RetrievePrivateData_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_RetrievePrivateData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_RetrievePrivateData";
+       offset = lsarpc_dissect_element_lsa_RetrievePrivateData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RetrievePrivateData_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_RetrievePrivateData_val(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenPolicy2_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_lsarpc_lsa_OpenPolicy2_system_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_lsarpc_lsa_OpenPolicy2_system_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_attr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenPolicy2_attr_, NDR_POINTER_REF, "Pointer to Attr (lsa_ObjectAttribute)",hf_lsarpc_lsa_OpenPolicy2_attr);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_attr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ObjectAttribute(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_OpenPolicy2_attr,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_PolicyAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenPolicy2_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenPolicy2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_OpenPolicy2_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenPolicy2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenPolicy2_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_OpenPolicy2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
+/* IDL: [ref] [in] lsa_ObjectAttribute *attr, */
+/* IDL: [in] lsa_PolicyAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_OpenPolicy2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_OpenPolicy2";
+       offset = lsarpc_dissect_element_lsa_OpenPolicy2_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_OpenPolicy2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_OpenPolicy2";
+       offset = lsarpc_dissect_element_lsa_OpenPolicy2_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenPolicy2_attr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenPolicy2_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetUserName_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_lsarpc_lsa_GetUserName_system_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_lsarpc_lsa_GetUserName_system_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetUserName_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_lsarpc_lsa_GetUserName_account_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetUserName_account_name__, NDR_POINTER_UNIQUE, "Pointer to Account Name (lsa_String)",hf_lsarpc_lsa_GetUserName_account_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_account_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_GetUserName_account_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_authority_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetUserName_authority_name_, NDR_POINTER_UNIQUE, "Pointer to Authority Name (lsa_String)",hf_lsarpc_lsa_GetUserName_authority_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_authority_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_GetUserName_authority_name__, NDR_POINTER_UNIQUE, "Pointer to Authority Name (lsa_String)",hf_lsarpc_lsa_GetUserName_authority_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_GetUserName_authority_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_GetUserName_authority_name,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_GetUserName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
+/* IDL: [out] [in] [ref] lsa_String **account_name, */
+/* IDL: [out] [unique(1)] [in] lsa_String **authority_name */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_GetUserName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_GetUserName";
+       offset = lsarpc_dissect_element_lsa_GetUserName_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_GetUserName_authority_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_GetUserName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_GetUserName";
+       offset = lsarpc_dissect_element_lsa_GetUserName_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_GetUserName_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_GetUserName_authority_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryInfoPolicy2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_QueryInfoPolicy2_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryInfoPolicy2_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_PolicyInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryInfoPolicy2_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryInfoPolicy2_info_, NDR_POINTER_REF, "Pointer to Info (lsa_PolicyInformation)",hf_lsarpc_lsa_QueryInfoPolicy2_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryInfoPolicy2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_PolicyInformation)",hf_lsarpc_lsa_QueryInfoPolicy2_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryInfoPolicy2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_PolicyInformation(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryInfoPolicy2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QueryInfoPolicy2( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_PolicyInfo level, */
+/* IDL: [out] [ref] [switch_is(level)] lsa_PolicyInformation **info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QueryInfoPolicy2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QueryInfoPolicy2";
+       offset = lsarpc_dissect_element_lsa_QueryInfoPolicy2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QueryInfoPolicy2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QueryInfoPolicy2";
+       offset = lsarpc_dissect_element_lsa_QueryInfoPolicy2_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryInfoPolicy2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetInfoPolicy2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetInfoPolicy2_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInfoPolicy2_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_PolicyInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInfoPolicy2_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetInfoPolicy2_info_, NDR_POINTER_REF, "Pointer to Info (lsa_PolicyInformation)",hf_lsarpc_lsa_SetInfoPolicy2_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetInfoPolicy2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_PolicyInformation(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetInfoPolicy2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetInfoPolicy2( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_PolicyInfo level, */
+/* IDL: [ref] [in] [switch_is(level)] lsa_PolicyInformation *info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetInfoPolicy2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetInfoPolicy2";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetInfoPolicy2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetInfoPolicy2";
+       offset = lsarpc_dissect_element_lsa_SetInfoPolicy2_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetInfoPolicy2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetInfoPolicy2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_QueryTrustedDomainInfoByName_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfoByName_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_trusted_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_trusted_domain_, NDR_POINTER_REF, "Pointer to Trusted Domain (lsa_String)",hf_lsarpc_lsa_QueryTrustedDomainInfoByName_trusted_domain);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_trusted_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_QueryTrustedDomainInfoByName_trusted_domain,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfoByName_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info__, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_TrustedDomainInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QueryTrustedDomainInfoByName( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *trusted_domain, */
+/* IDL: [in] lsa_TrustDomInfoEnum level, */
+/* IDL: [out] [ref] [switch_is(level)] lsa_TrustedDomainInfo **info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QueryTrustedDomainInfoByName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QueryTrustedDomainInfoByName";
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QueryTrustedDomainInfoByName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QueryTrustedDomainInfoByName";
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_trusted_domain(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryTrustedDomainInfoByName_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetTrustedDomainInfoByName_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetTrustedDomainInfoByName_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_trusted_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_trusted_domain_, NDR_POINTER_REF, "Pointer to Trusted Domain (lsa_String)",hf_lsarpc_lsa_SetTrustedDomainInfoByName_trusted_domain);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_trusted_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_SetTrustedDomainInfoByName_trusted_domain,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetTrustedDomainInfoByName_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustedDomainInfo)",hf_lsarpc_lsa_SetTrustedDomainInfoByName_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_TrustedDomainInfo(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetTrustedDomainInfoByName_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetTrustedDomainInfoByName( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *trusted_domain, */
+/* IDL: [in] lsa_TrustDomInfoEnum level, */
+/* IDL: [ref] [in] [switch_is(level)] lsa_TrustedDomainInfo *info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetTrustedDomainInfoByName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetTrustedDomainInfoByName";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetTrustedDomainInfoByName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetTrustedDomainInfoByName";
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_trusted_domain(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetTrustedDomainInfoByName_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_EnumTrustedDomainsEx_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumTrustedDomainsEx_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_lsarpc_lsa_EnumTrustedDomainsEx_resume_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumTrustedDomainsEx_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_DomainListEx)",hf_lsarpc_lsa_EnumTrustedDomainsEx_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_DomainListEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_EnumTrustedDomainsEx_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_EnumTrustedDomainsEx_max_size, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_EnumTrustedDomainsEx( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [out] [ref] [in] uint32 *resume_handle, */
+/* IDL: [out] [ref] lsa_DomainListEx *domains, */
+/* IDL: [in] uint32 max_size */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_EnumTrustedDomainsEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_EnumTrustedDomainsEx";
+       offset = lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_EnumTrustedDomainsEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_EnumTrustedDomainsEx";
+       offset = lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_EnumTrustedDomainsEx_max_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx_policy_handle_, NDR_POINTER_REF, "Pointer to Policy Handle (policy_handle)",hf_lsarpc_lsa_CreateTrustedDomainEx_policy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_policy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomainEx_policy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustDomainInfoInfoEx)",hf_lsarpc_lsa_CreateTrustedDomainEx_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateTrustedDomainEx_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_auth_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx_auth_info_, NDR_POINTER_REF, "Pointer to Auth Info (lsa_TrustDomainInfoAuthInfo)",hf_lsarpc_lsa_CreateTrustedDomainEx_auth_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_auth_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateTrustedDomainEx_auth_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomainEx_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_CreateTrustedDomainEx_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomainEx_trustdom_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CreateTrustedDomainEx( */
+/* IDL: [ref] [in] policy_handle *policy_handle, */
+/* IDL: [ref] [in] lsa_TrustDomainInfoInfoEx *info, */
+/* IDL: [ref] [in] lsa_TrustDomainInfoAuthInfo *auth_info, */
+/* IDL: [in] lsa_TrustedAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *trustdom_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CreateTrustedDomainEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CreateTrustedDomainEx";
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CreateTrustedDomainEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CreateTrustedDomainEx";
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx_policy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx_auth_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_CloseTrustedDomainEx_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CloseTrustedDomainEx_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CloseTrustedDomainEx( */
+/* IDL: [out] [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CloseTrustedDomainEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CloseTrustedDomainEx";
+       offset = lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CloseTrustedDomainEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CloseTrustedDomainEx";
+       offset = lsarpc_dissect_element_lsa_CloseTrustedDomainEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_QueryDomainInformationPolicy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryDomainInformationPolicy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryDomainInformationPolicy_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info_, NDR_POINTER_REF, "Pointer to Info (lsa_DomainInformationPolicy)",hf_lsarpc_lsa_QueryDomainInformationPolicy_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info__, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_DomainInformationPolicy)",hf_lsarpc_lsa_QueryDomainInformationPolicy_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_DomainInformationPolicy(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_QueryDomainInformationPolicy_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_QueryDomainInformationPolicy( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [out] [ref] [switch_is(level)] lsa_DomainInformationPolicy **info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_QueryDomainInformationPolicy_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_QueryDomainInformationPolicy";
+       offset = lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_QueryDomainInformationPolicy_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_QueryDomainInformationPolicy";
+       offset = lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_QueryDomainInformationPolicy_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetDomainInformationPolicy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetDomainInformationPolicy_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_SetDomainInformationPolicy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetDomainInformationPolicy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetDomainInformationPolicy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetDomainInformationPolicy_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetDomainInformationPolicy_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetDomainInformationPolicy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_SetDomainInformationPolicy_info_, NDR_POINTER_UNIQUE, "Pointer to Info (lsa_DomainInformationPolicy)",hf_lsarpc_lsa_SetDomainInformationPolicy_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_SetDomainInformationPolicy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_lsa_DomainInformationPolicy(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_SetDomainInformationPolicy_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_SetDomainInformationPolicy( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [unique(1)] [in] [switch_is(level)] lsa_DomainInformationPolicy *info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_SetDomainInformationPolicy_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_SetDomainInformationPolicy";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_SetDomainInformationPolicy_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_SetDomainInformationPolicy";
+       offset = lsarpc_dissect_element_lsa_SetDomainInformationPolicy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetDomainInformationPolicy_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_SetDomainInformationPolicy_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomainByName_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenTrustedDomainByName_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_OpenTrustedDomainByName_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomainByName_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenTrustedDomainByName_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomainByName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_OpenTrustedDomainByName_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomainByName_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenTrustedDomainByName_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomainByName_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_OpenTrustedDomainByName_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_OpenTrustedDomainByName_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_OpenTrustedDomainByName_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_OpenTrustedDomainByName_trustdom_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_OpenTrustedDomainByName( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] lsa_String name, */
+/* IDL: [in] lsa_TrustedAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *trustdom_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_OpenTrustedDomainByName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_OpenTrustedDomainByName";
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomainByName_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_OpenTrustedDomainByName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_OpenTrustedDomainByName";
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomainByName_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomainByName_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_OpenTrustedDomainByName_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_TestCall( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_TestCall_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_TestCall";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_TestCall_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_TestCall";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupSids2_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids2_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids2_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_lsarpc_lsa_LookupSids2_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids2_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids2_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupSids2_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids2_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupSids2_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids2_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids2_names_, NDR_POINTER_REF, "Pointer to Names (lsa_TransNameArray2)",hf_lsarpc_lsa_LookupSids2_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransNameArray2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids2_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids2_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids2_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupSids2_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids2_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupOptions(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids2_lookup_options, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids2_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_ClientRevision(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids2_client_revision, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupSids2( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_SidArray *sids, */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransNameArray2 *names, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count, */
+/* IDL: [in] lsa_LookupOptions lookup_options, */
+/* IDL: [in] lsa_ClientRevision client_revision */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupSids2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupSids2";
+       offset = lsarpc_dissect_element_lsa_LookupSids2_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupSids2_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupSids2_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupSids2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupSids2";
+       offset = lsarpc_dissect_element_lsa_LookupSids2_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids2_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids2_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids2_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids2_lookup_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids2_client_revision(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupNames2_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames2_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames2_num_names, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames2_names_);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames2_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames2_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames2_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames2_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames2_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames2_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames2_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_TransSidArray2)",hf_lsarpc_lsa_LookupNames2_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransSidArray2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames2_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames2_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames2_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupNames2_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames2_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupOptions(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames2_lookup_options, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames2_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_ClientRevision(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames2_client_revision, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupNames2( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [range(0,1000)] uint32 num_names, */
+/* IDL: [in] [size_is(num_names)] lsa_String names[*], */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransSidArray2 *sids, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count, */
+/* IDL: [in] lsa_LookupOptions lookup_options, */
+/* IDL: [in] lsa_ClientRevision client_revision */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupNames2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupNames2";
+       offset = lsarpc_dissect_element_lsa_LookupNames2_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames2_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames2_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupNames2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupNames2";
+       offset = lsarpc_dissect_element_lsa_LookupNames2_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_num_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_lookup_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames2_client_revision(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_policy_handle_, NDR_POINTER_REF, "Pointer to Policy Handle (policy_handle)",hf_lsarpc_lsa_CreateTrustedDomainEx2_policy_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_policy_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomainEx2_policy_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_info_, NDR_POINTER_REF, "Pointer to Info (lsa_TrustDomainInfoInfoEx)",hf_lsarpc_lsa_CreateTrustedDomainEx2_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateTrustedDomainEx2_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_auth_info_internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_auth_info_internal_, NDR_POINTER_REF, "Pointer to Auth Info Internal (lsa_TrustDomainInfoAuthInfoInternal)",hf_lsarpc_lsa_CreateTrustedDomainEx2_auth_info_internal);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_auth_info_internal_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfoInternal(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_CreateTrustedDomainEx2_auth_info_internal,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomainEx2_access_mask, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_trustdom_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_trustdom_handle_, NDR_POINTER_REF, "Pointer to Trustdom Handle (policy_handle)",hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_trustdom_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CreateTrustedDomainEx2( */
+/* IDL: [ref] [in] policy_handle *policy_handle, */
+/* IDL: [ref] [in] lsa_TrustDomainInfoInfoEx *info, */
+/* IDL: [ref] [in] lsa_TrustDomainInfoAuthInfoInternal *auth_info_internal, */
+/* IDL: [in] lsa_TrustedAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *trustdom_handle */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CreateTrustedDomainEx2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CreateTrustedDomainEx2";
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_trustdom_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CreateTrustedDomainEx2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CreateTrustedDomainEx2";
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_policy_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_auth_info_internal(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_CreateTrustedDomainEx2_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRWRITE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRWRITE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRWRITE";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRWRITE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRWRITE";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRREAD( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRREAD_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRREAD";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRREAD_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRREAD";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRENUMERATE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRENUMERATE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRENUMERATE";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRENUMERATE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRENUMERATE";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRWRITEDOMAINCREDENTIALS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRWRITEDOMAINCREDENTIALS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRWRITEDOMAINCREDENTIALS";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRWRITEDOMAINCREDENTIALS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRWRITEDOMAINCREDENTIALS";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRREADDOMAINCREDENTIALS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRREADDOMAINCREDENTIALS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRREADDOMAINCREDENTIALS";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRREADDOMAINCREDENTIALS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRREADDOMAINCREDENTIALS";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRDELETE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRDELETE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRDELETE";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRDELETE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRDELETE";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRGETTARGETINFO( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRGETTARGETINFO_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRGETTARGETINFO";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRGETTARGETINFO_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRGETTARGETINFO";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRPROFILELOADED( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRPROFILELOADED_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRPROFILELOADED";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRPROFILELOADED_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRPROFILELOADED";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_LookupNames3_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames3_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames3_num_names, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_names_);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames3_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames3_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames3_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames3_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_TransSidArray3)",hf_lsarpc_lsa_LookupNames3_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransSidArray3(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames3_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames3_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames3_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupNames3_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames3_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupOptions(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames3_lookup_options, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames3_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_ClientRevision(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames3_client_revision, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupNames3( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [range(0,1000)] uint32 num_names, */
+/* IDL: [in] [size_is(num_names)] lsa_String names[*], */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransSidArray3 *sids, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count, */
+/* IDL: [in] lsa_LookupOptions lookup_options, */
+/* IDL: [in] lsa_ClientRevision client_revision */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupNames3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupNames3";
+       offset = lsarpc_dissect_element_lsa_LookupNames3_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames3_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames3_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupNames3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupNames3";
+       offset = lsarpc_dissect_element_lsa_LookupNames3_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_num_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_lookup_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames3_client_revision(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRGETSESSIONTYPES( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRGETSESSIONTYPES_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRGETSESSIONTYPES";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRGETSESSIONTYPES_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRGETSESSIONTYPES";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSARREGISTERAUDITEVENT( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSARREGISTERAUDITEVENT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSARREGISTERAUDITEVENT";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSARREGISTERAUDITEVENT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSARREGISTERAUDITEVENT";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSARGENAUDITEVENT( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSARGENAUDITEVENT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSARGENAUDITEVENT";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSARGENAUDITEVENT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSARGENAUDITEVENT";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSARUNREGISTERAUDITEVENT( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSARUNREGISTERAUDITEVENT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSARUNREGISTERAUDITEVENT";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSARUNREGISTERAUDITEVENT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSARUNREGISTERAUDITEVENT";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_lsaRQueryForestTrustInformation_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_lsaRQueryForestTrustInformation_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_trusted_domain_name_, NDR_POINTER_REF, "Pointer to Trusted Domain Name (lsa_String)",hf_lsarpc_lsa_lsaRQueryForestTrustInformation_trusted_domain_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_lsaRQueryForestTrustInformation_trusted_domain_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_lsaRQueryForestTrustInformation_unknown, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info_, NDR_POINTER_REF, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info__, NDR_POINTER_UNIQUE, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustInformation(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_lsaRQueryForestTrustInformation( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_String *trusted_domain_name, */
+/* IDL: [in] uint16 unknown, */
+/* IDL: [out] [ref] lsa_ForestTrustInformation **forest_trust_info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_lsaRQueryForestTrustInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_lsaRQueryForestTrustInformation";
+       offset = lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_forest_trust_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_lsaRQueryForestTrustInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_lsaRQueryForestTrustInformation";
+       offset = lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_trusted_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_lsaRQueryForestTrustInformation_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_lsarpc_lsa_lsaRSetForestTrustInformation_handle);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_lsaRSetForestTrustInformation_handle, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_trusted_domain_name_, NDR_POINTER_REF, "Pointer to Trusted Domain Name (lsa_StringLarge)",hf_lsarpc_lsa_lsaRSetForestTrustInformation_trusted_domain_name);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_lsaRSetForestTrustInformation_trusted_domain_name,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_highest_record_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_lsaRSetForestTrustInformation_highest_record_type, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_forest_trust_info_, NDR_POINTER_REF, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_lsarpc_lsa_lsaRSetForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustInformation(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_lsaRSetForestTrustInformation_forest_trust_info,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_check_only(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_lsaRSetForestTrustInformation_check_only, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info_, NDR_POINTER_REF, "Pointer to Collision Info (lsa_ForestTrustCollisionInfo)",hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info__, NDR_POINTER_UNIQUE, "Pointer to Collision Info (lsa_ForestTrustCollisionInfo)",hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_ForestTrustCollisionInfo(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_lsaRSetForestTrustInformation( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] [ref] lsa_StringLarge *trusted_domain_name, */
+/* IDL: [in] uint16 highest_record_type, */
+/* IDL: [in] [ref] lsa_ForestTrustInformation *forest_trust_info, */
+/* IDL: [in] uint8 check_only, */
+/* IDL: [out] [ref] lsa_ForestTrustCollisionInfo **collision_info */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_lsaRSetForestTrustInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_lsaRSetForestTrustInformation";
+       offset = lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_collision_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_lsaRSetForestTrustInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_lsaRSetForestTrustInformation";
+       offset = lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_trusted_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_highest_record_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_forest_trust_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_lsaRSetForestTrustInformation_check_only(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_CREDRRENAME( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_CREDRRENAME_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_CREDRRENAME";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_CREDRRENAME_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_CREDRRENAME";
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids3_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_lsarpc_lsa_LookupSids3_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids3_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids3_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupSids3_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids3_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupSids3_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids3_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids3_names_, NDR_POINTER_REF, "Pointer to Names (lsa_TransNameArray2)",hf_lsarpc_lsa_LookupSids3_names);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransNameArray2(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupSids3_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids3_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupSids3_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupSids3_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids3_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupOptions(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids3_lookup_options, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupSids3_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_ClientRevision(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupSids3_client_revision, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupSids3( */
+/* IDL: [in] [ref] lsa_SidArray *sids, */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransNameArray2 *names, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count, */
+/* IDL: [in] lsa_LookupOptions lookup_options, */
+/* IDL: [in] lsa_ClientRevision client_revision */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupSids3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupSids3";
+       offset = lsarpc_dissect_element_lsa_LookupSids3_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupSids3_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupSids3_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupSids3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupSids3";
+       offset = lsarpc_dissect_element_lsa_LookupSids3_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids3_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids3_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids3_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids3_lookup_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupSids3_client_revision(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames4_num_names, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames4_names_);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames4_names,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames4_domains_, NDR_POINTER_REF, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames4_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames4_domains__, NDR_POINTER_UNIQUE, "Pointer to Domains (lsa_RefDomainList)",hf_lsarpc_lsa_LookupNames4_domains);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_RefDomainList(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames4_domains,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames4_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_TransSidArray3)",hf_lsarpc_lsa_LookupNames4_sids);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_struct_lsa_TransSidArray3(tvb,offset,pinfo,tree,drep,hf_lsarpc_lsa_LookupNames4_sids,0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupNamesLevel(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames4_level, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, lsarpc_dissect_element_lsa_LookupNames4_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_lsarpc_lsa_LookupNames4_count);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames4_count, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_lookup_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_LookupOptions(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames4_lookup_options, 0);
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_element_lsa_LookupNames4_client_revision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = lsarpc_dissect_enum_lsa_ClientRevision(tvb, offset, pinfo, tree, drep, hf_lsarpc_lsa_LookupNames4_client_revision, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LookupNames4( */
+/* IDL: [in] [range(0,1000)] uint32 num_names, */
+/* IDL: [in] [size_is(num_names)] lsa_String names[*], */
+/* IDL: [out] [ref] lsa_RefDomainList **domains, */
+/* IDL: [out] [in] [ref] lsa_TransSidArray3 *sids, */
+/* IDL: [in] lsa_LookupNamesLevel level, */
+/* IDL: [out] [in] [ref] uint32 *count, */
+/* IDL: [in] lsa_LookupOptions lookup_options, */
+/* IDL: [in] lsa_ClientRevision client_revision */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LookupNames4_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LookupNames4";
+       offset = lsarpc_dissect_element_lsa_LookupNames4_domains(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames4_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = lsarpc_dissect_element_lsa_LookupNames4_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LookupNames4_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LookupNames4";
+       offset = lsarpc_dissect_element_lsa_LookupNames4_num_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames4_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames4_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames4_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames4_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames4_lookup_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = lsarpc_dissect_element_lsa_LookupNames4_client_revision(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSAROPENPOLICYSCE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSAROPENPOLICYSCE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSAROPENPOLICYSCE";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSAROPENPOLICYSCE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSAROPENPOLICYSCE";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSARADTREGISTERSECURITYEVENTSOURCE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSARADTREGISTERSECURITYEVENTSOURCE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSARADTREGISTERSECURITYEVENTSOURCE";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSARADTREGISTERSECURITYEVENTSOURCE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSARADTREGISTERSECURITYEVENTSOURCE";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE";
+       return offset;
+}
+
+/* IDL: NTSTATUS lsa_LSARADTREPORTSECURITYEVENT( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+lsarpc_dissect_lsa_LSARADTREPORTSECURITYEVENT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="lsa_LSARADTREPORTSECURITYEVENT";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_lsarpc_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+lsarpc_dissect_lsa_LSARADTREPORTSECURITYEVENT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="lsa_LSARADTREPORTSECURITYEVENT";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector lsarpc_dissectors[] = {
+       { 0, "lsa_Close",
+          lsarpc_dissect_lsa_Close_request, lsarpc_dissect_lsa_Close_response},
+       { 1, "lsa_Delete",
+          lsarpc_dissect_lsa_Delete_request, lsarpc_dissect_lsa_Delete_response},
+       { 2, "lsa_EnumPrivs",
+          lsarpc_dissect_lsa_EnumPrivs_request, lsarpc_dissect_lsa_EnumPrivs_response},
+       { 3, "lsa_QuerySecurity",
+          lsarpc_dissect_lsa_QuerySecurity_request, lsarpc_dissect_lsa_QuerySecurity_response},
+       { 4, "lsa_SetSecObj",
+          lsarpc_dissect_lsa_SetSecObj_request, lsarpc_dissect_lsa_SetSecObj_response},
+       { 5, "lsa_ChangePassword",
+          lsarpc_dissect_lsa_ChangePassword_request, lsarpc_dissect_lsa_ChangePassword_response},
+       { 6, "lsa_OpenPolicy",
+          lsarpc_dissect_lsa_OpenPolicy_request, lsarpc_dissect_lsa_OpenPolicy_response},
+       { 7, "lsa_QueryInfoPolicy",
+          lsarpc_dissect_lsa_QueryInfoPolicy_request, lsarpc_dissect_lsa_QueryInfoPolicy_response},
+       { 8, "lsa_SetInfoPolicy",
+          lsarpc_dissect_lsa_SetInfoPolicy_request, lsarpc_dissect_lsa_SetInfoPolicy_response},
+       { 9, "lsa_ClearAuditLog",
+          lsarpc_dissect_lsa_ClearAuditLog_request, lsarpc_dissect_lsa_ClearAuditLog_response},
+       { 10, "lsa_CreateAccount",
+          lsarpc_dissect_lsa_CreateAccount_request, lsarpc_dissect_lsa_CreateAccount_response},
+       { 11, "lsa_EnumAccounts",
+          lsarpc_dissect_lsa_EnumAccounts_request, lsarpc_dissect_lsa_EnumAccounts_response},
+       { 12, "lsa_CreateTrustedDomain",
+          lsarpc_dissect_lsa_CreateTrustedDomain_request, lsarpc_dissect_lsa_CreateTrustedDomain_response},
+       { 13, "lsa_EnumTrustDom",
+          lsarpc_dissect_lsa_EnumTrustDom_request, lsarpc_dissect_lsa_EnumTrustDom_response},
+       { 14, "lsa_LookupNames",
+          lsarpc_dissect_lsa_LookupNames_request, lsarpc_dissect_lsa_LookupNames_response},
+       { 15, "lsa_LookupSids",
+          lsarpc_dissect_lsa_LookupSids_request, lsarpc_dissect_lsa_LookupSids_response},
+       { 16, "lsa_CreateSecret",
+          lsarpc_dissect_lsa_CreateSecret_request, lsarpc_dissect_lsa_CreateSecret_response},
+       { 17, "lsa_OpenAccount",
+          lsarpc_dissect_lsa_OpenAccount_request, lsarpc_dissect_lsa_OpenAccount_response},
+       { 18, "lsa_EnumPrivsAccount",
+          lsarpc_dissect_lsa_EnumPrivsAccount_request, lsarpc_dissect_lsa_EnumPrivsAccount_response},
+       { 19, "lsa_AddPrivilegesToAccount",
+          lsarpc_dissect_lsa_AddPrivilegesToAccount_request, lsarpc_dissect_lsa_AddPrivilegesToAccount_response},
+       { 20, "lsa_RemovePrivilegesFromAccount",
+          lsarpc_dissect_lsa_RemovePrivilegesFromAccount_request, lsarpc_dissect_lsa_RemovePrivilegesFromAccount_response},
+       { 21, "lsa_GetQuotasForAccount",
+          lsarpc_dissect_lsa_GetQuotasForAccount_request, lsarpc_dissect_lsa_GetQuotasForAccount_response},
+       { 22, "lsa_SetQuotasForAccount",
+          lsarpc_dissect_lsa_SetQuotasForAccount_request, lsarpc_dissect_lsa_SetQuotasForAccount_response},
+       { 23, "lsa_GetSystemAccessAccount",
+          lsarpc_dissect_lsa_GetSystemAccessAccount_request, lsarpc_dissect_lsa_GetSystemAccessAccount_response},
+       { 24, "lsa_SetSystemAccessAccount",
+          lsarpc_dissect_lsa_SetSystemAccessAccount_request, lsarpc_dissect_lsa_SetSystemAccessAccount_response},
+       { 25, "lsa_OpenTrustedDomain",
+          lsarpc_dissect_lsa_OpenTrustedDomain_request, lsarpc_dissect_lsa_OpenTrustedDomain_response},
+       { 26, "lsa_QueryTrustedDomainInfo",
+          lsarpc_dissect_lsa_QueryTrustedDomainInfo_request, lsarpc_dissect_lsa_QueryTrustedDomainInfo_response},
+       { 27, "lsa_SetInformationTrustedDomain",
+          lsarpc_dissect_lsa_SetInformationTrustedDomain_request, lsarpc_dissect_lsa_SetInformationTrustedDomain_response},
+       { 28, "lsa_OpenSecret",
+          lsarpc_dissect_lsa_OpenSecret_request, lsarpc_dissect_lsa_OpenSecret_response},
+       { 29, "lsa_SetSecret",
+          lsarpc_dissect_lsa_SetSecret_request, lsarpc_dissect_lsa_SetSecret_response},
+       { 30, "lsa_QuerySecret",
+          lsarpc_dissect_lsa_QuerySecret_request, lsarpc_dissect_lsa_QuerySecret_response},
+       { 31, "lsa_LookupPrivValue",
+          lsarpc_dissect_lsa_LookupPrivValue_request, lsarpc_dissect_lsa_LookupPrivValue_response},
+       { 32, "lsa_LookupPrivName",
+          lsarpc_dissect_lsa_LookupPrivName_request, lsarpc_dissect_lsa_LookupPrivName_response},
+       { 33, "lsa_LookupPrivDisplayName",
+          lsarpc_dissect_lsa_LookupPrivDisplayName_request, lsarpc_dissect_lsa_LookupPrivDisplayName_response},
+       { 34, "lsa_DeleteObject",
+          lsarpc_dissect_lsa_DeleteObject_request, lsarpc_dissect_lsa_DeleteObject_response},
+       { 35, "lsa_EnumAccountsWithUserRight",
+          lsarpc_dissect_lsa_EnumAccountsWithUserRight_request, lsarpc_dissect_lsa_EnumAccountsWithUserRight_response},
+       { 36, "lsa_EnumAccountRights",
+          lsarpc_dissect_lsa_EnumAccountRights_request, lsarpc_dissect_lsa_EnumAccountRights_response},
+       { 37, "lsa_AddAccountRights",
+          lsarpc_dissect_lsa_AddAccountRights_request, lsarpc_dissect_lsa_AddAccountRights_response},
+       { 38, "lsa_RemoveAccountRights",
+          lsarpc_dissect_lsa_RemoveAccountRights_request, lsarpc_dissect_lsa_RemoveAccountRights_response},
+       { 39, "lsa_QueryTrustedDomainInfoBySid",
+          lsarpc_dissect_lsa_QueryTrustedDomainInfoBySid_request, lsarpc_dissect_lsa_QueryTrustedDomainInfoBySid_response},
+       { 40, "lsa_SetTrustedDomainInfo",
+          lsarpc_dissect_lsa_SetTrustedDomainInfo_request, lsarpc_dissect_lsa_SetTrustedDomainInfo_response},
+       { 41, "lsa_DeleteTrustedDomain",
+          lsarpc_dissect_lsa_DeleteTrustedDomain_request, lsarpc_dissect_lsa_DeleteTrustedDomain_response},
+       { 42, "lsa_StorePrivateData",
+          lsarpc_dissect_lsa_StorePrivateData_request, lsarpc_dissect_lsa_StorePrivateData_response},
+       { 43, "lsa_RetrievePrivateData",
+          lsarpc_dissect_lsa_RetrievePrivateData_request, lsarpc_dissect_lsa_RetrievePrivateData_response},
+       { 44, "lsa_OpenPolicy2",
+          lsarpc_dissect_lsa_OpenPolicy2_request, lsarpc_dissect_lsa_OpenPolicy2_response},
+       { 45, "lsa_GetUserName",
+          lsarpc_dissect_lsa_GetUserName_request, lsarpc_dissect_lsa_GetUserName_response},
+       { 46, "lsa_QueryInfoPolicy2",
+          lsarpc_dissect_lsa_QueryInfoPolicy2_request, lsarpc_dissect_lsa_QueryInfoPolicy2_response},
+       { 47, "lsa_SetInfoPolicy2",
+          lsarpc_dissect_lsa_SetInfoPolicy2_request, lsarpc_dissect_lsa_SetInfoPolicy2_response},
+       { 48, "lsa_QueryTrustedDomainInfoByName",
+          lsarpc_dissect_lsa_QueryTrustedDomainInfoByName_request, lsarpc_dissect_lsa_QueryTrustedDomainInfoByName_response},
+       { 49, "lsa_SetTrustedDomainInfoByName",
+          lsarpc_dissect_lsa_SetTrustedDomainInfoByName_request, lsarpc_dissect_lsa_SetTrustedDomainInfoByName_response},
+       { 50, "lsa_EnumTrustedDomainsEx",
+          lsarpc_dissect_lsa_EnumTrustedDomainsEx_request, lsarpc_dissect_lsa_EnumTrustedDomainsEx_response},
+       { 51, "lsa_CreateTrustedDomainEx",
+          lsarpc_dissect_lsa_CreateTrustedDomainEx_request, lsarpc_dissect_lsa_CreateTrustedDomainEx_response},
+       { 52, "lsa_CloseTrustedDomainEx",
+          lsarpc_dissect_lsa_CloseTrustedDomainEx_request, lsarpc_dissect_lsa_CloseTrustedDomainEx_response},
+       { 53, "lsa_QueryDomainInformationPolicy",
+          lsarpc_dissect_lsa_QueryDomainInformationPolicy_request, lsarpc_dissect_lsa_QueryDomainInformationPolicy_response},
+       { 54, "lsa_SetDomainInformationPolicy",
+          lsarpc_dissect_lsa_SetDomainInformationPolicy_request, lsarpc_dissect_lsa_SetDomainInformationPolicy_response},
+       { 55, "lsa_OpenTrustedDomainByName",
+          lsarpc_dissect_lsa_OpenTrustedDomainByName_request, lsarpc_dissect_lsa_OpenTrustedDomainByName_response},
+       { 56, "lsa_TestCall",
+          lsarpc_dissect_lsa_TestCall_request, lsarpc_dissect_lsa_TestCall_response},
+       { 57, "lsa_LookupSids2",
+          lsarpc_dissect_lsa_LookupSids2_request, lsarpc_dissect_lsa_LookupSids2_response},
+       { 58, "lsa_LookupNames2",
+          lsarpc_dissect_lsa_LookupNames2_request, lsarpc_dissect_lsa_LookupNames2_response},
+       { 59, "lsa_CreateTrustedDomainEx2",
+          lsarpc_dissect_lsa_CreateTrustedDomainEx2_request, lsarpc_dissect_lsa_CreateTrustedDomainEx2_response},
+       { 60, "lsa_CREDRWRITE",
+          lsarpc_dissect_lsa_CREDRWRITE_request, lsarpc_dissect_lsa_CREDRWRITE_response},
+       { 61, "lsa_CREDRREAD",
+          lsarpc_dissect_lsa_CREDRREAD_request, lsarpc_dissect_lsa_CREDRREAD_response},
+       { 62, "lsa_CREDRENUMERATE",
+          lsarpc_dissect_lsa_CREDRENUMERATE_request, lsarpc_dissect_lsa_CREDRENUMERATE_response},
+       { 63, "lsa_CREDRWRITEDOMAINCREDENTIALS",
+          lsarpc_dissect_lsa_CREDRWRITEDOMAINCREDENTIALS_request, lsarpc_dissect_lsa_CREDRWRITEDOMAINCREDENTIALS_response},
+       { 64, "lsa_CREDRREADDOMAINCREDENTIALS",
+          lsarpc_dissect_lsa_CREDRREADDOMAINCREDENTIALS_request, lsarpc_dissect_lsa_CREDRREADDOMAINCREDENTIALS_response},
+       { 65, "lsa_CREDRDELETE",
+          lsarpc_dissect_lsa_CREDRDELETE_request, lsarpc_dissect_lsa_CREDRDELETE_response},
+       { 66, "lsa_CREDRGETTARGETINFO",
+          lsarpc_dissect_lsa_CREDRGETTARGETINFO_request, lsarpc_dissect_lsa_CREDRGETTARGETINFO_response},
+       { 67, "lsa_CREDRPROFILELOADED",
+          lsarpc_dissect_lsa_CREDRPROFILELOADED_request, lsarpc_dissect_lsa_CREDRPROFILELOADED_response},
+       { 68, "lsa_LookupNames3",
+          lsarpc_dissect_lsa_LookupNames3_request, lsarpc_dissect_lsa_LookupNames3_response},
+       { 69, "lsa_CREDRGETSESSIONTYPES",
+          lsarpc_dissect_lsa_CREDRGETSESSIONTYPES_request, lsarpc_dissect_lsa_CREDRGETSESSIONTYPES_response},
+       { 70, "lsa_LSARREGISTERAUDITEVENT",
+          lsarpc_dissect_lsa_LSARREGISTERAUDITEVENT_request, lsarpc_dissect_lsa_LSARREGISTERAUDITEVENT_response},
+       { 71, "lsa_LSARGENAUDITEVENT",
+          lsarpc_dissect_lsa_LSARGENAUDITEVENT_request, lsarpc_dissect_lsa_LSARGENAUDITEVENT_response},
+       { 72, "lsa_LSARUNREGISTERAUDITEVENT",
+          lsarpc_dissect_lsa_LSARUNREGISTERAUDITEVENT_request, lsarpc_dissect_lsa_LSARUNREGISTERAUDITEVENT_response},
+       { 73, "lsa_lsaRQueryForestTrustInformation",
+          lsarpc_dissect_lsa_lsaRQueryForestTrustInformation_request, lsarpc_dissect_lsa_lsaRQueryForestTrustInformation_response},
+       { 74, "lsa_lsaRSetForestTrustInformation",
+          lsarpc_dissect_lsa_lsaRSetForestTrustInformation_request, lsarpc_dissect_lsa_lsaRSetForestTrustInformation_response},
+       { 75, "lsa_CREDRRENAME",
+          lsarpc_dissect_lsa_CREDRRENAME_request, lsarpc_dissect_lsa_CREDRRENAME_response},
+       { 76, "lsa_LookupSids3",
+          lsarpc_dissect_lsa_LookupSids3_request, lsarpc_dissect_lsa_LookupSids3_response},
+       { 77, "lsa_LookupNames4",
+          lsarpc_dissect_lsa_LookupNames4_request, lsarpc_dissect_lsa_LookupNames4_response},
+       { 78, "lsa_LSAROPENPOLICYSCE",
+          lsarpc_dissect_lsa_LSAROPENPOLICYSCE_request, lsarpc_dissect_lsa_LSAROPENPOLICYSCE_response},
+       { 79, "lsa_LSARADTREGISTERSECURITYEVENTSOURCE",
+          lsarpc_dissect_lsa_LSARADTREGISTERSECURITYEVENTSOURCE_request, lsarpc_dissect_lsa_LSARADTREGISTERSECURITYEVENTSOURCE_response},
+       { 80, "lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE",
+          lsarpc_dissect_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE_request, lsarpc_dissect_lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE_response},
+       { 81, "lsa_LSARADTREPORTSECURITYEVENT",
+          lsarpc_dissect_lsa_LSARADTREPORTSECURITYEVENT_request, lsarpc_dissect_lsa_LSARADTREPORTSECURITYEVENT_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_lsarpc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_lsarpc_lsa_TrustedDomainInfo_enc_types,
+         { "Enc Types", "lsarpc.lsa_TrustedDomainInfo.enc_types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSystemAccessAccount_handle,
+         { "Handle", "lsarpc.lsa_SetSystemAccessAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE,
+         { "Lsa Trust Attribute Forest Transitive", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_FOREST_TRANSITIVE_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AsciiStringLarge_size,
+         { "Size", "lsarpc.lsa_AsciiStringLarge.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivName_luid,
+         { "Luid", "lsarpc.lsa_LookupPrivName.luid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_count,
+         { "Outgoing Count", "lsarpc.lsa_TrustDomainInfoAuthInfo.outgoing_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRSetForestTrustInformation_trusted_domain_name,
+         { "Trusted Domain Name", "lsarpc.lsa_lsaRSetForestTrustInformation.trusted_domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx2_auth_info_internal,
+         { "Auth Info Internal", "lsarpc.lsa_CreateTrustedDomainEx2.auth_info_internal", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_Delete_handle,
+         { "Handle", "lsarpc.lsa_Delete.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_account_domain,
+         { "Account Domain", "lsarpc.lsa_PolicyInformation.account_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoKerberos_clock_skew,
+         { "Clock Skew", "lsarpc.lsa_DomainInfoKerberos.clock_skew", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL,
+         { "Lsa Trust Attribute Treat As External", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_ADMIN,
+         { "Lsa Nb Disabled Admin", "lsarpc.lsa_ForestTrustCollisionXrefFlags.LSA_NB_DISABLED_ADMIN", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_ADMIN_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustData_domain_info,
+         { "Domain Info", "lsarpc.lsa_ForestTrustData.domain_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AddPrivilegesToAccount_handle,
+         { "Handle", "lsarpc.lsa_AddPrivilegesToAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ObjectAttribute_sec_qos,
+         { "Sec Qos", "lsarpc.lsa_ObjectAttribute.sec_qos", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_handle,
+         { "Handle", "lsarpc.lsa_LookupNames3.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_level,
+         { "Level", "lsarpc.lsa_QueryTrustedDomainInfoBySid.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_TrustDomInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomain_sid,
+         { "Sid", "lsarpc.lsa_OpenTrustedDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccounts_handle,
+         { "Handle", "lsarpc.lsa_EnumAccounts.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateAccount_sid,
+         { "Sid", "lsarpc.lsa_CreateAccount.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ReplicaSourceInfo_account,
+         { "Account", "lsarpc.lsa_ReplicaSourceInfo.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryDomainInformationPolicy_handle,
+         { "Handle", "lsarpc.lsa_QueryDomainInformationPolicy.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomain_info,
+         { "Info", "lsarpc.lsa_CreateTrustedDomain.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoControllers_netbios_names,
+         { "Netbios Names", "lsarpc.lsa_TrustDomainInfoControllers.netbios_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS,
+         { "Lsa Policy Set Default Quota Limits", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivilegeSet_set,
+         { "Set", "lsarpc.lsa_PrivilegeSet.set", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecret_new_val,
+         { "New Val", "lsarpc.lsa_QuerySecret.new_val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid2_unknown,
+         { "Unknown", "lsarpc.lsa_TranslatedSid2.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_handle,
+         { "Handle", "lsarpc.lsa_LookupSids2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainListEx_domains,
+         { "Domains", "lsarpc.lsa_DomainListEx.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRSetForestTrustInformation_check_only,
+         { "Check Only", "lsarpc.lsa_lsaRSetForestTrustInformation.check_only", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_num_names,
+         { "Num Names", "lsarpc.lsa_LookupNames3.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustedDomainsEx_max_size,
+         { "Max Size", "lsarpc.lsa_EnumTrustedDomainsEx.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivName_handle,
+         { "Handle", "lsarpc.lsa_LookupPrivName.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionFlags_flags,
+         { "Flags", "lsarpc.lsa_ForestTrustCollisionFlags.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenAccount_handle,
+         { "Handle", "lsarpc.lsa_OpenAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenSecret_access_mask,
+         { "Access Mask", "lsarpc.lsa_OpenSecret.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecurity_sdbuf,
+         { "Sdbuf", "lsarpc.lsa_QuerySecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfoByName_trusted_domain,
+         { "Trusted Domain", "lsarpc.lsa_SetTrustedDomainInfoByName.trusted_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomain_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_CreateTrustedDomain.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumPrivs_handle,
+         { "Handle", "lsarpc.lsa_EnumPrivs.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LUID_high,
+         { "High", "lsarpc.lsa_LUID.high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryInfoPolicy_handle,
+         { "Handle", "lsarpc.lsa_QueryInfoPolicy.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_audit_events,
+         { "Audit Events", "lsarpc.lsa_PolicyInformation.audit_events", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_auth_info,
+         { "Auth Info", "lsarpc.lsa_TrustedDomainInfo.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE,
+         { "Lsa Policy Create Privilege", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_CREATE_PRIVILEGE", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_CREATE_PRIVILEGE_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoKerberos_service_tkt_lifetime,
+         { "Service Tkt Lifetime", "lsarpc.lsa_DomainInfoKerberos.service_tkt_lifetime", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateSecret_access_mask,
+         { "Access Mask", "lsarpc.lsa_CreateSecret.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_GetUserName_authority_name,
+         { "Authority Name", "lsarpc.lsa_GetUserName.authority_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfo_dom_sid,
+         { "Dom Sid", "lsarpc.lsa_SetTrustedDomainInfo.dom_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditFullSetInfo_shutdown_on_full,
+         { "Shutdown On Full", "lsarpc.lsa_AuditFullSetInfo.shutdown_on_full", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DeleteTrustedDomain_dom_sid,
+         { "Dom Sid", "lsarpc.lsa_DeleteTrustedDomain.dom_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_names,
+         { "Names", "lsarpc.lsa_LookupNames4.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustRecord_forest_trust_data,
+         { "Forest Trust Data", "lsarpc.lsa_ForestTrustRecord.forest_trust_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND,
+         { "Lsa Trust Direction Outbound", "lsarpc.lsa_TrustDirection.LSA_TRUST_DIRECTION_OUTBOUND", FT_BOOLEAN, 32, TFS(&lsa_TrustDirection_LSA_TRUST_DIRECTION_OUTBOUND_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_role,
+         { "Role", "lsarpc.lsa_PolicyInformation.role", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_audit_log,
+         { "Audit Log", "lsarpc.lsa_PolicyInformation.audit_log", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_client_revision,
+         { "Client Revision", "lsarpc.lsa_LookupNames2.client_revision", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ClientRevision_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_dns,
+         { "Dns", "lsarpc.lsa_PolicyInformation.dns", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRSetForestTrustInformation_handle,
+         { "Handle", "lsarpc.lsa_lsaRSetForestTrustInformation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRQueryForestTrustInformation_trusted_domain_name,
+         { "Trusted Domain Name", "lsarpc.lsa_lsaRQueryForestTrustInformation.trusted_domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoByName_trusted_domain,
+         { "Trusted Domain", "lsarpc.lsa_QueryTrustedDomainInfoByName.trusted_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy2_handle,
+         { "Handle", "lsarpc.lsa_OpenPolicy2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccountsWithUserRight_handle,
+         { "Handle", "lsarpc.lsa_EnumAccountsWithUserRight.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_count,
+         { "Incoming Count", "lsarpc.lsa_TrustDomainInfoAuthInfo.incoming_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_mod,
+         { "Mod", "lsarpc.lsa_PolicyInformation.mod", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_client_revision,
+         { "Client Revision", "lsarpc.lsa_LookupSids3.client_revision", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ClientRevision_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemoveAccountRights_rights,
+         { "Rights", "lsarpc.lsa_RemoveAccountRights.rights", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSecret_sec_handle,
+         { "Sec Handle", "lsarpc.lsa_SetSecret.sec_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET,
+         { "Lsa Policy Create Secret", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_CREATE_SECRET", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_CREATE_SECRET_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomainByName_access_mask,
+         { "Access Mask", "lsarpc.lsa_OpenTrustedDomainByName.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RightAttribute_name,
+         { "Name", "lsarpc.lsa_RightAttribute.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoPassword_old_password,
+         { "Old Password", "lsarpc.lsa_TrustDomainInfoPassword.old_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_renewaltime,
+         { "User Tkt Renewaltime", "lsarpc.lsa_DomainInfoKerberos.user_tkt_renewaltime", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LUID_low,
+         { "Low", "lsarpc.lsa_LUID.low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_names,
+         { "Names", "lsarpc.lsa_LookupNames3.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_dom_sid,
+         { "Dom Sid", "lsarpc.lsa_QueryTrustedDomainInfoBySid.dom_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSecObj_sdbuf,
+         { "Sdbuf", "lsarpc.lsa_SetSecObj.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemoveAccountRights_remove_all,
+         { "Remove All", "lsarpc.lsa_RemoveAccountRights.remove_all", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids_names,
+         { "Names", "lsarpc.lsa_LookupSids.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomain_access_mask,
+         { "Access Mask", "lsarpc.lsa_OpenTrustedDomain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RetrievePrivateData_handle,
+         { "Handle", "lsarpc.lsa_RetrievePrivateData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RefDomainList_max_size,
+         { "Max Size", "lsarpc.lsa_RefDomainList.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransSidArray_sids,
+         { "Sids", "lsarpc.lsa_TransSidArray.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_attributes,
+         { "Trust Attributes", "lsarpc.lsa_TrustDomainInfoInfoEx.trust_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateSecret_sec_handle,
+         { "Sec Handle", "lsarpc.lsa_CreateSecret.sec_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSecret_old_val,
+         { "Old Val", "lsarpc.lsa_SetSecret.old_val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSecObj_sec_info,
+         { "Sec Info", "lsarpc.lsa_SetSecObj.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoBuffer_last_update_time,
+         { "Last Update Time", "lsarpc.lsa_TrustDomainInfoBuffer.last_update_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_client_revision,
+         { "Client Revision", "lsarpc.lsa_LookupSids2.client_revision", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ClientRevision_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DnsDomainInfo_dns_forest,
+         { "Dns Forest", "lsarpc.lsa_DnsDomainInfo.dns_forest", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryDomainInformationPolicy_info,
+         { "Info", "lsarpc.lsa_QueryDomainInformationPolicy.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustDomainInfo_netbios_domain_name,
+         { "Netbios Domain Name", "lsarpc.lsa_ForestTrustDomainInfo.netbios_domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_direction,
+         { "Trust Direction", "lsarpc.lsa_TrustDomainInfoInfoEx.trust_direction", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_sids,
+         { "Sids", "lsarpc.lsa_LookupNames3.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ObjectAttribute_sec_desc,
+         { "Sec Desc", "lsarpc.lsa_ObjectAttribute.sec_desc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditLogInfo_retention_time,
+         { "Retention Time", "lsarpc.lsa_AuditLogInfo.retention_time", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DnsDomainInfo_name,
+         { "Name", "lsarpc.lsa_DnsDomainInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid2_sid_index,
+         { "Sid Index", "lsarpc.lsa_TranslatedSid2.sid_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecret_old_mtime,
+         { "Old Mtime", "lsarpc.lsa_QuerySecret.old_mtime", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomain_handle,
+         { "Handle", "lsarpc.lsa_OpenTrustedDomain.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransNameArray_names,
+         { "Names", "lsarpc.lsa_TransNameArray.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RefDomainList_count,
+         { "Count", "lsarpc.lsa_RefDomainList.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryInfoPolicy2_info,
+         { "Info", "lsarpc.lsa_QueryInfoPolicy2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_GetSystemAccessAccount_access_mask,
+         { "Access Mask", "lsarpc.lsa_GetSystemAccessAccount.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInformationPolicy_kerberos_info,
+         { "Kerberos Info", "lsarpc.lsa_DomainInformationPolicy.kerberos_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryInfoPolicy_info,
+         { "Info", "lsarpc.lsa_QueryInfoPolicy.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateAccount_acct_handle,
+         { "Acct Handle", "lsarpc.lsa_CreateAccount.acct_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditLogInfo_maximum_log_size,
+         { "Maximum Log Size", "lsarpc.lsa_AuditLogInfo.maximum_log_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditLogInfo_shutdown_in_progress,
+         { "Shutdown In Progress", "lsarpc.lsa_AuditLogInfo.shutdown_in_progress", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenSecret_handle,
+         { "Handle", "lsarpc.lsa_OpenSecret.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoName_netbios_name,
+         { "Netbios Name", "lsarpc.lsa_TrustDomainInfoName.netbios_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInformationTrustedDomain_info,
+         { "Info", "lsarpc.lsa_SetInformationTrustedDomain.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_handle,
+         { "Handle", "lsarpc.lsa_LookupNames.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustDom_max_size,
+         { "Max Size", "lsarpc.lsa_EnumTrustDom.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE,
+         { "Lsa Trust Attribute Non Transitive", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_NON_TRANSITIVE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoPassword_password,
+         { "Password", "lsarpc.lsa_TrustDomainInfoPassword.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ObjectAttribute_object_name,
+         { "Object Name", "lsarpc.lsa_ObjectAttribute.object_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRSetForestTrustInformation_highest_record_type,
+         { "Highest Record Type", "lsarpc.lsa_lsaRSetForestTrustInformation.highest_record_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustDom_resume_handle,
+         { "Resume Handle", "lsarpc.lsa_EnumTrustDom.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QosInfo_impersonation_level,
+         { "Impersonation Level", "lsarpc.lsa_QosInfo.impersonation_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryInfoPolicy2_level,
+         { "Level", "lsarpc.lsa_QueryInfoPolicy2.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_PolicyInfo_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid3_sid,
+         { "Sid", "lsarpc.lsa_TranslatedSid3.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoBasic_netbios_name,
+         { "Netbios Name", "lsarpc.lsa_TrustDomainInfoBasic.netbios_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN,
+         { "Lsa Policy Audit Log Admin", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_AUDIT_LOG_ADMIN", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_AUDIT_LOG_ADMIN_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustInformation_entries,
+         { "Entries", "lsarpc.lsa_ForestTrustInformation.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustData_top_level_name_ex,
+         { "Top Level Name Ex", "lsarpc.lsa_ForestTrustData.top_level_name_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DefaultQuotaInfo_non_paged_pool,
+         { "Non Paged Pool", "lsarpc.lsa_DefaultQuotaInfo.non_paged_pool", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustBinaryData_length,
+         { "Length", "lsarpc.lsa_ForestTrustBinaryData.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DefaultQuotaInfo_unknown,
+         { "Unknown", "lsarpc.lsa_DefaultQuotaInfo.unknown", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QosInfo_len,
+         { "Len", "lsarpc.lsa_QosInfo.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_level,
+         { "Level", "lsarpc.lsa_LookupNames3.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivDisplayName_disp_name,
+         { "Disp Name", "lsarpc.lsa_LookupPrivDisplayName.disp_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_level,
+         { "Level", "lsarpc.lsa_LookupNames.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_count,
+         { "Count", "lsarpc.lsa_LookupNames4.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_names,
+         { "Names", "lsarpc.lsa_LookupNames.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX,
+         { "Lsa Trusted Set Posix", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_SET_POSIX", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_SET_POSIX_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES,
+         { "Lsa Account Adjust Privileges", "lsarpc.lsa_AccountAccessMask.LSA_ACCOUNT_ADJUST_PRIVILEGES", FT_BOOLEAN, 32, TFS(&lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_PRIVILEGES_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivEntry_luid,
+         { "Luid", "lsarpc.lsa_PrivEntry.luid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccounts_resume_handle,
+         { "Resume Handle", "lsarpc.lsa_EnumAccounts.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_level,
+         { "Level", "lsarpc.lsa_LookupSids3.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT,
+         { "Lsa Nb Disabled Conflict", "lsarpc.lsa_ForestTrustCollisionXrefFlags.LSA_NB_DISABLED_CONFLICT", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionXrefFlags_LSA_NB_DISABLED_CONFLICT_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_DATA_BUF_data,
+         { "Data", "lsarpc.lsa_DATA_BUF.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomainByName_name,
+         { "Name", "lsarpc.lsa_OpenTrustedDomainByName.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainListEx_count,
+         { "Count", "lsarpc.lsa_DomainListEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DeleteObject_handle,
+         { "Handle", "lsarpc.lsa_DeleteObject.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DefaultQuotaInfo_pagefile,
+         { "Pagefile", "lsarpc.lsa_DefaultQuotaInfo.pagefile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DefaultQuotaInfo_min_wss,
+         { "Min Wss", "lsarpc.lsa_DefaultQuotaInfo.min_wss", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustData_top_level_name,
+         { "Top Level Name", "lsarpc.lsa_ForestTrustData.top_level_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName2_sid_type,
+         { "Sid Type", "lsarpc.lsa_TranslatedName2.sid_type", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_SidType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivDisplayName_returned_language_id,
+         { "Returned Language Id", "lsarpc.lsa_LookupPrivDisplayName.returned_language_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSystemAccessAccount_access_mask,
+         { "Access Mask", "lsarpc.lsa_SetSystemAccessAccount.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomain_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_OpenTrustedDomain.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfo_info_ex,
+         { "Info Ex", "lsarpc.lsa_TrustDomainInfoFullInfo.info_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustRecord_type,
+         { "Type", "lsarpc.lsa_ForestTrustRecord.type", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ForestTrustRecordType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DATA_BUF2_data,
+         { "Data", "lsarpc.lsa_DATA_BUF2.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH,
+         { "Lsa Trusted Set Auth", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_SET_AUTH", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_SET_AUTH_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemoveAccountRights_handle,
+         { "Handle", "lsarpc.lsa_RemoveAccountRights.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_full_info_internal,
+         { "Full Info Internal", "lsarpc.lsa_TrustedDomainInfo.full_info_internal", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION,
+         { "Lsa Trust Attribute Cross Organization", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_count,
+         { "Count", "lsarpc.lsa_LookupNames3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_client_revision,
+         { "Client Revision", "lsarpc.lsa_LookupNames3.client_revision", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ClientRevision_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRSetForestTrustInformation_forest_trust_info,
+         { "Forest Trust Info", "lsarpc.lsa_lsaRSetForestTrustInformation.forest_trust_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustedDomainsEx_resume_handle,
+         { "Resume Handle", "lsarpc.lsa_EnumTrustedDomainsEx.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransNameArray2_count,
+         { "Count", "lsarpc.lsa_TransNameArray2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfo_sid,
+         { "Sid", "lsarpc.lsa_DomainInfo.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoByName_level,
+         { "Level", "lsarpc.lsa_QueryTrustedDomainInfoByName.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_TrustDomInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx_sid,
+         { "Sid", "lsarpc.lsa_TrustDomainInfoInfoEx.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_previous_auth_info,
+         { "Incoming Previous Auth Info", "lsarpc.lsa_TrustDomainInfoAuthInfo.incoming_previous_auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_domains,
+         { "Domains", "lsarpc.lsa_LookupNames3.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx2_access_mask,
+         { "Access Mask", "lsarpc.lsa_CreateTrustedDomainEx2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfo_info,
+         { "Info", "lsarpc.lsa_SetTrustedDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSecret_new_val,
+         { "New Val", "lsarpc.lsa_SetSecret.new_val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_String_string,
+         { "String", "lsarpc.lsa_String.string", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivArray_count,
+         { "Count", "lsarpc.lsa_PrivArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfo_level,
+         { "Level", "lsarpc.lsa_QueryTrustedDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_TrustDomInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DATA_BUF_size,
+         { "Size", "lsarpc.lsa_DATA_BUF.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryDomainInformationPolicy_level,
+         { "Level", "lsarpc.lsa_QueryDomainInformationPolicy.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_StorePrivateData_val,
+         { "Val", "lsarpc.lsa_StorePrivateData.val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionRecord_index,
+         { "Index", "lsarpc.lsa_ForestTrustCollisionRecord.index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_StringLarge_string,
+         { "String", "lsarpc.lsa_StringLarge.string", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfo_name,
+         { "Name", "lsarpc.lsa_DomainInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AsciiString_size,
+         { "Size", "lsarpc.lsa_AsciiString.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_ADMIN,
+         { "Lsa Tln Disabled Admin", "lsarpc.lsa_ForestTrustCollisionTDOFlags.LSA_TLN_DISABLED_ADMIN", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_ADMIN_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_NEW,
+         { "Lsa Tln Disabled New", "lsarpc.lsa_ForestTrustCollisionTDOFlags.LSA_TLN_DISABLED_NEW", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_NEW_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_sids,
+         { "Sids", "lsarpc.lsa_LookupNames2.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetDomainInformationPolicy_level,
+         { "Level", "lsarpc.lsa_SetDomainInformationPolicy.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT,
+         { "Lsa Policy Kerberos Validate Client", "lsarpc.lsa_krbAuthenticationOptions.LSA_POLICY_KERBEROS_VALIDATE_CLIENT", FT_BOOLEAN, 32, TFS(&lsa_krbAuthenticationOptions_LSA_POLICY_KERBEROS_VALIDATE_CLIENT_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInfoPolicy2_info,
+         { "Info", "lsarpc.lsa_SetInfoPolicy2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND,
+         { "Lsa Trust Direction Inbound", "lsarpc.lsa_TrustDirection.LSA_TRUST_DIRECTION_INBOUND", FT_BOOLEAN, 32, TFS(&lsa_TrustDirection_LSA_TRUST_DIRECTION_INBOUND_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AsciiStringLarge_string,
+         { "String", "lsarpc.lsa_AsciiStringLarge.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_level,
+         { "Level", "lsarpc.lsa_LookupSids2.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenSecret_sec_handle,
+         { "Sec Handle", "lsarpc.lsa_OpenSecret.sec_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfo_incoming_current_auth_info,
+         { "Incoming Current Auth Info", "lsarpc.lsa_TrustDomainInfoAuthInfo.incoming_current_auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInformationPolicy_efs_info,
+         { "Efs Info", "lsarpc.lsa_DomainInformationPolicy.efs_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccounts_sids,
+         { "Sids", "lsarpc.lsa_EnumAccounts.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ReplicaSourceInfo_source,
+         { "Source", "lsarpc.lsa_ReplicaSourceInfo.source", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecurity_sec_info,
+         { "Sec Info", "lsarpc.lsa_QuerySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionRecord_name,
+         { "Name", "lsarpc.lsa_ForestTrustCollisionRecord.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_info_ex2_internal,
+         { "Info Ex2 Internal", "lsarpc.lsa_TrustedDomainInfo.info_ex2_internal", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_domains,
+         { "Domains", "lsarpc.lsa_LookupSids2.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustedDomainsEx_domains,
+         { "Domains", "lsarpc.lsa_EnumTrustedDomainsEx.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccounts_num_entries,
+         { "Num Entries", "lsarpc.lsa_EnumAccounts.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfo_posix_offset,
+         { "Posix Offset", "lsarpc.lsa_TrustDomainInfoFullInfo.posix_offset", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx_trust_type,
+         { "Trust Type", "lsarpc.lsa_TrustDomainInfoInfoEx.trust_type", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_TrustType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DnsDomainInfo_sid,
+         { "Sid", "lsarpc.lsa_DnsDomainInfo.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_num_names,
+         { "Num Names", "lsarpc.lsa_LookupNames.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustDomainInfo_domain_sid,
+         { "Domain Sid", "lsarpc.lsa_ForestTrustDomainInfo.domain_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids_handle,
+         { "Handle", "lsarpc.lsa_LookupSids.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AsciiString_string,
+         { "String", "lsarpc.lsa_AsciiString.string", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_info_ex,
+         { "Info Ex", "lsarpc.lsa_TrustedDomainInfo.info_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx2_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_CreateTrustedDomainEx2.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemovePrivilegesFromAccount_handle,
+         { "Handle", "lsarpc.lsa_RemovePrivilegesFromAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateAccount_handle,
+         { "Handle", "lsarpc.lsa_CreateAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME,
+         { "Lsa Trusted Query Domain Name", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_QUERY_DOMAIN_NAME", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_DOMAIN_NAME_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_name,
+         { "Name", "lsarpc.lsa_TrustedDomainInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_length,
+         { "Forest Trust Length", "lsarpc.lsa_TrustDomainInfoInfoEx2Internal.forest_trust_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccountRights_rights,
+         { "Rights", "lsarpc.lsa_EnumAccountRights.rights", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetSecObj_handle,
+         { "Handle", "lsarpc.lsa_SetSecObj.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivDisplayName_name,
+         { "Name", "lsarpc.lsa_LookupPrivDisplayName.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION,
+         { "Lsa Policy Get Private Information", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_GET_PRIVATE_INFORMATION", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_GET_PRIVATE_INFORMATION_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy2_access_mask,
+         { "Access Mask", "lsarpc.lsa_OpenPolicy2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_auth_info,
+         { "Auth Info", "lsarpc.lsa_TrustDomainInfoFullInfo2Internal.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInfoPolicy2_handle,
+         { "Handle", "lsarpc.lsa_SetInfoPolicy2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_num_names,
+         { "Num Names", "lsarpc.lsa_LookupNames2.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInfoPolicy2_level,
+         { "Level", "lsarpc.lsa_SetInfoPolicy2.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_PolicyInfo_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumPrivsAccount_privs,
+         { "Privs", "lsarpc.lsa_EnumPrivsAccount.privs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_controllers,
+         { "Controllers", "lsarpc.lsa_TrustedDomainInfo.controllers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenAccount_access_mask,
+         { "Access Mask", "lsarpc.lsa_OpenAccount.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumPrivs_privs,
+         { "Privs", "lsarpc.lsa_EnumPrivs.privs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN,
+         { "Lsa Policy Trust Admin", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_TRUST_ADMIN", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_TRUST_ADMIN_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditLogInfo_percent_full,
+         { "Percent Full", "lsarpc.lsa_AuditLogInfo.percent_full", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_quota,
+         { "Quota", "lsarpc.lsa_PolicyInformation.quota", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemovePrivilegesFromAccount_privs,
+         { "Privs", "lsarpc.lsa_RemovePrivilegesFromAccount.privs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoBuffer_AuthType,
+         { "Authtype", "lsarpc.lsa_TrustDomainInfoBuffer.AuthType", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_TrustAuthType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName_sid_type,
+         { "Sid Type", "lsarpc.lsa_TranslatedName.sid_type", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_SidType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_names,
+         { "Names", "lsarpc.lsa_LookupSids2.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumPrivsAccount_handle,
+         { "Handle", "lsarpc.lsa_EnumPrivsAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SidArray_sids,
+         { "Sids", "lsarpc.lsa_SidArray.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemoveAccountRights_sid,
+         { "Sid", "lsarpc.lsa_RemoveAccountRights.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfo_info,
+         { "Info", "lsarpc.lsa_QueryTrustedDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_String_length,
+         { "Length", "lsarpc.lsa_String.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_opnum,
+         { "Operation", "lsarpc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx_info,
+         { "Info", "lsarpc.lsa_CreateTrustedDomainEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivilegeSet_count,
+         { "Count", "lsarpc.lsa_PrivilegeSet.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfoByName_level,
+         { "Level", "lsarpc.lsa_SetTrustedDomainInfoByName.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_TrustDomInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRSetForestTrustInformation_collision_info,
+         { "Collision Info", "lsarpc.lsa_lsaRSetForestTrustInformation.collision_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivDisplayName_language_id,
+         { "Language Id", "lsarpc.lsa_LookupPrivDisplayName.language_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransSidArray3_sids,
+         { "Sids", "lsarpc.lsa_TransSidArray3.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_status,
+         { "NT Error", "lsarpc.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_count,
+         { "Count", "lsarpc.lsa_LookupNames.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_info,
+         { "Info", "lsarpc.lsa_TrustDomainInfoFullInfo2Internal.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfo_handle,
+         { "Handle", "lsarpc.lsa_SetTrustedDomainInfo.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_previous_auth_info,
+         { "Outgoing Previous Auth Info", "lsarpc.lsa_TrustDomainInfoAuthInfo.outgoing_previous_auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivValue_name,
+         { "Name", "lsarpc.lsa_LookupPrivValue.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS,
+         { "Lsa Trusted Query Controllers", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_QUERY_CONTROLLERS", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_CONTROLLERS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustBinaryData_data,
+         { "Data", "lsarpc.lsa_ForestTrustBinaryData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS,
+         { "Lsa Account Adjust System Access", "lsarpc.lsa_AccountAccessMask.LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS", FT_BOOLEAN, 32, TFS(&lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid_sid_index,
+         { "Sid Index", "lsarpc.lsa_TranslatedSid.sid_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AsciiStringLarge_length,
+         { "Length", "lsarpc.lsa_AsciiStringLarge.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT,
+         { "Lsa Policy Create Account", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_CREATE_ACCOUNT", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_CREATE_ACCOUNT_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfoInternal_auth_blob,
+         { "Auth Blob", "lsarpc.lsa_TrustDomainInfoAuthInfoInternal.auth_blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomainByName_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_OpenTrustedDomainByName.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransNameArray2_names,
+         { "Names", "lsarpc.lsa_TransNameArray2.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustDom_handle,
+         { "Handle", "lsarpc.lsa_EnumTrustDom.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionInfo_count,
+         { "Count", "lsarpc.lsa_ForestTrustCollisionInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateAccount_access_mask,
+         { "Access Mask", "lsarpc.lsa_CreateAccount.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy2_attr,
+         { "Attr", "lsarpc.lsa_OpenPolicy2.attr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx_netbios_name,
+         { "Netbios Name", "lsarpc.lsa_TrustDomainInfoInfoEx.netbios_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy_system_name,
+         { "System Name", "lsarpc.lsa_OpenPolicy.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustRecord_flags,
+         { "Flags", "lsarpc.lsa_ForestTrustRecord.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_sids,
+         { "Sids", "lsarpc.lsa_LookupSids2.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx_auth_info,
+         { "Auth Info", "lsarpc.lsa_CreateTrustedDomainEx.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName_sid_index,
+         { "Sid Index", "lsarpc.lsa_TranslatedName.sid_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_password,
+         { "Password", "lsarpc.lsa_TrustedDomainInfo.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ModificationInfo_db_create_time,
+         { "Db Create Time", "lsarpc.lsa_ModificationInfo.db_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RetrievePrivateData_name,
+         { "Name", "lsarpc.lsa_RetrievePrivateData.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION,
+         { "Lsa Policy Notification", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_NOTIFICATION", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_NOTIFICATION_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_domain,
+         { "Domain", "lsarpc.lsa_PolicyInformation.domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DATA_BUF2_size,
+         { "Size", "lsarpc.lsa_DATA_BUF2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoByName_handle,
+         { "Handle", "lsarpc.lsa_QueryTrustedDomainInfoByName.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS,
+         { "Lsa Policy Set Audit Requirements", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_SET_AUDIT_REQUIREMENTS", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_SET_AUDIT_REQUIREMENTS_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_domains,
+         { "Domains", "lsarpc.lsa_LookupNames4.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid_sid_type,
+         { "Sid Type", "lsarpc.lsa_TranslatedSid.sid_type", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_SidType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_count,
+         { "Count", "lsarpc.lsa_LookupNames2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_lookup_options,
+         { "Lookup Options", "lsarpc.lsa_LookupSids2.lookup_options", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_LookupOptions_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustDomainInfo_dns_domain_name,
+         { "Dns Domain Name", "lsarpc.lsa_ForestTrustDomainInfo.dns_domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditLogInfo_next_audit_record,
+         { "Next Audit Record", "lsarpc.lsa_AuditLogInfo.next_audit_record", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivArray_privs,
+         { "Privs", "lsarpc.lsa_PrivArray.privs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfo2Internal_posix_offset,
+         { "Posix Offset", "lsarpc.lsa_TrustDomainInfoFullInfo2Internal.posix_offset", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransSidArray2_sids,
+         { "Sids", "lsarpc.lsa_TransSidArray2.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransSidArray3_count,
+         { "Count", "lsarpc.lsa_TransSidArray3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRQueryForestTrustInformation_handle,
+         { "Handle", "lsarpc.lsa_lsaRQueryForestTrustInformation.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx_policy_handle,
+         { "Policy Handle", "lsarpc.lsa_CreateTrustedDomainEx.policy_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_l_account_domain,
+         { "L Account Domain", "lsarpc.lsa_PolicyInformation.l_account_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_StorePrivateData_handle,
+         { "Handle", "lsarpc.lsa_StorePrivateData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainList_count,
+         { "Count", "lsarpc.lsa_DomainList.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecret_sec_handle,
+         { "Sec Handle", "lsarpc.lsa_QuerySecret.sec_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditFullQueryInfo_shutdown_on_full,
+         { "Shutdown On Full", "lsarpc.lsa_AuditFullQueryInfo.shutdown_on_full", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_GetUserName_system_name,
+         { "System Name", "lsarpc.lsa_GetUserName.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SidArray_num_sids,
+         { "Num Sids", "lsarpc.lsa_SidArray.num_sids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_CreateTrustedDomainEx.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_level,
+         { "Level", "lsarpc.lsa_LookupNames4.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_handle,
+         { "Handle", "lsarpc.lsa_QueryTrustedDomainInfoBySid.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RightSet_names,
+         { "Names", "lsarpc.lsa_RightSet.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_domains,
+         { "Domains", "lsarpc.lsa_LookupNames.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION,
+         { "Lsa Trust Attribute Uses Rc4 Encryption", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_USES_RC4_ENCRYPTION_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames_sids,
+         { "Sids", "lsarpc.lsa_LookupNames.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccountsWithUserRight_name,
+         { "Name", "lsarpc.lsa_EnumAccountsWithUserRight.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivName_name,
+         { "Name", "lsarpc.lsa_LookupPrivName.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION,
+         { "Lsa Policy View Local Information", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_VIEW_LOCAL_INFORMATION", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_VIEW_LOCAL_INFORMATION_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_sids,
+         { "Sids", "lsarpc.lsa_LookupNames4.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInformationTrustedDomain_level,
+         { "Level", "lsarpc.lsa_SetInformationTrustedDomain.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_TrustDomInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RefDomainList_domains,
+         { "Domains", "lsarpc.lsa_RefDomainList.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetDomainInformationPolicy_info,
+         { "Info", "lsarpc.lsa_SetDomainInformationPolicy.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetDomainInformationPolicy_handle,
+         { "Handle", "lsarpc.lsa_SetDomainInformationPolicy.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_replica,
+         { "Replica", "lsarpc.lsa_PolicyInformation.replica", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransSidArray_count,
+         { "Count", "lsarpc.lsa_TransSidArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfo_level,
+         { "Level", "lsarpc.lsa_SetTrustedDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_TrustDomInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfo_auth_info,
+         { "Auth Info", "lsarpc.lsa_TrustDomainInfoFullInfo.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_StorePrivateData_name,
+         { "Name", "lsarpc.lsa_StorePrivateData.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccountRights_handle,
+         { "Handle", "lsarpc.lsa_EnumAccountRights.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH,
+         { "Lsa Trusted Query Auth", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_QUERY_AUTH", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_AUTH_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditLogInfo_time_to_shutdown,
+         { "Time To Shutdown", "lsarpc.lsa_AuditLogInfo.time_to_shutdown", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_VIEW,
+         { "Lsa Account View", "lsarpc.lsa_AccountAccessMask.LSA_ACCOUNT_VIEW", FT_BOOLEAN, 32, TFS(&lsa_AccountAccessMask_LSA_ACCOUNT_VIEW_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx_domain_name,
+         { "Domain Name", "lsarpc.lsa_TrustDomainInfoInfoEx.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids2_count,
+         { "Count", "lsarpc.lsa_LookupSids2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_info_basic,
+         { "Info Basic", "lsarpc.lsa_TrustedDomainInfo.info_basic", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoPosixOffset_posix_offset,
+         { "Posix Offset", "lsarpc.lsa_TrustDomainInfoPosixOffset.posix_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_full_info2_internal,
+         { "Full Info2 Internal", "lsarpc.lsa_TrustedDomainInfo.full_info2_internal", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx2_policy_handle,
+         { "Policy Handle", "lsarpc.lsa_CreateTrustedDomainEx2.policy_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST,
+         { "Lsa Trust Attribute Within Forest", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_WITHIN_FOREST", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_WITHIN_FOREST_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenSecret_name,
+         { "Name", "lsarpc.lsa_OpenSecret.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx2_info,
+         { "Info", "lsarpc.lsa_CreateTrustedDomainEx2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_GetUserName_account_name,
+         { "Account Name", "lsarpc.lsa_GetUserName.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LUIDAttribute_attribute,
+         { "Attribute", "lsarpc.lsa_LUIDAttribute.attribute", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy_access_mask,
+         { "Access Mask", "lsarpc.lsa_OpenPolicy.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DATA_BUF_PTR_buf,
+         { "Buf", "lsarpc.lsa_DATA_BUF_PTR.buf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_sids,
+         { "Sids", "lsarpc.lsa_LookupSids3.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_String_size,
+         { "Size", "lsarpc.lsa_String.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoAuthInfo_outgoing_current_auth_info,
+         { "Outgoing Current Auth Info", "lsarpc.lsa_TrustDomainInfoAuthInfo.outgoing_current_auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_posix_offset,
+         { "Posix Offset", "lsarpc.lsa_TrustedDomainInfo.posix_offset", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_lookup_options,
+         { "Lookup Options", "lsarpc.lsa_LookupSids3.lookup_options", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_LookupOptions_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_info_ex,
+         { "Info Ex", "lsarpc.lsa_TrustDomainInfoInfoEx2Internal.info_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenAccount_sid,
+         { "Sid", "lsarpc.lsa_OpenAccount.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionRecord_type,
+         { "Type", "lsarpc.lsa_ForestTrustCollisionRecord.type", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ForestTrustCollisionRecordType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfoByName_handle,
+         { "Handle", "lsarpc.lsa_SetTrustedDomainInfoByName.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DnsDomainInfo_domain_guid,
+         { "Domain Guid", "lsarpc.lsa_DnsDomainInfo.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustRecord_time,
+         { "Time", "lsarpc.lsa_ForestTrustRecord.time", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LUIDAttribute_luid,
+         { "Luid", "lsarpc.lsa_LUIDAttribute.luid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoKerberos_user_tkt_lifetime,
+         { "User Tkt Lifetime", "lsarpc.lsa_DomainInfoKerberos.user_tkt_lifetime", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AddAccountRights_rights,
+         { "Rights", "lsarpc.lsa_AddAccountRights.rights", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoSupportedEncTypes_enc_types,
+         { "Enc Types", "lsarpc.lsa_TrustDomainInfoSupportedEncTypes.enc_types", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivilegeSet_unknown,
+         { "Unknown", "lsarpc.lsa_PrivilegeSet.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ObjectAttribute_root_dir,
+         { "Root Dir", "lsarpc.lsa_ObjectAttribute.root_dir", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_names,
+         { "Names", "lsarpc.lsa_LookupSids3.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateSecret_handle,
+         { "Handle", "lsarpc.lsa_CreateSecret.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInformationTrustedDomain_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_SetInformationTrustedDomain.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_StringLarge_length,
+         { "Length", "lsarpc.lsa_StringLarge.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS,
+         { "Lsa Account Adjust Quotas", "lsarpc.lsa_AccountAccessMask.LSA_ACCOUNT_ADJUST_QUOTAS", FT_BOOLEAN, 32, TFS(&lsa_AccountAccessMask_LSA_ACCOUNT_ADJUST_QUOTAS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_CONFLICT,
+         { "Lsa Tln Disabled Conflict", "lsarpc.lsa_ForestTrustCollisionTDOFlags.LSA_TLN_DISABLED_CONFLICT", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionTDOFlags_LSA_TLN_DISABLED_CONFLICT_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_BinaryString_length,
+         { "Length", "lsarpc.lsa_BinaryString.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_lookup_options,
+         { "Lookup Options", "lsarpc.lsa_LookupNames2.lookup_options", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_LookupOptions_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_names,
+         { "Names", "lsarpc.lsa_LookupNames2.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenAccount_acct_handle,
+         { "Acct Handle", "lsarpc.lsa_OpenAccount.acct_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionInfo_entries,
+         { "Entries", "lsarpc.lsa_ForestTrustCollisionInfo.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN,
+         { "Lsa Policy Server Admin", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_SERVER_ADMIN", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_SERVER_ADMIN_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecret_old_val,
+         { "Old Val", "lsarpc.lsa_QuerySecret.old_val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DeleteTrustedDomain_handle,
+         { "Handle", "lsarpc.lsa_DeleteTrustedDomain.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivDisplayName_handle,
+         { "Handle", "lsarpc.lsa_LookupPrivDisplayName.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_domains,
+         { "Domains", "lsarpc.lsa_LookupNames2.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN,
+         { "Lsa Trust Attribute Quarantined Domain", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_lookup_options,
+         { "Lookup Options", "lsarpc.lsa_LookupNames4.lookup_options", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_LookupOptions_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumPrivs_resume_handle,
+         { "Resume Handle", "lsarpc.lsa_EnumPrivs.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoControllers_entries,
+         { "Entries", "lsarpc.lsa_TrustDomainInfoControllers.entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_handle,
+         { "Handle", "lsarpc.lsa_LookupNames2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivDisplayName_language_id_sys,
+         { "Language Id Sys", "lsarpc.lsa_LookupPrivDisplayName.language_id_sys", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetTrustedDomainInfoByName_info,
+         { "Info", "lsarpc.lsa_SetTrustedDomainInfoByName.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AddPrivilegesToAccount_privs,
+         { "Privs", "lsarpc.lsa_AddPrivilegesToAccount.privs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_Close_handle,
+         { "Handle", "lsarpc.lsa_Close.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName2_name,
+         { "Name", "lsarpc.lsa_TranslatedName2.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AddAccountRights_sid,
+         { "Sid", "lsarpc.lsa_AddAccountRights.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivValue_luid,
+         { "Luid", "lsarpc.lsa_LookupPrivValue.luid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES,
+         { "Lsa Policy Lookup Names", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_LOOKUP_NAMES", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_LOOKUP_NAMES_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName2_unknown,
+         { "Unknown", "lsarpc.lsa_TranslatedName2.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoInfoEx2Internal_forest_trust_data,
+         { "Forest Trust Data", "lsarpc.lsa_TrustDomainInfoInfoEx2Internal.forest_trust_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomain_access_mask,
+         { "Access Mask", "lsarpc.lsa_CreateTrustedDomain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoKerberos_reserved,
+         { "Reserved", "lsarpc.lsa_DomainInfoKerberos.reserved", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS,
+         { "Lsa Trusted Set Controllers", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_SET_CONTROLLERS", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_SET_CONTROLLERS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainList_domains,
+         { "Domains", "lsarpc.lsa_DomainList.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateSecret_name,
+         { "Name", "lsarpc.lsa_CreateSecret.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditEventsInfo_auditing_mode,
+         { "Auditing Mode", "lsarpc.lsa_AuditEventsInfo.auditing_mode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX,
+         { "Lsa Trusted Query Posix", "lsarpc.lsa_TrustedAccessMask.LSA_TRUSTED_QUERY_POSIX", FT_BOOLEAN, 32, TFS(&lsa_TrustedAccessMask_LSA_TRUSTED_QUERY_POSIX_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoBySid_info,
+         { "Info", "lsarpc.lsa_QueryTrustedDomainInfoBySid.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccountsWithUserRight_sids,
+         { "Sids", "lsarpc.lsa_EnumAccountsWithUserRight.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInfoPolicy_info,
+         { "Info", "lsarpc.lsa_SetInfoPolicy.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SidPtr_sid,
+         { "Sid", "lsarpc.lsa_SidPtr.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfoByName_info,
+         { "Info", "lsarpc.lsa_QueryTrustedDomainInfoByName.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoKerberos_authentication_options,
+         { "Authentication Options", "lsarpc.lsa_DomainInfoKerberos.authentication_options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_client_revision,
+         { "Client Revision", "lsarpc.lsa_LookupNames4.client_revision", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_ClientRevision_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecurity_handle,
+         { "Handle", "lsarpc.lsa_QuerySecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PDAccountInfo_name,
+         { "Name", "lsarpc.lsa_PDAccountInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustInformation_count,
+         { "Count", "lsarpc.lsa_ForestTrustInformation.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid3_flags,
+         { "Flags", "lsarpc.lsa_TranslatedSid3.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRQueryForestTrustInformation_unknown,
+         { "Unknown", "lsarpc.lsa_lsaRQueryForestTrustInformation.unknown", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_domains,
+         { "Domains", "lsarpc.lsa_LookupSids3.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_Strings_count,
+         { "Count", "lsarpc.lsa_Strings.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryInfoPolicy2_handle,
+         { "Handle", "lsarpc.lsa_QueryInfoPolicy2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryTrustedDomainInfo_trustdom_handle,
+         { "Trustdom Handle", "lsarpc.lsa_QueryTrustedDomainInfo.trustdom_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoBuffer_data,
+         { "Data", "lsarpc.lsa_TrustDomainInfoBuffer.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames3_lookup_options,
+         { "Lookup Options", "lsarpc.lsa_LookupNames3.lookup_options", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_LookupOptions_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_StringLarge_size,
+         { "Size", "lsarpc.lsa_StringLarge.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ObjectAttribute_attributes,
+         { "Attributes", "lsarpc.lsa_ObjectAttribute.attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_auth_info_internal,
+         { "Auth Info Internal", "lsarpc.lsa_TrustedDomainInfo.auth_info_internal", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QosInfo_effective_only,
+         { "Effective Only", "lsarpc.lsa_QosInfo.effective_only", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy_attr,
+         { "Attr", "lsarpc.lsa_OpenPolicy.attr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ObjectAttribute_len,
+         { "Len", "lsarpc.lsa_ObjectAttribute.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoBasic_sid,
+         { "Sid", "lsarpc.lsa_TrustDomainInfoBasic.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PrivEntry_name,
+         { "Name", "lsarpc.lsa_PrivEntry.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ServerRole_role,
+         { "Role", "lsarpc.lsa_ServerRole.role", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_Role_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_BinaryString_array,
+         { "Array", "lsarpc.lsa_BinaryString.array", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid3_sid_type,
+         { "Sid Type", "lsarpc.lsa_TranslatedSid3.sid_type", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_SidType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_CONFLICT,
+         { "Lsa Sid Disabled Conflict", "lsarpc.lsa_ForestTrustCollisionXrefFlags.LSA_SID_DISABLED_CONFLICT", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_CONFLICT_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames4_num_names,
+         { "Num Names", "lsarpc.lsa_LookupNames4.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_GetSystemAccessAccount_handle,
+         { "Handle", "lsarpc.lsa_GetSystemAccessAccount.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumPrivs_max_count,
+         { "Max Count", "lsarpc.lsa_EnumPrivs.max_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupNames2_level,
+         { "Level", "lsarpc.lsa_LookupNames2.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_info_ex,
+         { "Info Ex", "lsarpc.lsa_TrustDomainInfoFullInfoInternal.info_ex", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DATA_BUF_length,
+         { "Length", "lsarpc.lsa_DATA_BUF.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_Strings_names,
+         { "Names", "lsarpc.lsa_Strings.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_posix_offset,
+         { "Posix Offset", "lsarpc.lsa_TrustDomainInfoFullInfoInternal.posix_offset", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_auditfullset,
+         { "Auditfullset", "lsarpc.lsa_PolicyInformation.auditfullset", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy_handle,
+         { "Handle", "lsarpc.lsa_OpenPolicy.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustData_data,
+         { "Data", "lsarpc.lsa_ForestTrustData.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionRecord_flags,
+         { "Flags", "lsarpc.lsa_ForestTrustCollisionRecord.flags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids_count,
+         { "Count", "lsarpc.lsa_LookupSids.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DnsDomainInfo_dns_domain,
+         { "Dns Domain", "lsarpc.lsa_DnsDomainInfo.dns_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QueryInfoPolicy_level,
+         { "Level", "lsarpc.lsa_QueryInfoPolicy.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_PolicyInfo_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName_name,
+         { "Name", "lsarpc.lsa_TranslatedName.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids_domains,
+         { "Domains", "lsarpc.lsa_LookupSids.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid_rid,
+         { "Rid", "lsarpc.lsa_TranslatedSid.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoEfs_efs_blob,
+         { "Efs Blob", "lsarpc.lsa_DomainInfoEfs.efs_blob", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RemovePrivilegesFromAccount_remove_all,
+         { "Remove All", "lsarpc.lsa_RemovePrivilegesFromAccount.remove_all", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE,
+         { "Lsa Secret Query Value", "lsarpc.lsa_SecretAccessMask.LSA_SECRET_QUERY_VALUE", FT_BOOLEAN, 32, TFS(&lsa_SecretAccessMask_LSA_SECRET_QUERY_VALUE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AddAccountRights_handle,
+         { "Handle", "lsarpc.lsa_AddAccountRights.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DomainInfoEfs_blob_size,
+         { "Blob Size", "lsarpc.lsa_DomainInfoEfs.blob_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenPolicy2_system_name,
+         { "System Name", "lsarpc.lsa_OpenPolicy2.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_lsaRQueryForestTrustInformation_forest_trust_info,
+         { "Forest Trust Info", "lsarpc.lsa_lsaRQueryForestTrustInformation.forest_trust_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomain_policy_handle,
+         { "Policy Handle", "lsarpc.lsa_CreateTrustedDomain.policy_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustDomainInfoFullInfoInternal_auth_info,
+         { "Auth Info", "lsarpc.lsa_TrustDomainInfoFullInfoInternal.auth_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DefaultQuotaInfo_max_wss,
+         { "Max Wss", "lsarpc.lsa_DefaultQuotaInfo.max_wss", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_DefaultQuotaInfo_paged_pool,
+         { "Paged Pool", "lsarpc.lsa_DefaultQuotaInfo.paged_pool", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY,
+         { "Lsa Trust Attribute Uplevel Only", "lsarpc.lsa_TrustAttributes.LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY", FT_BOOLEAN, 32, TFS(&lsa_TrustAttributes_LSA_TRUST_ATTRIBUTE_UPLEVEL_ONLY_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids_level,
+         { "Level", "lsarpc.lsa_LookupSids.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_LookupNamesLevel_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditFullQueryInfo_log_is_full,
+         { "Log Is Full", "lsarpc.lsa_AuditFullQueryInfo.log_is_full", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RightSet_count,
+         { "Count", "lsarpc.lsa_RightSet.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_ADMIN,
+         { "Lsa Sid Disabled Admin", "lsarpc.lsa_ForestTrustCollisionXrefFlags.LSA_SID_DISABLED_ADMIN", FT_BOOLEAN, 32, TFS(&lsa_ForestTrustCollisionXrefFlags_LSA_SID_DISABLED_ADMIN_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditEventsInfo_settings,
+         { "Settings", "lsarpc.lsa_AuditEventsInfo.settings", FT_UINT32, BASE_DEC, VALS(lsarpc_lsa_PolicyAuditPolicy_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid2_rid,
+         { "Rid", "lsarpc.lsa_TranslatedSid2.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid2_sid_type,
+         { "Sid Type", "lsarpc.lsa_TranslatedSid2.sid_type", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_SidType_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_OpenTrustedDomainByName_handle,
+         { "Handle", "lsarpc.lsa_OpenTrustedDomainByName.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustedDomainsEx_handle,
+         { "Handle", "lsarpc.lsa_EnumTrustedDomainsEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AsciiString_length,
+         { "Length", "lsarpc.lsa_AsciiString.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumAccountRights_sid,
+         { "Sid", "lsarpc.lsa_EnumAccountRights.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids_sids,
+         { "Sids", "lsarpc.lsa_LookupSids.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CloseTrustedDomainEx_handle,
+         { "Handle", "lsarpc.lsa_CloseTrustedDomainEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QosInfo_context_mode,
+         { "Context Mode", "lsarpc.lsa_QosInfo.context_mode", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_BinaryString_size,
+         { "Size", "lsarpc.lsa_BinaryString.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION,
+         { "Lsa Policy View Audit Information", "lsarpc.lsa_PolicyAccessMask.LSA_POLICY_VIEW_AUDIT_INFORMATION", FT_BOOLEAN, 32, TFS(&lsa_PolicyAccessMask_LSA_POLICY_VIEW_AUDIT_INFORMATION_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_SecretAccessMask_LSA_SECRET_SET_VALUE,
+         { "Lsa Secret Set Value", "lsarpc.lsa_SecretAccessMask.LSA_SECRET_SET_VALUE", FT_BOOLEAN, 32, TFS(&lsa_SecretAccessMask_LSA_SECRET_SET_VALUE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_lsarpc_lsa_EnumTrustDom_domains,
+         { "Domains", "lsarpc.lsa_EnumTrustDom.domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransNameArray_count,
+         { "Count", "lsarpc.lsa_TransNameArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_RetrievePrivateData_val,
+         { "Val", "lsarpc.lsa_RetrievePrivateData.val", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_pd,
+         { "Pd", "lsarpc.lsa_PolicyInformation.pd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedName2_sid_index,
+         { "Sid Index", "lsarpc.lsa_TranslatedName2.sid_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_PolicyInformation_auditfullquery,
+         { "Auditfullquery", "lsarpc.lsa_PolicyInformation.auditfullquery", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_ModificationInfo_modified_id,
+         { "Modified Id", "lsarpc.lsa_ModificationInfo.modified_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_QuerySecret_new_mtime,
+         { "New Mtime", "lsarpc.lsa_QuerySecret.new_mtime", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupPrivValue_handle,
+         { "Handle", "lsarpc.lsa_LookupPrivValue.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TransSidArray2_count,
+         { "Count", "lsarpc.lsa_TransSidArray2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_AuditEventsInfo_count,
+         { "Count", "lsarpc.lsa_AuditEventsInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInfoPolicy_level,
+         { "Level", "lsarpc.lsa_SetInfoPolicy.level", FT_UINT1632, BASE_DEC, VALS(lsarpc_lsa_PolicyInfo_vals), 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TrustedDomainInfo_full_info,
+         { "Full Info", "lsarpc.lsa_TrustedDomainInfo.full_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_CreateTrustedDomainEx_access_mask,
+         { "Access Mask", "lsarpc.lsa_CreateTrustedDomainEx.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_LookupSids3_count,
+         { "Count", "lsarpc.lsa_LookupSids3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_SetInfoPolicy_handle,
+         { "Handle", "lsarpc.lsa_SetInfoPolicy.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_lsarpc_lsa_TranslatedSid3_sid_index,
+         { "Sid Index", "lsarpc.lsa_TranslatedSid3.sid_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_lsarpc,
+               &ett_lsarpc_security_secinfo,
+               &ett_lsarpc_kerb_EncTypes,
+               &ett_lsarpc_lsa_String,
+               &ett_lsarpc_lsa_StringLarge,
+               &ett_lsarpc_lsa_Strings,
+               &ett_lsarpc_lsa_AsciiString,
+               &ett_lsarpc_lsa_AsciiStringLarge,
+               &ett_lsarpc_lsa_BinaryString,
+               &ett_lsarpc_lsa_LUID,
+               &ett_lsarpc_lsa_PrivEntry,
+               &ett_lsarpc_lsa_PrivArray,
+               &ett_lsarpc_lsa_QosInfo,
+               &ett_lsarpc_lsa_ObjectAttribute,
+               &ett_lsarpc_lsa_PolicyAccessMask,
+               &ett_lsarpc_lsa_AccountAccessMask,
+               &ett_lsarpc_lsa_SecretAccessMask,
+               &ett_lsarpc_lsa_TrustedAccessMask,
+               &ett_lsarpc_lsa_AuditLogInfo,
+               &ett_lsarpc_lsa_AuditEventsInfo,
+               &ett_lsarpc_lsa_DomainInfo,
+               &ett_lsarpc_lsa_PDAccountInfo,
+               &ett_lsarpc_lsa_ServerRole,
+               &ett_lsarpc_lsa_ReplicaSourceInfo,
+               &ett_lsarpc_lsa_DefaultQuotaInfo,
+               &ett_lsarpc_lsa_ModificationInfo,
+               &ett_lsarpc_lsa_AuditFullSetInfo,
+               &ett_lsarpc_lsa_AuditFullQueryInfo,
+               &ett_lsarpc_lsa_DnsDomainInfo,
+               &ett_lsarpc_lsa_PolicyInformation,
+               &ett_lsarpc_lsa_SidPtr,
+               &ett_lsarpc_lsa_SidArray,
+               &ett_lsarpc_lsa_DomainList,
+               &ett_lsarpc_lsa_TranslatedSid,
+               &ett_lsarpc_lsa_TransSidArray,
+               &ett_lsarpc_lsa_RefDomainList,
+               &ett_lsarpc_lsa_TranslatedName,
+               &ett_lsarpc_lsa_TransNameArray,
+               &ett_lsarpc_lsa_LUIDAttribute,
+               &ett_lsarpc_lsa_PrivilegeSet,
+               &ett_lsarpc_lsa_DATA_BUF,
+               &ett_lsarpc_lsa_DATA_BUF2,
+               &ett_lsarpc_lsa_TrustDirection,
+               &ett_lsarpc_lsa_TrustAttributes,
+               &ett_lsarpc_lsa_TrustDomainInfoName,
+               &ett_lsarpc_lsa_TrustDomainInfoControllers,
+               &ett_lsarpc_lsa_TrustDomainInfoPosixOffset,
+               &ett_lsarpc_lsa_TrustDomainInfoPassword,
+               &ett_lsarpc_lsa_TrustDomainInfoBasic,
+               &ett_lsarpc_lsa_TrustDomainInfoInfoEx,
+               &ett_lsarpc_lsa_TrustDomainInfoBuffer,
+               &ett_lsarpc_lsa_TrustDomainInfoAuthInfo,
+               &ett_lsarpc_lsa_TrustDomainInfoFullInfo,
+               &ett_lsarpc_lsa_TrustDomainInfoAuthInfoInternal,
+               &ett_lsarpc_lsa_TrustDomainInfoFullInfoInternal,
+               &ett_lsarpc_lsa_TrustDomainInfoInfoEx2Internal,
+               &ett_lsarpc_lsa_TrustDomainInfoFullInfo2Internal,
+               &ett_lsarpc_lsa_TrustDomainInfoSupportedEncTypes,
+               &ett_lsarpc_lsa_TrustedDomainInfo,
+               &ett_lsarpc_lsa_DATA_BUF_PTR,
+               &ett_lsarpc_lsa_RightAttribute,
+               &ett_lsarpc_lsa_RightSet,
+               &ett_lsarpc_lsa_DomainListEx,
+               &ett_lsarpc_lsa_krbAuthenticationOptions,
+               &ett_lsarpc_lsa_DomainInfoKerberos,
+               &ett_lsarpc_lsa_DomainInfoEfs,
+               &ett_lsarpc_lsa_DomainInformationPolicy,
+               &ett_lsarpc_lsa_TranslatedName2,
+               &ett_lsarpc_lsa_TransNameArray2,
+               &ett_lsarpc_lsa_TranslatedSid2,
+               &ett_lsarpc_lsa_TransSidArray2,
+               &ett_lsarpc_lsa_TranslatedSid3,
+               &ett_lsarpc_lsa_TransSidArray3,
+               &ett_lsarpc_lsa_ForestTrustBinaryData,
+               &ett_lsarpc_lsa_ForestTrustDomainInfo,
+               &ett_lsarpc_lsa_ForestTrustData,
+               &ett_lsarpc_lsa_ForestTrustRecord,
+               &ett_lsarpc_lsa_ForestTrustInformation,
+               &ett_lsarpc_lsa_ForestTrustCollisionTDOFlags,
+               &ett_lsarpc_lsa_ForestTrustCollisionXrefFlags,
+               &ett_lsarpc_lsa_ForestTrustCollisionFlags,
+               &ett_lsarpc_lsa_ForestTrustCollisionRecord,
+               &ett_lsarpc_lsa_ForestTrustCollisionInfo,
+       };
+
+       proto_dcerpc_lsarpc = proto_register_protocol("Local Security Authority", "LSARPC", "lsarpc");
+       proto_register_field_array(proto_dcerpc_lsarpc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_lsarpc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_lsarpc, ett_dcerpc_lsarpc,
+               &uuid_dcerpc_lsarpc, ver_dcerpc_lsarpc,
+               lsarpc_dissectors, hf_lsarpc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-lsa.h b/bin/default/librpc/gen_ndr/packet-dcerpc-lsa.h
new file mode 100644 (file)
index 0000000..332f29f
--- /dev/null
@@ -0,0 +1,251 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/lsa.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/lsa.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_LSARPC_H
+#define __PACKET_DCERPC_LSARPC_H
+
+#define LSA_POLICY_ALL_ACCESS  ( (STANDARD_RIGHTS_REQUIRED_ACCESS|LSA_POLICY_VIEW_LOCAL_INFORMATION|LSA_POLICY_VIEW_AUDIT_INFORMATION|LSA_POLICY_GET_PRIVATE_INFORMATION|LSA_POLICY_TRUST_ADMIN|LSA_POLICY_CREATE_ACCOUNT|LSA_POLICY_CREATE_SECRET|LSA_POLICY_CREATE_PRIVILEGE|LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS|LSA_POLICY_SET_AUDIT_REQUIREMENTS|LSA_POLICY_AUDIT_LOG_ADMIN|LSA_POLICY_SERVER_ADMIN|LSA_POLICY_LOOKUP_NAMES) )
+
+#define LSA_POLICY_READ        ( (STANDARD_RIGHTS_READ_ACCESS|LSA_POLICY_VIEW_LOCAL_INFORMATION|LSA_POLICY_VIEW_AUDIT_INFORMATION|LSA_POLICY_GET_PRIVATE_INFORMATION) )
+
+#define LSA_POLICY_WRITE       ( (STANDARD_RIGHTS_READ_ACCESS|LSA_POLICY_TRUST_ADMIN|LSA_POLICY_CREATE_ACCOUNT|LSA_POLICY_CREATE_SECRET|LSA_POLICY_CREATE_PRIVILEGE|LSA_POLICY_SET_DEFAULT_QUOTA_LIMITS|LSA_POLICY_SET_AUDIT_REQUIREMENTS|LSA_POLICY_AUDIT_LOG_ADMIN|LSA_POLICY_SERVER_ADMIN) )
+
+#define LSA_POLICY_EXECUTE     ( (STANDARD_RIGHTS_EXECUTE_ACCESS|LSA_POLICY_VIEW_LOCAL_INFORMATION|LSA_POLICY_LOOKUP_NAMES) )
+
+#define LSA_ACCOUNT_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|LSA_ACCOUNT_VIEW|LSA_ACCOUNT_ADJUST_PRIVILEGES|LSA_ACCOUNT_ADJUST_QUOTAS|LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS) )
+
+#define LSA_ACCOUNT_READ       ( (STANDARD_RIGHTS_READ_ACCESS|LSA_ACCOUNT_VIEW) )
+
+#define LSA_ACCOUNT_WRITE      ( (STANDARD_RIGHTS_READ_ACCESS|LSA_ACCOUNT_ADJUST_PRIVILEGES|LSA_ACCOUNT_ADJUST_QUOTAS|LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS) )
+
+#define LSA_ACCOUNT_EXECUTE    ( (STANDARD_RIGHTS_EXECUTE_ACCESS) )
+
+#define LSA_SECRET_ALL_ACCESS  ( (LSA_SECRET_QUERY_VALUE|LSA_SECRET_SET_VALUE|SEC_STD_DELETE|STANDARD_RIGHTS_READ_ACCESS|SEC_STD_WRITE_DAC|SEC_STD_WRITE_OWNER) )
+
+#define LSA_SECRET_READ        ( (LSA_SECRET_QUERY_VALUE|STANDARD_RIGHTS_READ_ACCESS) )
+
+#define LSA_SECRET_WRITE       ( (LSA_SECRET_SET_VALUE|STANDARD_RIGHTS_READ_ACCESS) )
+
+#define LSA_SECRET_EXECUTE     ( (STANDARD_RIGHTS_READ_ACCESS) )
+
+#define LSA_TRUSTED_DOMAIN_ALL_ACCESS  ( (LSA_TRUSTED_QUERY_DOMAIN_NAME|LSA_TRUSTED_QUERY_CONTROLLERS|LSA_TRUSTED_SET_CONTROLLERS|LSA_TRUSTED_QUERY_POSIX|LSA_TRUSTED_SET_POSIX|LSA_TRUSTED_SET_AUTH|LSA_TRUSTED_QUERY_AUTH|SEC_STD_DELETE|STANDARD_RIGHTS_READ_ACCESS|SEC_STD_WRITE_DAC|SEC_STD_WRITE_OWNER) )
+
+#define LSA_TRUSTED_DOMAIN_READ        ( (LSA_TRUSTED_QUERY_DOMAIN_NAME|STANDARD_RIGHTS_READ_ACCESS) )
+
+#define LSA_TRUSTED_DOMAIN_WRITE       ( (LSA_TRUSTED_SET_CONTROLLERS|LSA_TRUSTED_SET_POSIX|LSA_TRUSTED_SET_AUTH|STANDARD_RIGHTS_READ_ACCESS) )
+
+#define LSA_TRUSTED_DOMAIN_EXECUTE     ( (LSA_TRUSTED_QUERY_DOMAIN_NAME|LSA_TRUSTED_QUERY_POSIX|STANDARD_RIGHTS_READ_ACCESS) )
+
+#define LSA_ENUM_TRUST_DOMAIN_MULTIPLIER       ( 60 )
+
+#define LSA_REF_DOMAIN_LIST_MULTIPLIER ( 32 )
+
+#define LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER    ( 82 )
+
+#define LSA_CLIENT_REVISION_NO_DNS     ( 0x00000001 )
+
+#define LSA_CLIENT_REVISION_DNS        ( 0x00000002 )
+
+#define LSA_LOOKUP_OPTIONS_NO_ISOLATED ( 0x80000000 )
+
+int lsarpc_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_kerb_EncTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_StringLarge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_Strings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_AsciiString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_AsciiStringLarge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_BinaryString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_LUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_PrivEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_PrivArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_QosInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ObjectAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_lsa_PolicyAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_lsa_AccountAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_lsa_SecretAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_lsa_TrustedAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_AuditLogInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_AUDIT_POLICY_NONE (0)
+#define LSA_AUDIT_POLICY_SUCCESS (1)
+#define LSA_AUDIT_POLICY_FAILURE (2)
+#define LSA_AUDIT_POLICY_ALL ((LSA_AUDIT_POLICY_SUCCESS|LSA_AUDIT_POLICY_FAILURE))
+#define LSA_AUDIT_POLICY_CLEAR (4)
+extern const value_string lsarpc_lsa_PolicyAuditPolicy_vals[];
+int lsarpc_dissect_enum_lsa_PolicyAuditPolicy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define LSA_AUDIT_CATEGORY_SYSTEM (0)
+#define LSA_AUDIT_CATEGORY_LOGON (1)
+#define LSA_AUDIT_CATEGORY_FILE_AND_OBJECT_ACCESS (2)
+#define LSA_AUDIT_CATEGORY_USE_OF_USER_RIGHTS (3)
+#define LSA_AUDIT_CATEGORY_PROCCESS_TRACKING (4)
+#define LSA_AUDIT_CATEGORY_SECURITY_POLICY_CHANGES (5)
+#define LSA_AUDIT_CATEGORY_ACCOUNT_MANAGEMENT (6)
+#define LSA_AUDIT_CATEGORY_DIRECTORY_SERVICE_ACCESS (7)
+#define LSA_AUDIT_CATEGORY_ACCOUNT_LOGON (8)
+extern const value_string lsarpc_lsa_PolicyAuditEventType_vals[];
+int lsarpc_dissect_enum_lsa_PolicyAuditEventType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_AuditEventsInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_PDAccountInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_ROLE_BACKUP (2)
+#define LSA_ROLE_PRIMARY (3)
+extern const value_string lsarpc_lsa_Role_vals[];
+int lsarpc_dissect_enum_lsa_Role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_ServerRole(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ReplicaSourceInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DefaultQuotaInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ModificationInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_AuditFullSetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_AuditFullQueryInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DnsDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_POLICY_INFO_AUDIT_LOG (1)
+#define LSA_POLICY_INFO_AUDIT_EVENTS (2)
+#define LSA_POLICY_INFO_DOMAIN (3)
+#define LSA_POLICY_INFO_PD (4)
+#define LSA_POLICY_INFO_ACCOUNT_DOMAIN (5)
+#define LSA_POLICY_INFO_ROLE (6)
+#define LSA_POLICY_INFO_REPLICA (7)
+#define LSA_POLICY_INFO_QUOTA (8)
+#define LSA_POLICY_INFO_MOD (9)
+#define LSA_POLICY_INFO_AUDIT_FULL_SET (10)
+#define LSA_POLICY_INFO_AUDIT_FULL_QUERY (11)
+#define LSA_POLICY_INFO_DNS (12)
+#define LSA_POLICY_INFO_DNS_INT (13)
+#define LSA_POLICY_INFO_L_ACCOUNT_DOMAIN (14)
+extern const value_string lsarpc_lsa_PolicyInfo_vals[];
+int lsarpc_dissect_enum_lsa_PolicyInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_SidPtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_SidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DomainList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SID_NAME_USE_NONE (0)
+#define SID_NAME_USER (1)
+#define SID_NAME_DOM_GRP (2)
+#define SID_NAME_DOMAIN (3)
+#define SID_NAME_ALIAS (4)
+#define SID_NAME_WKN_GRP (5)
+#define SID_NAME_DELETED (6)
+#define SID_NAME_INVALID (7)
+#define SID_NAME_UNKNOWN (8)
+#define SID_NAME_COMPUTER (9)
+extern const value_string lsarpc_lsa_SidType_vals[];
+int lsarpc_dissect_enum_lsa_SidType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_TranslatedSid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TransSidArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_RefDomainList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_LOOKUP_NAMES_ALL (1)
+#define LSA_LOOKUP_NAMES_DOMAINS_ONLY (2)
+#define LSA_LOOKUP_NAMES_PRIMARY_DOMAIN_ONLY (3)
+#define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY (4)
+#define LSA_LOOKUP_NAMES_FOREST_TRUSTS_ONLY (5)
+#define LSA_LOOKUP_NAMES_UPLEVEL_TRUSTS_ONLY2 (6)
+#define LSA_LOOKUP_NAMES_RODC_REFERRAL_TO_FULL_DC (7)
+extern const value_string lsarpc_lsa_LookupNamesLevel_vals[];
+int lsarpc_dissect_enum_lsa_LookupNamesLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_TranslatedName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TransNameArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_LUIDAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_PrivilegeSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DATA_BUF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DATA_BUF2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_TRUSTED_DOMAIN_INFO_NAME (1)
+#define LSA_TRUSTED_DOMAIN_INFO_CONTROLLERS (2)
+#define LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET (3)
+#define LSA_TRUSTED_DOMAIN_INFO_PASSWORD (4)
+#define LSA_TRUSTED_DOMAIN_INFO_BASIC (5)
+#define LSA_TRUSTED_DOMAIN_INFO_INFO_EX (6)
+#define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO (7)
+#define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO (8)
+#define LSA_TRUSTED_DOMAIN_INFO_AUTH_INFO_INTERNAL (9)
+#define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_INTERNAL (10)
+#define LSA_TRUSTED_DOMAIN_INFO_INFO_EX2_INTERNAL (11)
+#define LSA_TRUSTED_DOMAIN_INFO_FULL_INFO_2_INTERNAL (12)
+#define LSA_TRUSTED_DOMAIN_SUPPORTED_ENCRYPTION_TYPES (13)
+extern const value_string lsarpc_lsa_TrustDomInfoEnum_vals[];
+int lsarpc_dissect_enum_lsa_TrustDomInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_bitmap_lsa_TrustDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_TRUST_TYPE_DOWNLEVEL (0x00000001)
+#define LSA_TRUST_TYPE_UPLEVEL (0x00000002)
+#define LSA_TRUST_TYPE_MIT (0x00000003)
+extern const value_string lsarpc_lsa_TrustType_vals[];
+int lsarpc_dissect_enum_lsa_TrustType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_bitmap_lsa_TrustAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoControllers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoPosixOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoBasic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define TRUST_AUTH_TYPE_NONE (0)
+#define TRUST_AUTH_TYPE_NT4OWF (1)
+#define TRUST_AUTH_TYPE_CLEAR (2)
+#define TRUST_AUTH_TYPE_VERSION (3)
+extern const value_string lsarpc_lsa_TrustAuthType_vals[];
+int lsarpc_dissect_enum_lsa_TrustAuthType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoAuthInfoInternal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfoInternal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoInfoEx2Internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoFullInfo2Internal(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TrustDomainInfoSupportedEncTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DATA_BUF_PTR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_RightAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_RightSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DomainListEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_lsa_krbAuthenticationOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DomainInfoKerberos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_DomainInfoEfs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_DOMAIN_INFO_POLICY_EFS (2)
+#define LSA_DOMAIN_INFO_POLICY_KERBEROS (3)
+extern const value_string lsarpc_lsa_DomainInfoEnum_vals[];
+int lsarpc_dissect_enum_lsa_DomainInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_TranslatedName2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TransNameArray2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES (0x00000000)
+#define LSA_LOOKUP_OPTION_SEARCH_ISOLATED_NAMES_LOCAL (0x80000000)
+extern const value_string lsarpc_lsa_LookupOptions_vals[];
+int lsarpc_dissect_enum_lsa_LookupOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define LSA_CLIENT_REVISION_1 (0x00000001)
+#define LSA_CLIENT_REVISION_2 (0x00000002)
+extern const value_string lsarpc_lsa_ClientRevision_vals[];
+int lsarpc_dissect_enum_lsa_ClientRevision(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_TranslatedSid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TransSidArray2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TranslatedSid3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_TransSidArray3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ForestTrustBinaryData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ForestTrustDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_FOREST_TRUST_TOP_LEVEL_NAME (0)
+#define LSA_FOREST_TRUST_TOP_LEVEL_NAME_EX (1)
+#define LSA_FOREST_TRUST_DOMAIN_INFO (2)
+#define LSA_FOREST_TRUST_RECORD_TYPE_LAST (3)
+extern const value_string lsarpc_lsa_ForestTrustRecordType_vals[];
+int lsarpc_dissect_enum_lsa_ForestTrustRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_struct_lsa_ForestTrustRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ForestTrustInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LSA_FOREST_TRUST_COLLISION_TDO (0)
+#define LSA_FOREST_TRUST_COLLISION_XREF (1)
+#define LSA_FOREST_TRUST_COLLISION_OTHER (2)
+extern const value_string lsarpc_lsa_ForestTrustCollisionRecordType_vals[];
+int lsarpc_dissect_enum_lsa_ForestTrustCollisionRecordType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int lsarpc_dissect_bitmap_lsa_ForestTrustCollisionTDOFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_bitmap_lsa_ForestTrustCollisionXrefFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ForestTrustCollisionRecord(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int lsarpc_dissect_struct_lsa_ForestTrustCollisionInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_LSARPC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-mgmt.c b/bin/default/librpc/gen_ndr/packet-dcerpc-mgmt.c
new file mode 100644 (file)
index 0000000..422384c
--- /dev/null
@@ -0,0 +1,579 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/mgmt.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/mgmt.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-mgmt.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_mgmt = -1;
+static gint ett_mgmt_ndr_syntax_id_p = -1;
+static gint ett_mgmt_rpc_if_id_vector_t = -1;
+static gint ett_mgmt_mgmt_statistics = -1;
+
+
+/* Header field declarations */
+static gint hf_mgmt_mgmt_inq_princ_name_authn_proto = -1;
+static gint hf_mgmt_mgmt_is_server_listening_status = -1;
+static gint hf_mgmt_mgmt_inq_stats_max_count = -1;
+static gint hf_mgmt_mgmt_inq_princ_name_princ_name = -1;
+static gint hf_mgmt_mgmt_inq_stats_unknown = -1;
+static gint hf_mgmt_mgmt_statistics_count = -1;
+static gint hf_mgmt_opnum = -1;
+static gint hf_mgmt_mgmt_statistics_statistics = -1;
+static gint hf_mgmt_ndr_syntax_id_p_id = -1;
+static gint hf_mgmt_uint32_status = -1;
+static gint hf_mgmt_mgmt_inq_if_ids_if_id_vector = -1;
+static gint hf_mgmt_mgmt_inq_stats_statistics = -1;
+static gint hf_mgmt_werror = -1;
+static gint hf_mgmt_rpc_if_id_vector_t_count = -1;
+static gint hf_mgmt_rpc_if_id_vector_t_if_id = -1;
+static gint hf_mgmt_mgmt_inq_princ_name_princ_name_size = -1;
+
+static gint proto_dcerpc_mgmt = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_mgmt = {
+       0xafa8bd80, 0x7d8a, 0x11c9,
+       { 0xbe, 0xf4, 0x08, 0x00, 0x2b, 0x10, 0x29, 0x89 }
+};
+static guint16 ver_dcerpc_mgmt = 1;
+
+static int mgmt_dissect_element_ndr_syntax_id_p_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_ndr_syntax_id_p_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_rpc_if_id_vector_t_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_rpc_if_id_vector_t_if_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_rpc_if_id_vector_t_if_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_statistics_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_statistics_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_statistics_statistics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_if_ids_if_id_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_if_ids_if_id_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_if_ids_if_id_vector__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_stats_max_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_stats_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_stats_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_stats_statistics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_is_server_listening_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_is_server_listening_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_princ_name_authn_proto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_princ_name_princ_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int mgmt_dissect_element_inq_princ_name_princ_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] ndr_syntax_id *id; */
+/* IDL: } */
+
+static int
+mgmt_dissect_element_ndr_syntax_id_p_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_ndr_syntax_id_p_id_, NDR_POINTER_UNIQUE, "Pointer to Id (ndr_syntax_id)",hf_mgmt_ndr_syntax_id_p_id);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_ndr_syntax_id_p_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = mgmt_dissect_struct_ndr_syntax_id(tvb,offset,pinfo,tree,drep,hf_mgmt_ndr_syntax_id_p_id,0);
+
+       return offset;
+}
+
+int
+mgmt_dissect_struct_ndr_syntax_id_p(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_mgmt_ndr_syntax_id_p);
+       }
+       
+       offset = mgmt_dissect_element_ndr_syntax_id_p_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [size_is(count)] ndr_syntax_id_p if_id[*]; */
+/* IDL: } */
+
+static int
+mgmt_dissect_element_rpc_if_id_vector_t_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_rpc_if_id_vector_t_count, 0);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_rpc_if_id_vector_t_if_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_rpc_if_id_vector_t_if_id_);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_rpc_if_id_vector_t_if_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = mgmt_dissect_struct_ndr_syntax_id_p(tvb,offset,pinfo,tree,drep,hf_mgmt_rpc_if_id_vector_t_if_id,0);
+
+       return offset;
+}
+
+int
+mgmt_dissect_struct_rpc_if_id_vector_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_mgmt_rpc_if_id_vector_t);
+       }
+       
+       offset = mgmt_dissect_element_rpc_if_id_vector_t_count(tvb, offset, pinfo, tree, drep);
+
+       offset = mgmt_dissect_element_rpc_if_id_vector_t_if_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [size_is(count)] uint32 statistics[*]; */
+/* IDL: } */
+
+static int
+mgmt_dissect_element_statistics_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_statistics_count, 0);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_statistics_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_statistics_statistics_);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_statistics_statistics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_statistics_statistics, 0);
+
+       return offset;
+}
+
+int
+mgmt_dissect_struct_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_mgmt_mgmt_statistics);
+       }
+       
+       offset = mgmt_dissect_element_statistics_count(tvb, offset, pinfo, tree, drep);
+
+       offset = mgmt_dissect_element_statistics_statistics(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_if_ids_if_id_vector(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_inq_if_ids_if_id_vector_, NDR_POINTER_REF, "Pointer to If Id Vector (rpc_if_id_vector_t)",hf_mgmt_mgmt_inq_if_ids_if_id_vector);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_if_ids_if_id_vector_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_inq_if_ids_if_id_vector__, NDR_POINTER_UNIQUE, "Pointer to If Id Vector (rpc_if_id_vector_t)",hf_mgmt_mgmt_inq_if_ids_if_id_vector);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_if_ids_if_id_vector__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = mgmt_dissect_struct_rpc_if_id_vector_t(tvb,offset,pinfo,tree,drep,hf_mgmt_mgmt_inq_if_ids_if_id_vector,0);
+
+       return offset;
+}
+
+/* IDL: WERROR mgmt_inq_if_ids( */
+/* IDL: [out] [ref] rpc_if_id_vector_t **if_id_vector */
+/* IDL: ); */
+
+static int
+mgmt_dissect_inq_if_ids_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="inq_if_ids";
+       offset = mgmt_dissect_element_inq_if_ids_if_id_vector(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+mgmt_dissect_inq_if_ids_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="inq_if_ids";
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_stats_max_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_inq_stats_max_count, 0);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_stats_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_inq_stats_unknown, 0);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_stats_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_inq_stats_statistics_, NDR_POINTER_REF, "Pointer to Statistics (mgmt_statistics)",hf_mgmt_mgmt_inq_stats_statistics);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_stats_statistics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = mgmt_dissect_struct_statistics(tvb,offset,pinfo,tree,drep,hf_mgmt_mgmt_inq_stats_statistics,0);
+
+       return offset;
+}
+
+/* IDL: WERROR mgmt_inq_stats( */
+/* IDL: [in] uint32 max_count, */
+/* IDL: [in] uint32 unknown, */
+/* IDL: [out] [ref] mgmt_statistics *statistics */
+/* IDL: ); */
+
+static int
+mgmt_dissect_inq_stats_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="inq_stats";
+       offset = mgmt_dissect_element_inq_stats_statistics(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+mgmt_dissect_inq_stats_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="inq_stats";
+       offset = mgmt_dissect_element_inq_stats_max_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = mgmt_dissect_element_inq_stats_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+mgmt_dissect_element_is_server_listening_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, mgmt_dissect_element_is_server_listening_status_, NDR_POINTER_REF, "Pointer to Status (uint32)",hf_mgmt_mgmt_is_server_listening_status);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_is_server_listening_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_is_server_listening_status, 0);
+
+       return offset;
+}
+
+/* IDL: boolean32 mgmt_is_server_listening( */
+/* IDL: [out] [ref] uint32 *status */
+/* IDL: ); */
+
+static int
+mgmt_dissect_is_server_listening_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="is_server_listening";
+       offset = mgmt_dissect_element_is_server_listening_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_uint32_status, &status);
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Status: %d", status);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_is_server_listening_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="is_server_listening";
+       return offset;
+}
+
+/* IDL: WERROR mgmt_stop_server_listening( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+mgmt_dissect_stop_server_listening_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="stop_server_listening";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+mgmt_dissect_stop_server_listening_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="stop_server_listening";
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_princ_name_authn_proto(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_inq_princ_name_authn_proto, 0);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_princ_name_princ_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_mgmt_inq_princ_name_princ_name_size, 0);
+
+       return offset;
+}
+
+static int
+mgmt_dissect_element_inq_princ_name_princ_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_mgmt_mgmt_inq_princ_name_princ_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR mgmt_inq_princ_name( */
+/* IDL: [in] uint32 authn_proto, */
+/* IDL: [in] uint32 princ_name_size, */
+/* IDL: [out] [charset(DOS)] [size_is(princ_name_size)] uint8 princ_name[*] */
+/* IDL: ); */
+
+static int
+mgmt_dissect_inq_princ_name_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="inq_princ_name";
+       offset = mgmt_dissect_element_inq_princ_name_princ_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_mgmt_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+mgmt_dissect_inq_princ_name_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="inq_princ_name";
+       offset = mgmt_dissect_element_inq_princ_name_authn_proto(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = mgmt_dissect_element_inq_princ_name_princ_name_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector mgmt_dissectors[] = {
+       { 0, "inq_if_ids",
+          mgmt_dissect_inq_if_ids_request, mgmt_dissect_inq_if_ids_response},
+       { 1, "inq_stats",
+          mgmt_dissect_inq_stats_request, mgmt_dissect_inq_stats_response},
+       { 2, "is_server_listening",
+          mgmt_dissect_is_server_listening_request, mgmt_dissect_is_server_listening_response},
+       { 3, "stop_server_listening",
+          mgmt_dissect_stop_server_listening_request, mgmt_dissect_stop_server_listening_response},
+       { 4, "inq_princ_name",
+          mgmt_dissect_inq_princ_name_request, mgmt_dissect_inq_princ_name_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_mgmt(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_mgmt_mgmt_inq_princ_name_authn_proto,
+         { "Authn Proto", "mgmt.mgmt_inq_princ_name.authn_proto", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_is_server_listening_status,
+         { "Status", "mgmt.mgmt_is_server_listening.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_inq_stats_max_count,
+         { "Max Count", "mgmt.mgmt_inq_stats.max_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_inq_princ_name_princ_name,
+         { "Princ Name", "mgmt.mgmt_inq_princ_name.princ_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_inq_stats_unknown,
+         { "Unknown", "mgmt.mgmt_inq_stats.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_statistics_count,
+         { "Count", "mgmt.mgmt_statistics.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_opnum,
+         { "Operation", "mgmt.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_statistics_statistics,
+         { "Statistics", "mgmt.mgmt_statistics.statistics", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_ndr_syntax_id_p_id,
+         { "Id", "mgmt.ndr_syntax_id_p.id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_uint32_status,
+         { "uint32", "mgmt.uint32_status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_inq_if_ids_if_id_vector,
+         { "If Id Vector", "mgmt.mgmt_inq_if_ids.if_id_vector", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_inq_stats_statistics,
+         { "Statistics", "mgmt.mgmt_inq_stats.statistics", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_werror,
+         { "Windows Error", "mgmt.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_mgmt_rpc_if_id_vector_t_count,
+         { "Count", "mgmt.rpc_if_id_vector_t.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_rpc_if_id_vector_t_if_id,
+         { "If Id", "mgmt.rpc_if_id_vector_t.if_id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_mgmt_mgmt_inq_princ_name_princ_name_size,
+         { "Princ Name Size", "mgmt.mgmt_inq_princ_name.princ_name_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_mgmt,
+               &ett_mgmt_ndr_syntax_id_p,
+               &ett_mgmt_rpc_if_id_vector_t,
+               &ett_mgmt_mgmt_statistics,
+       };
+
+       proto_dcerpc_mgmt = proto_register_protocol("DCE/RPC Remote Management", "MGMT", "mgmt");
+       proto_register_field_array(proto_dcerpc_mgmt, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_mgmt(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_mgmt, ett_dcerpc_mgmt,
+               &uuid_dcerpc_mgmt, ver_dcerpc_mgmt,
+               mgmt_dissectors, hf_mgmt_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-mgmt.h b/bin/default/librpc/gen_ndr/packet-dcerpc-mgmt.h
new file mode 100644 (file)
index 0000000..30999f4
--- /dev/null
@@ -0,0 +1,34 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/mgmt.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/mgmt.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_MGMT_H
+#define __PACKET_DCERPC_MGMT_H
+
+#define MGMT_STATS_CALLS_IN    ( 0 )
+
+#define MGMT_STATS_CALLS_OUT   ( 1 )
+
+#define MGMT_STATS_PKTS_IN     ( 2 )
+
+#define MGMT_STATS_PKTS_OUT    ( 3 )
+
+#define MGMT_STATS_ARRAY_MAX_SIZE      ( 4 )
+
+int mgmt_dissect_struct_ndr_syntax_id_p(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int mgmt_dissect_struct_rpc_if_id_vector_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int mgmt_dissect_struct_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_MGMT_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-misc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-misc.c
new file mode 100644 (file)
index 0000000..1768015
--- /dev/null
@@ -0,0 +1,1131 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/misc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/misc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-misc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_misc = -1;
+static gint ett_misc_GUID = -1;
+static gint ett_misc_ndr_syntax_id = -1;
+static gint ett_misc_policy_handle = -1;
+static gint ett_misc_KRB5_EDATA_NTSTATUS = -1;
+static gint ett_misc_winreg_Data = -1;
+static gint ett_misc_svcctl_ServerType = -1;
+
+
+/* Header field declarations */
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SERVER = -1;
+static gint hf_misc_GUID_time_low = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_MASTER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_PRINTQ_SERVER = -1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown2 = -1;
+static gint hf_misc_GUID_time_hi_and_version = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_WIN95_PLUS = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_NOVELL = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_TIME_SOURCE = -1;
+static gint hf_misc_GUID_node = -1;
+static gint hf_misc_winreg_Data_string = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_BACKUP_BROWSER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_CTRL = -1;
+static gint hf_misc_winreg_Data_data = -1;
+static gint hf_misc_winreg_Data_binary = -1;
+static gint hf_misc_policy_handle_uuid = -1;
+static gint hf_misc_policy_handle_handle_type = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_WORKSTATION = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_MEMBER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SERVER_OSF = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SERVER_MFPN = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DFS_SERVER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_ALTERNATE_XPORT = -1;
+static gint hf_misc_GUID_time_mid = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_ENUM = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_BAKCTRL = -1;
+static gint hf_misc_winreg_Data_value = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_DIALIN_SERVER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SQLSERVER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_POTENTIAL_BROWSER = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_LOCAL_LIST_ONLY = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_WFW = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SERVER_NT = -1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_ntstatus = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SERVER_UNIX = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_SERVER_VMS = -1;
+static gint hf_misc_KRB5_EDATA_NTSTATUS_unknown1 = -1;
+static gint hf_misc_ndr_syntax_id_uuid = -1;
+static gint hf_misc_opnum = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_AFP = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_MASTER_BROWSER = -1;
+static gint hf_misc_GUID_clock_seq = -1;
+static gint hf_misc_svcctl_ServerType_SV_TYPE_NT = -1;
+static gint hf_misc_ndr_syntax_id_if_version = -1;
+static gint hf_misc_winreg_Data_string_array = -1;
+
+static gint proto_dcerpc_misc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_misc = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_misc = 0;
+
+static int misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string misc_netr_SchannelType_vals[] = {
+       { SEC_CHAN_NULL, "SEC_CHAN_NULL" },
+       { SEC_CHAN_LOCAL, "SEC_CHAN_LOCAL" },
+       { SEC_CHAN_WKSTA, "SEC_CHAN_WKSTA" },
+       { SEC_CHAN_DNS_DOMAIN, "SEC_CHAN_DNS_DOMAIN" },
+       { SEC_CHAN_DOMAIN, "SEC_CHAN_DOMAIN" },
+       { SEC_CHAN_LANMAN, "SEC_CHAN_LANMAN" },
+       { SEC_CHAN_BDC, "SEC_CHAN_BDC" },
+       { SEC_CHAN_RODC, "SEC_CHAN_RODC" },
+{ 0, NULL }
+};
+static int misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string misc_winreg_Type_vals[] = {
+       { REG_NONE, "REG_NONE" },
+       { REG_SZ, "REG_SZ" },
+       { REG_EXPAND_SZ, "REG_EXPAND_SZ" },
+       { REG_BINARY, "REG_BINARY" },
+       { REG_DWORD, "REG_DWORD" },
+       { REG_DWORD_BIG_ENDIAN, "REG_DWORD_BIG_ENDIAN" },
+       { REG_LINK, "REG_LINK" },
+       { REG_MULTI_SZ, "REG_MULTI_SZ" },
+       { REG_RESOURCE_LIST, "REG_RESOURCE_LIST" },
+       { REG_FULL_RESOURCE_DESCRIPTOR, "REG_FULL_RESOURCE_DESCRIPTOR" },
+       { REG_RESOURCE_REQUIREMENTS_LIST, "REG_RESOURCE_REQUIREMENTS_LIST" },
+       { REG_QWORD, "REG_QWORD" },
+{ 0, NULL }
+};
+static int misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int misc_dissect_element_winreg_Data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string misc_netr_SamDatabaseID_vals[] = {
+       { SAM_DATABASE_DOMAIN, "SAM_DATABASE_DOMAIN" },
+       { SAM_DATABASE_BUILTIN, "SAM_DATABASE_BUILTIN" },
+       { SAM_DATABASE_PRIVS, "SAM_DATABASE_PRIVS" },
+{ 0, NULL }
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_WORKSTATION_tfs = {
+   "SV_TYPE_WORKSTATION is SET",
+   "SV_TYPE_WORKSTATION is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SERVER_tfs = {
+   "SV_TYPE_SERVER is SET",
+   "SV_TYPE_SERVER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SQLSERVER_tfs = {
+   "SV_TYPE_SQLSERVER is SET",
+   "SV_TYPE_SQLSERVER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DOMAIN_CTRL_tfs = {
+   "SV_TYPE_DOMAIN_CTRL is SET",
+   "SV_TYPE_DOMAIN_CTRL is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DOMAIN_BAKCTRL_tfs = {
+   "SV_TYPE_DOMAIN_BAKCTRL is SET",
+   "SV_TYPE_DOMAIN_BAKCTRL is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_TIME_SOURCE_tfs = {
+   "SV_TYPE_TIME_SOURCE is SET",
+   "SV_TYPE_TIME_SOURCE is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_AFP_tfs = {
+   "SV_TYPE_AFP is SET",
+   "SV_TYPE_AFP is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_NOVELL_tfs = {
+   "SV_TYPE_NOVELL is SET",
+   "SV_TYPE_NOVELL is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DOMAIN_MEMBER_tfs = {
+   "SV_TYPE_DOMAIN_MEMBER is SET",
+   "SV_TYPE_DOMAIN_MEMBER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_PRINTQ_SERVER_tfs = {
+   "SV_TYPE_PRINTQ_SERVER is SET",
+   "SV_TYPE_PRINTQ_SERVER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DIALIN_SERVER_tfs = {
+   "SV_TYPE_DIALIN_SERVER is SET",
+   "SV_TYPE_DIALIN_SERVER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SERVER_UNIX_tfs = {
+   "SV_TYPE_SERVER_UNIX is SET",
+   "SV_TYPE_SERVER_UNIX is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_NT_tfs = {
+   "SV_TYPE_NT is SET",
+   "SV_TYPE_NT is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_WFW_tfs = {
+   "SV_TYPE_WFW is SET",
+   "SV_TYPE_WFW is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SERVER_MFPN_tfs = {
+   "SV_TYPE_SERVER_MFPN is SET",
+   "SV_TYPE_SERVER_MFPN is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SERVER_NT_tfs = {
+   "SV_TYPE_SERVER_NT is SET",
+   "SV_TYPE_SERVER_NT is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_POTENTIAL_BROWSER_tfs = {
+   "SV_TYPE_POTENTIAL_BROWSER is SET",
+   "SV_TYPE_POTENTIAL_BROWSER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_BACKUP_BROWSER_tfs = {
+   "SV_TYPE_BACKUP_BROWSER is SET",
+   "SV_TYPE_BACKUP_BROWSER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_MASTER_BROWSER_tfs = {
+   "SV_TYPE_MASTER_BROWSER is SET",
+   "SV_TYPE_MASTER_BROWSER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DOMAIN_MASTER_tfs = {
+   "SV_TYPE_DOMAIN_MASTER is SET",
+   "SV_TYPE_DOMAIN_MASTER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SERVER_OSF_tfs = {
+   "SV_TYPE_SERVER_OSF is SET",
+   "SV_TYPE_SERVER_OSF is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_SERVER_VMS_tfs = {
+   "SV_TYPE_SERVER_VMS is SET",
+   "SV_TYPE_SERVER_VMS is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_WIN95_PLUS_tfs = {
+   "SV_TYPE_WIN95_PLUS is SET",
+   "SV_TYPE_WIN95_PLUS is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DFS_SERVER_tfs = {
+   "SV_TYPE_DFS_SERVER is SET",
+   "SV_TYPE_DFS_SERVER is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_ALTERNATE_XPORT_tfs = {
+   "SV_TYPE_ALTERNATE_XPORT is SET",
+   "SV_TYPE_ALTERNATE_XPORT is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_LOCAL_LIST_ONLY_tfs = {
+   "SV_TYPE_LOCAL_LIST_ONLY is SET",
+   "SV_TYPE_LOCAL_LIST_ONLY is NOT SET",
+};
+static const true_false_string svcctl_ServerType_SV_TYPE_DOMAIN_ENUM_tfs = {
+   "SV_TYPE_DOMAIN_ENUM is SET",
+   "SV_TYPE_DOMAIN_ENUM is NOT SET",
+};
+
+
+/* IDL: struct { */
+/* IDL:        uint32 time_low; */
+/* IDL:        uint16 time_mid; */
+/* IDL:        uint16 time_hi_and_version; */
+/* IDL:        uint8 clock_seq[2]; */
+/* IDL:        uint8 node[6]; */
+/* IDL: } */
+
+static int
+misc_dissect_element_GUID_time_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_GUID_time_low, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_GUID_time_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_misc_GUID_time_mid, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_GUID_time_hi_and_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_misc_GUID_time_hi_and_version, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_GUID_clock_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 2; i++)
+               offset = misc_dissect_element_GUID_clock_seq_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_GUID_clock_seq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_misc_GUID_clock_seq, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_GUID_node(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = misc_dissect_element_GUID_node_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_GUID_node_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_misc_GUID_node, 0);
+
+       return offset;
+}
+
+int
+misc_dissect_struct_GUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_misc_GUID);
+       }
+       
+       offset = misc_dissect_element_GUID_time_low(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_GUID_time_mid(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_GUID_time_hi_and_version(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_GUID_clock_seq(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_GUID_node(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID uuid; */
+/* IDL:        uint32 if_version; */
+/* IDL: } */
+
+static int
+misc_dissect_element_ndr_syntax_id_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_misc_ndr_syntax_id_uuid, NULL);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_ndr_syntax_id_if_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_ndr_syntax_id_if_version, 0);
+
+       return offset;
+}
+
+int
+misc_dissect_struct_ndr_syntax_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_misc_ndr_syntax_id);
+       }
+       
+       offset = misc_dissect_element_ndr_syntax_id_uuid(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_ndr_syntax_id_if_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 handle_type; */
+/* IDL:        GUID uuid; */
+/* IDL: } */
+
+static int
+misc_dissect_element_policy_handle_handle_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_policy_handle_handle_type, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_policy_handle_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_misc_policy_handle_uuid, NULL);
+
+       return offset;
+}
+
+int
+misc_dissect_struct_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_misc_policy_handle);
+       }
+       
+       offset = misc_dissect_element_policy_handle_handle_type(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_policy_handle_uuid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SEC_CHAN_NULL=0, */
+/* IDL:        SEC_CHAN_LOCAL=1, */
+/* IDL:        SEC_CHAN_WKSTA=2, */
+/* IDL:        SEC_CHAN_DNS_DOMAIN=3, */
+/* IDL:        SEC_CHAN_DOMAIN=4, */
+/* IDL:        SEC_CHAN_LANMAN=5, */
+/* IDL:        SEC_CHAN_BDC=6, */
+/* IDL:        SEC_CHAN_RODC=7, */
+/* IDL: } */
+
+int
+misc_dissect_enum_netr_SchannelType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTSTATUS ntstatus; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        uint32 unknown2; */
+/* IDL: } */
+
+static int
+misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_KRB5_EDATA_NTSTATUS_ntstatus, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_KRB5_EDATA_NTSTATUS_unknown1, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_KRB5_EDATA_NTSTATUS_unknown2, 0);
+
+       return offset;
+}
+
+int
+misc_dissect_struct_KRB5_EDATA_NTSTATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_misc_KRB5_EDATA_NTSTATUS);
+       }
+       
+       offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_ntstatus(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = misc_dissect_element_KRB5_EDATA_NTSTATUS_unknown2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        REG_NONE=0, */
+/* IDL:        REG_SZ=1, */
+/* IDL:        REG_EXPAND_SZ=2, */
+/* IDL:        REG_BINARY=3, */
+/* IDL:        REG_DWORD=4, */
+/* IDL:        REG_DWORD_BIG_ENDIAN=5, */
+/* IDL:        REG_LINK=6, */
+/* IDL:        REG_MULTI_SZ=7, */
+/* IDL:        REG_RESOURCE_LIST=8, */
+/* IDL:        REG_FULL_RESOURCE_DESCRIPTOR=9, */
+/* IDL:        REG_RESOURCE_REQUIREMENTS_LIST=10, */
+/* IDL:        REG_QWORD=11, */
+/* IDL: } */
+
+int
+misc_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_LITTLE_ENDIAN)] union { */
+/* IDL: [case(REG_NONE)] [case(REG_NONE)] EMPTY ; */
+/* IDL: [case(REG_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_SZ)] string string; */
+/* IDL: [case(REG_EXPAND_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_EXPAND_SZ)] string string; */
+/* IDL: [case(REG_BINARY)] [flag(LIBNDR_FLAG_REMAINING)] [case(REG_BINARY)] DATA_BLOB binary; */
+/* IDL: [case(REG_DWORD)] [case(REG_DWORD)] uint32 value; */
+/* IDL: [case(REG_DWORD_BIG_ENDIAN)] [flag(LIBNDR_FLAG_BIGENDIAN)] [case(REG_DWORD_BIG_ENDIAN)] uint32 value; */
+/* IDL: [case(REG_MULTI_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_MULTI_SZ)] string_array string_array; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_string , 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_string , 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_binary, 1);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_value, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_value, 0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = misc_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_misc_winreg_Data_string_array,0);
+
+       return offset;
+}
+
+static int
+misc_dissect_element_winreg_Data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_misc_winreg_Data_data, 1);
+
+       return offset;
+}
+
+static int
+misc_dissect_winreg_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "winreg_Data");
+               tree = proto_item_add_subtree(item, ett_misc_winreg_Data);
+       }
+
+       switch(level) {
+               case REG_NONE:
+               break;
+
+               case REG_SZ:
+                       offset = misc_dissect_element_winreg_Data_string(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_EXPAND_SZ:
+                       offset = misc_dissect_element_winreg_Data_string(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_BINARY:
+                       offset = misc_dissect_element_winreg_Data_binary(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_DWORD:
+                       offset = misc_dissect_element_winreg_Data_value(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_DWORD_BIG_ENDIAN:
+                       offset = misc_dissect_element_winreg_Data_value(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_MULTI_SZ:
+                       offset = misc_dissect_element_winreg_Data_string_array(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = misc_dissect_element_winreg_Data_data(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        SAM_DATABASE_DOMAIN=0, */
+/* IDL:        SAM_DATABASE_BUILTIN=1, */
+/* IDL:        SAM_DATABASE_PRIVS=2, */
+/* IDL: } */
+
+int
+misc_dissect_enum_netr_SamDatabaseID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SV_TYPE_WORKSTATION =  0x00000001 , */
+/* IDL:        SV_TYPE_SERVER =  0x00000002 , */
+/* IDL:        SV_TYPE_SQLSERVER =  0x00000004 , */
+/* IDL:        SV_TYPE_DOMAIN_CTRL =  0x00000008 , */
+/* IDL:        SV_TYPE_DOMAIN_BAKCTRL =  0x00000010 , */
+/* IDL:        SV_TYPE_TIME_SOURCE =  0x00000020 , */
+/* IDL:        SV_TYPE_AFP =  0x00000040 , */
+/* IDL:        SV_TYPE_NOVELL =  0x00000080 , */
+/* IDL:        SV_TYPE_DOMAIN_MEMBER =  0x00000100 , */
+/* IDL:        SV_TYPE_PRINTQ_SERVER =  0x00000200 , */
+/* IDL:        SV_TYPE_DIALIN_SERVER =  0x00000400 , */
+/* IDL:        SV_TYPE_SERVER_UNIX =  0x00000800 , */
+/* IDL:        SV_TYPE_NT =  0x00001000 , */
+/* IDL:        SV_TYPE_WFW =  0x00002000 , */
+/* IDL:        SV_TYPE_SERVER_MFPN =  0x00004000 , */
+/* IDL:        SV_TYPE_SERVER_NT =  0x00008000 , */
+/* IDL:        SV_TYPE_POTENTIAL_BROWSER =  0x00010000 , */
+/* IDL:        SV_TYPE_BACKUP_BROWSER =  0x00020000 , */
+/* IDL:        SV_TYPE_MASTER_BROWSER =  0x00040000 , */
+/* IDL:        SV_TYPE_DOMAIN_MASTER =  0x00080000 , */
+/* IDL:        SV_TYPE_SERVER_OSF =  0x00100000 , */
+/* IDL:        SV_TYPE_SERVER_VMS =  0x00200000 , */
+/* IDL:        SV_TYPE_WIN95_PLUS =  0x00400000 , */
+/* IDL:        SV_TYPE_DFS_SERVER =  0x00800000 , */
+/* IDL:        SV_TYPE_ALTERNATE_XPORT =  0x20000000 , */
+/* IDL:        SV_TYPE_LOCAL_LIST_ONLY =  0x40000000 , */
+/* IDL:        SV_TYPE_DOMAIN_ENUM =  0x80000000 , */
+/* IDL: } */
+
+int
+misc_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_misc_svcctl_ServerType);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_WORKSTATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SV_TYPE_WORKSTATION");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SV_TYPE_SERVER");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SQLSERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SV_TYPE_SQLSERVER");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_CTRL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SV_TYPE_DOMAIN_CTRL");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_BAKCTRL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SV_TYPE_DOMAIN_BAKCTRL");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_TIME_SOURCE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SV_TYPE_TIME_SOURCE");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_AFP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "SV_TYPE_AFP");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_NOVELL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "SV_TYPE_NOVELL");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_MEMBER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "SV_TYPE_DOMAIN_MEMBER");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_PRINTQ_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "SV_TYPE_PRINTQ_SERVER");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DIALIN_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "SV_TYPE_DIALIN_SERVER");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SERVER_UNIX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "SV_TYPE_SERVER_UNIX");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_NT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "SV_TYPE_NT");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_WFW, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "SV_TYPE_WFW");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SERVER_MFPN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "SV_TYPE_SERVER_MFPN");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SERVER_NT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "SV_TYPE_SERVER_NT");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_POTENTIAL_BROWSER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "SV_TYPE_POTENTIAL_BROWSER");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_BACKUP_BROWSER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "SV_TYPE_BACKUP_BROWSER");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_MASTER_BROWSER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "SV_TYPE_MASTER_BROWSER");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_MASTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "SV_TYPE_DOMAIN_MASTER");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SERVER_OSF, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "SV_TYPE_SERVER_OSF");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_SERVER_VMS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "SV_TYPE_SERVER_VMS");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_WIN95_PLUS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "SV_TYPE_WIN95_PLUS");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DFS_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "SV_TYPE_DFS_SERVER");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_ALTERNATE_XPORT, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "SV_TYPE_ALTERNATE_XPORT");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_LOCAL_LIST_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "SV_TYPE_LOCAL_LIST_ONLY");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_ENUM, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "SV_TYPE_DOMAIN_ENUM");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector misc_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_misc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SERVER,
+         { "Sv Type Server", "misc.svcctl_ServerType.SV_TYPE_SERVER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SERVER_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_misc_GUID_time_low,
+         { "Time Low", "misc.GUID.time_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_MASTER,
+         { "Sv Type Domain Master", "misc.svcctl_ServerType.SV_TYPE_DOMAIN_MASTER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DOMAIN_MASTER_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_PRINTQ_SERVER,
+         { "Sv Type Printq Server", "misc.svcctl_ServerType.SV_TYPE_PRINTQ_SERVER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_PRINTQ_SERVER_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_misc_KRB5_EDATA_NTSTATUS_unknown2,
+         { "Unknown2", "misc.KRB5_EDATA_NTSTATUS.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_GUID_time_hi_and_version,
+         { "Time Hi And Version", "misc.GUID.time_hi_and_version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_WIN95_PLUS,
+         { "Sv Type Win95 Plus", "misc.svcctl_ServerType.SV_TYPE_WIN95_PLUS", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_WIN95_PLUS_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_NOVELL,
+         { "Sv Type Novell", "misc.svcctl_ServerType.SV_TYPE_NOVELL", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_NOVELL_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_TIME_SOURCE,
+         { "Sv Type Time Source", "misc.svcctl_ServerType.SV_TYPE_TIME_SOURCE", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_TIME_SOURCE_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_misc_GUID_node,
+         { "Node", "misc.GUID.node", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_winreg_Data_string,
+         { "String", "misc.winreg_Data.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_BACKUP_BROWSER,
+         { "Sv Type Backup Browser", "misc.svcctl_ServerType.SV_TYPE_BACKUP_BROWSER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_BACKUP_BROWSER_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_CTRL,
+         { "Sv Type Domain Ctrl", "misc.svcctl_ServerType.SV_TYPE_DOMAIN_CTRL", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DOMAIN_CTRL_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_misc_winreg_Data_data,
+         { "Data", "misc.winreg_Data.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_misc_winreg_Data_binary,
+         { "Binary", "misc.winreg_Data.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_misc_policy_handle_uuid,
+         { "Uuid", "misc.policy_handle.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_misc_policy_handle_handle_type,
+         { "Handle Type", "misc.policy_handle.handle_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_WORKSTATION,
+         { "Sv Type Workstation", "misc.svcctl_ServerType.SV_TYPE_WORKSTATION", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_WORKSTATION_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_MEMBER,
+         { "Sv Type Domain Member", "misc.svcctl_ServerType.SV_TYPE_DOMAIN_MEMBER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DOMAIN_MEMBER_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SERVER_OSF,
+         { "Sv Type Server Osf", "misc.svcctl_ServerType.SV_TYPE_SERVER_OSF", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SERVER_OSF_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SERVER_MFPN,
+         { "Sv Type Server Mfpn", "misc.svcctl_ServerType.SV_TYPE_SERVER_MFPN", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SERVER_MFPN_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DFS_SERVER,
+         { "Sv Type Dfs Server", "misc.svcctl_ServerType.SV_TYPE_DFS_SERVER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DFS_SERVER_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_ALTERNATE_XPORT,
+         { "Sv Type Alternate Xport", "misc.svcctl_ServerType.SV_TYPE_ALTERNATE_XPORT", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_ALTERNATE_XPORT_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_misc_GUID_time_mid,
+         { "Time Mid", "misc.GUID.time_mid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_ENUM,
+         { "Sv Type Domain Enum", "misc.svcctl_ServerType.SV_TYPE_DOMAIN_ENUM", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DOMAIN_ENUM_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DOMAIN_BAKCTRL,
+         { "Sv Type Domain Bakctrl", "misc.svcctl_ServerType.SV_TYPE_DOMAIN_BAKCTRL", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DOMAIN_BAKCTRL_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_misc_winreg_Data_value,
+         { "Value", "misc.winreg_Data.value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_DIALIN_SERVER,
+         { "Sv Type Dialin Server", "misc.svcctl_ServerType.SV_TYPE_DIALIN_SERVER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_DIALIN_SERVER_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SQLSERVER,
+         { "Sv Type Sqlserver", "misc.svcctl_ServerType.SV_TYPE_SQLSERVER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SQLSERVER_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_POTENTIAL_BROWSER,
+         { "Sv Type Potential Browser", "misc.svcctl_ServerType.SV_TYPE_POTENTIAL_BROWSER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_POTENTIAL_BROWSER_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_LOCAL_LIST_ONLY,
+         { "Sv Type Local List Only", "misc.svcctl_ServerType.SV_TYPE_LOCAL_LIST_ONLY", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_LOCAL_LIST_ONLY_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_WFW,
+         { "Sv Type Wfw", "misc.svcctl_ServerType.SV_TYPE_WFW", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_WFW_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SERVER_NT,
+         { "Sv Type Server Nt", "misc.svcctl_ServerType.SV_TYPE_SERVER_NT", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SERVER_NT_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_misc_KRB5_EDATA_NTSTATUS_ntstatus,
+         { "Ntstatus", "misc.KRB5_EDATA_NTSTATUS.ntstatus", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SERVER_UNIX,
+         { "Sv Type Server Unix", "misc.svcctl_ServerType.SV_TYPE_SERVER_UNIX", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SERVER_UNIX_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_SERVER_VMS,
+         { "Sv Type Server Vms", "misc.svcctl_ServerType.SV_TYPE_SERVER_VMS", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_SERVER_VMS_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_misc_KRB5_EDATA_NTSTATUS_unknown1,
+         { "Unknown1", "misc.KRB5_EDATA_NTSTATUS.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_ndr_syntax_id_uuid,
+         { "Uuid", "misc.ndr_syntax_id.uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_misc_opnum,
+         { "Operation", "misc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_AFP,
+         { "Sv Type Afp", "misc.svcctl_ServerType.SV_TYPE_AFP", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_AFP_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_MASTER_BROWSER,
+         { "Sv Type Master Browser", "misc.svcctl_ServerType.SV_TYPE_MASTER_BROWSER", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_MASTER_BROWSER_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_misc_GUID_clock_seq,
+         { "Clock Seq", "misc.GUID.clock_seq", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_svcctl_ServerType_SV_TYPE_NT,
+         { "Sv Type Nt", "misc.svcctl_ServerType.SV_TYPE_NT", FT_BOOLEAN, 32, TFS(&svcctl_ServerType_SV_TYPE_NT_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_misc_ndr_syntax_id_if_version,
+         { "If Version", "misc.ndr_syntax_id.if_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_misc_winreg_Data_string_array,
+         { "String Array", "misc.winreg_Data.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_misc,
+               &ett_misc_GUID,
+               &ett_misc_ndr_syntax_id,
+               &ett_misc_policy_handle,
+               &ett_misc_KRB5_EDATA_NTSTATUS,
+               &ett_misc_winreg_Data,
+               &ett_misc_svcctl_ServerType,
+       };
+
+       proto_dcerpc_misc = proto_register_protocol("MISC (pidl)", "MISC", "misc");
+       proto_register_field_array(proto_dcerpc_misc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_misc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_misc, ett_dcerpc_misc,
+               &uuid_dcerpc_misc, ver_dcerpc_misc,
+               misc_dissectors, hf_misc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-misc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-misc.h
new file mode 100644 (file)
index 0000000..ec4dca1
--- /dev/null
@@ -0,0 +1,55 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/misc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/misc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_MISC_H
+#define __PACKET_DCERPC_MISC_H
+
+#define SV_TYPE_ALL    ( 0xFFFFFFFF )
+
+int misc_dissect_struct_GUID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int misc_dissect_struct_ndr_syntax_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int misc_dissect_struct_policy_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SEC_CHAN_NULL (0)
+#define SEC_CHAN_LOCAL (1)
+#define SEC_CHAN_WKSTA (2)
+#define SEC_CHAN_DNS_DOMAIN (3)
+#define SEC_CHAN_DOMAIN (4)
+#define SEC_CHAN_LANMAN (5)
+#define SEC_CHAN_BDC (6)
+#define SEC_CHAN_RODC (7)
+extern const value_string misc_netr_SchannelType_vals[];
+int misc_dissect_enum_netr_SchannelType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int misc_dissect_struct_KRB5_EDATA_NTSTATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define REG_NONE (0)
+#define REG_SZ (1)
+#define REG_EXPAND_SZ (2)
+#define REG_BINARY (3)
+#define REG_DWORD (4)
+#define REG_DWORD_BIG_ENDIAN (5)
+#define REG_LINK (6)
+#define REG_MULTI_SZ (7)
+#define REG_RESOURCE_LIST (8)
+#define REG_FULL_RESOURCE_DESCRIPTOR (9)
+#define REG_RESOURCE_REQUIREMENTS_LIST (10)
+#define REG_QWORD (11)
+extern const value_string misc_winreg_Type_vals[];
+int misc_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SAM_DATABASE_DOMAIN (0)
+#define SAM_DATABASE_BUILTIN (1)
+#define SAM_DATABASE_PRIVS (2)
+extern const value_string misc_netr_SamDatabaseID_vals[];
+int misc_dissect_enum_netr_SamDatabaseID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int misc_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_MISC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-msgsvc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-msgsvc.c
new file mode 100644 (file)
index 0000000..f9561da
--- /dev/null
@@ -0,0 +1,219 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/msgsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/msgsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-msgsvc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_msgsvc = -1;
+static gint ett_dcerpc_msgsvcsend = -1;
+
+
+/* Header field declarations */
+static gint hf_msgsvcsend_opnum = -1;
+static gint hf_msgsvc_opnum = -1;
+
+static gint proto_dcerpc_msgsvc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_msgsvc = {
+       0x17fdd703, 0x1827, 0x4e34,
+       { 0x79, 0xd4, 0x24, 0xa5, 0x5c, 0x53, 0xbb, 0x37 }
+};
+static guint16 ver_dcerpc_msgsvc = 1;
+
+static gint proto_dcerpc_msgsvcsend = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_msgsvcsend = {
+       0x5a7b91f8, 0xff00, 0x11d0,
+       { 0xa9, 0xb2, 0x00, 0xc0, 0x4f, 0xb6, 0xe6, 0xfc }
+};
+static guint16 ver_dcerpc_msgsvcsend = 1;
+
+
+/* IDL: void NetrMessageNameAdd( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+msgsvc_dissect_NetrMessageNameAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameAdd";
+       return offset;
+}
+
+static int
+msgsvc_dissect_NetrMessageNameAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameAdd";
+       return offset;
+}
+
+/* IDL: void NetrMessageNameEnum( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+msgsvc_dissect_NetrMessageNameEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameEnum";
+       return offset;
+}
+
+static int
+msgsvc_dissect_NetrMessageNameEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameEnum";
+       return offset;
+}
+
+/* IDL: void NetrMessageNameGetInfo( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+msgsvc_dissect_NetrMessageNameGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameGetInfo";
+       return offset;
+}
+
+static int
+msgsvc_dissect_NetrMessageNameGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameGetInfo";
+       return offset;
+}
+
+/* IDL: void NetrMessageNameDel( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+msgsvc_dissect_NetrMessageNameDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameDel";
+       return offset;
+}
+
+static int
+msgsvc_dissect_NetrMessageNameDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageNameDel";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector msgsvc_dissectors[] = {
+       { 0, "NetrMessageNameAdd",
+          msgsvc_dissect_NetrMessageNameAdd_request, msgsvc_dissect_NetrMessageNameAdd_response},
+       { 1, "NetrMessageNameEnum",
+          msgsvc_dissect_NetrMessageNameEnum_request, msgsvc_dissect_NetrMessageNameEnum_response},
+       { 2, "NetrMessageNameGetInfo",
+          msgsvc_dissect_NetrMessageNameGetInfo_request, msgsvc_dissect_NetrMessageNameGetInfo_response},
+       { 3, "NetrMessageNameDel",
+          msgsvc_dissect_NetrMessageNameDel_request, msgsvc_dissect_NetrMessageNameDel_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_msgsvc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_msgsvc_opnum,
+         { "Operation", "msgsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_msgsvc,
+       };
+
+       proto_dcerpc_msgsvc = proto_register_protocol("Messaging Service", "MSGSVC", "msgsvc");
+       proto_register_field_array(proto_dcerpc_msgsvc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_msgsvc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_msgsvc, ett_dcerpc_msgsvc,
+               &uuid_dcerpc_msgsvc, ver_dcerpc_msgsvc,
+               msgsvc_dissectors, hf_msgsvc_opnum);
+}
+/* IDL: void NetrSendMessage( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+msgsvcsend_dissect_NetrSendMessage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrSendMessage";
+       return offset;
+}
+
+static int
+msgsvcsend_dissect_NetrSendMessage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrSendMessage";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector msgsvcsend_dissectors[] = {
+       { 0, "NetrSendMessage",
+          msgsvcsend_dissect_NetrSendMessage_request, msgsvcsend_dissect_NetrSendMessage_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_msgsvcsend(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_msgsvcsend_opnum,
+         { "Operation", "msgsvcsend.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_msgsvc_opnum,
+         { "Operation", "msgsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_msgsvc,
+               &ett_dcerpc_msgsvcsend,
+       };
+
+       proto_dcerpc_msgsvcsend = proto_register_protocol("NULL", "MSGSVCSEND", "msgsvcsend");
+       proto_register_field_array(proto_dcerpc_msgsvcsend, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_msgsvcsend(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_msgsvcsend, ett_dcerpc_msgsvcsend,
+               &uuid_dcerpc_msgsvcsend, ver_dcerpc_msgsvcsend,
+               msgsvcsend_dissectors, hf_msgsvcsend_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-msgsvc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-msgsvc.h
new file mode 100644 (file)
index 0000000..5ef4859
--- /dev/null
@@ -0,0 +1,23 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/msgsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/msgsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_MSGSVC_H
+#define __PACKET_DCERPC_MSGSVC_H
+
+#endif /* __PACKET_DCERPC_MSGSVC_H */
+#ifndef __PACKET_DCERPC_MSGSVCSEND_H
+#define __PACKET_DCERPC_MSGSVCSEND_H
+
+#endif /* __PACKET_DCERPC_MSGSVCSEND_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.c b/bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.c
new file mode 100644 (file)
index 0000000..84d0c27
--- /dev/null
@@ -0,0 +1,670 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/named_pipe_auth.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/named_pipe_auth.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-named_pipe_auth.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_named_pipe_auth = -1;
+static gint ett_named_pipe_auth_named_pipe_auth_req_info4 = -1;
+static gint ett_named_pipe_auth_named_pipe_auth_req_info = -1;
+static gint ett_named_pipe_auth_named_pipe_auth_req = -1;
+static gint ett_named_pipe_auth_named_pipe_auth_rep_info4 = -1;
+static gint ett_named_pipe_auth_named_pipe_auth_rep_info = -1;
+static gint ett_named_pipe_auth_named_pipe_auth_rep = -1;
+
+
+/* Header field declarations */
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_client_name = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_length = -1;
+static gint hf_named_pipe_auth_opnum = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_status = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_info4_allocation_size = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_client_addr = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_info = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info_info4 = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_session_info = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_magic = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_magic = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_level = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_server_port = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_info4_file_type = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_level = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_client_port = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_info4_device_state = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_server_addr = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_info_info4 = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_rep_length = -1;
+static gint hf_named_pipe_auth_named_pipe_auth_req_info4_server_name = -1;
+
+static gint proto_dcerpc_named_pipe_auth = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_named_pipe_auth = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_named_pipe_auth = 0;
+
+static int named_pipe_auth_dissect_element_req_info4_client_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_client_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_client_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_client_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_client_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_server_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_server_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_server_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_session_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info4_session_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_req_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int named_pipe_auth_dissect_element_req_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int named_pipe_auth_dissect_element_rep_info4_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_info4_device_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_info4_allocation_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int named_pipe_auth_dissect_element_rep_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int named_pipe_auth_dissect_element_rep_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int named_pipe_auth_dissect_element_rep_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *client_name; */
+/* IDL:        [unique(1)] [charset(DOS)] uint8 *client_addr; */
+/* IDL:        uint16 client_port; */
+/* IDL:        [unique(1)] [charset(UTF8)] uint8 *server_name; */
+/* IDL:        [unique(1)] [charset(DOS)] uint8 *server_addr; */
+/* IDL:        uint16 server_port; */
+/* IDL:        [unique(1)] auth_session_info_transport *session_info; */
+/* IDL: } */
+
+static int
+named_pipe_auth_dissect_element_req_info4_client_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, named_pipe_auth_dissect_element_req_info4_client_name_, NDR_POINTER_UNIQUE, "Pointer to Client Name (uint8)",hf_named_pipe_auth_named_pipe_auth_req_info4_client_name);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_client_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_named_pipe_auth_named_pipe_auth_req_info4_client_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_client_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, named_pipe_auth_dissect_element_req_info4_client_addr_, NDR_POINTER_UNIQUE, "Pointer to Client Addr (uint8)",hf_named_pipe_auth_named_pipe_auth_req_info4_client_addr);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_client_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_named_pipe_auth_named_pipe_auth_req_info4_client_addr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_client_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_info4_client_port, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, named_pipe_auth_dissect_element_req_info4_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint8)",hf_named_pipe_auth_named_pipe_auth_req_info4_server_name);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_named_pipe_auth_named_pipe_auth_req_info4_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_server_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, named_pipe_auth_dissect_element_req_info4_server_addr_, NDR_POINTER_UNIQUE, "Pointer to Server Addr (uint8)",hf_named_pipe_auth_named_pipe_auth_req_info4_server_addr);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_server_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_named_pipe_auth_named_pipe_auth_req_info4_server_addr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_server_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_info4_server_port, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_session_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, named_pipe_auth_dissect_element_req_info4_session_info_, NDR_POINTER_UNIQUE, "Pointer to Session Info (auth_session_info_transport)",hf_named_pipe_auth_named_pipe_auth_req_info4_session_info);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info4_session_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = named_pipe_auth_dissect_struct_auth_session_info_transport(tvb,offset,pinfo,tree,drep,hf_named_pipe_auth_named_pipe_auth_req_info4_session_info,0);
+
+       return offset;
+}
+
+int
+named_pipe_auth_dissect_struct_req_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_named_pipe_auth_named_pipe_auth_req_info4);
+       }
+       
+       offset = named_pipe_auth_dissect_element_req_info4_client_name(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_info4_client_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_info4_client_port(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_info4_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_info4_server_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_info4_server_port(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_info4_session_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(4)] [case(4)] named_pipe_auth_req_info4 info4; */
+/* IDL: } */
+
+static int
+named_pipe_auth_dissect_element_req_info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = named_pipe_auth_dissect_struct_req_info4(tvb,offset,pinfo,tree,drep,hf_named_pipe_auth_named_pipe_auth_req_info_info4,0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_req_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "named_pipe_auth_req_info");
+               tree = proto_item_add_subtree(item, ett_named_pipe_auth_named_pipe_auth_req_info);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 4:
+                       offset = named_pipe_auth_dissect_element_req_info_info4(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_named_pipe_auth_req(r,ndr->flags)-4)] [flag(LIBNDR_FLAG_BIGENDIAN)] uint32 length; */
+/* IDL:        [value(NAMED_PIPE_AUTH_MAGIC)] [charset(DOS)] uint8 magic[4]; */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] named_pipe_auth_req_info info; */
+/* IDL: } */
+
+static int
+named_pipe_auth_dissect_element_req_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_length, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = named_pipe_auth_dissect_element_req_magic_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_magic, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_level, level);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_req_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = named_pipe_auth_dissect_req_info(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_req_info, *level);
+
+       return offset;
+}
+
+int
+named_pipe_auth_dissect_struct_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_named_pipe_auth_named_pipe_auth_req);
+       }
+       
+       offset = named_pipe_auth_dissect_element_req_length(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_req_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = named_pipe_auth_dissect_element_req_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 file_type; */
+/* IDL:        uint16 device_state; */
+/* IDL:        hyper allocation_size; */
+/* IDL: } */
+
+static int
+named_pipe_auth_dissect_element_rep_info4_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_info4_file_type, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_info4_device_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_info4_device_state, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_info4_allocation_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_info4_allocation_size, NULL);
+
+       return offset;
+}
+
+int
+named_pipe_auth_dissect_struct_rep_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_named_pipe_auth_named_pipe_auth_rep_info4);
+       }
+       
+       offset = named_pipe_auth_dissect_element_rep_info4_file_type(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_rep_info4_device_state(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_rep_info4_allocation_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(4)] [case(4)] named_pipe_auth_rep_info4 info4; */
+/* IDL: } */
+
+static int
+named_pipe_auth_dissect_element_rep_info_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = named_pipe_auth_dissect_struct_rep_info4(tvb,offset,pinfo,tree,drep,hf_named_pipe_auth_named_pipe_auth_rep_info_info4,0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_rep_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "named_pipe_auth_rep_info");
+               tree = proto_item_add_subtree(item, ett_named_pipe_auth_named_pipe_auth_rep_info);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 4:
+                       offset = named_pipe_auth_dissect_element_rep_info_info4(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_named_pipe_auth_rep(r,ndr->flags)-4)] [flag(LIBNDR_FLAG_BIGENDIAN)] uint32 length; */
+/* IDL:        [value(NAMED_PIPE_AUTH_MAGIC)] [charset(DOS)] uint8 magic[4]; */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] named_pipe_auth_rep_info info; */
+/* IDL:        NTSTATUS status; */
+/* IDL: } */
+
+static int
+named_pipe_auth_dissect_element_rep_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_length, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = named_pipe_auth_dissect_element_rep_magic_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_magic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_magic, 0);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_level, level);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = named_pipe_auth_dissect_rep_info(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_info, *level);
+
+       return offset;
+}
+
+static int
+named_pipe_auth_dissect_element_rep_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_named_pipe_auth_named_pipe_auth_rep_status, 0);
+
+       return offset;
+}
+
+int
+named_pipe_auth_dissect_struct_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_named_pipe_auth_named_pipe_auth_rep);
+       }
+       
+       offset = named_pipe_auth_dissect_element_rep_length(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_rep_magic(tvb, offset, pinfo, tree, drep);
+
+       offset = named_pipe_auth_dissect_element_rep_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = named_pipe_auth_dissect_element_rep_info(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = named_pipe_auth_dissect_element_rep_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector named_pipe_auth_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_named_pipe_auth(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_client_name,
+         { "Client Name", "named_pipe_auth.named_pipe_auth_req_info4.client_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_length,
+         { "Length", "named_pipe_auth.named_pipe_auth_req.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_opnum,
+         { "Operation", "named_pipe_auth.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_status,
+         { "Status", "named_pipe_auth.named_pipe_auth_rep.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_info4_allocation_size,
+         { "Allocation Size", "named_pipe_auth.named_pipe_auth_rep_info4.allocation_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_client_addr,
+         { "Client Addr", "named_pipe_auth.named_pipe_auth_req_info4.client_addr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_info,
+         { "Info", "named_pipe_auth.named_pipe_auth_rep.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info_info4,
+         { "Info4", "named_pipe_auth.named_pipe_auth_req_info.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info,
+         { "Info", "named_pipe_auth.named_pipe_auth_req.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_session_info,
+         { "Session Info", "named_pipe_auth.named_pipe_auth_req_info4.session_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_magic,
+         { "Magic", "named_pipe_auth.named_pipe_auth_rep.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_magic,
+         { "Magic", "named_pipe_auth.named_pipe_auth_req.magic", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_level,
+         { "Level", "named_pipe_auth.named_pipe_auth_rep.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_server_port,
+         { "Server Port", "named_pipe_auth.named_pipe_auth_req_info4.server_port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_info4_file_type,
+         { "File Type", "named_pipe_auth.named_pipe_auth_rep_info4.file_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_level,
+         { "Level", "named_pipe_auth.named_pipe_auth_req.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_client_port,
+         { "Client Port", "named_pipe_auth.named_pipe_auth_req_info4.client_port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_info4_device_state,
+         { "Device State", "named_pipe_auth.named_pipe_auth_rep_info4.device_state", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_server_addr,
+         { "Server Addr", "named_pipe_auth.named_pipe_auth_req_info4.server_addr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_info_info4,
+         { "Info4", "named_pipe_auth.named_pipe_auth_rep_info.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_rep_length,
+         { "Length", "named_pipe_auth.named_pipe_auth_rep.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_named_pipe_auth_named_pipe_auth_req_info4_server_name,
+         { "Server Name", "named_pipe_auth.named_pipe_auth_req_info4.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_named_pipe_auth,
+               &ett_named_pipe_auth_named_pipe_auth_req_info4,
+               &ett_named_pipe_auth_named_pipe_auth_req_info,
+               &ett_named_pipe_auth_named_pipe_auth_req,
+               &ett_named_pipe_auth_named_pipe_auth_rep_info4,
+               &ett_named_pipe_auth_named_pipe_auth_rep_info,
+               &ett_named_pipe_auth_named_pipe_auth_rep,
+       };
+
+       proto_dcerpc_named_pipe_auth = proto_register_protocol("NAMED_PIPE_AUTH (pidl)", "NAMED_PIPE_AUTH", "named_pipe_auth");
+       proto_register_field_array(proto_dcerpc_named_pipe_auth, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_named_pipe_auth(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_named_pipe_auth, ett_dcerpc_named_pipe_auth,
+               &uuid_dcerpc_named_pipe_auth, ver_dcerpc_named_pipe_auth,
+               named_pipe_auth_dissectors, hf_named_pipe_auth_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.h b/bin/default/librpc/gen_ndr/packet-dcerpc-named_pipe_auth.h
new file mode 100644 (file)
index 0000000..339f5dc
--- /dev/null
@@ -0,0 +1,29 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/named_pipe_auth.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/named_pipe_auth.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-netlogon.h"
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-auth.h"
+
+#ifndef __PACKET_DCERPC_NAMED_PIPE_AUTH_H
+#define __PACKET_DCERPC_NAMED_PIPE_AUTH_H
+
+#define NAMED_PIPE_AUTH_MAGIC  ( "NPAM" )
+
+int named_pipe_auth_dissect_struct_req_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int named_pipe_auth_dissect_struct_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int named_pipe_auth_dissect_struct_rep_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int named_pipe_auth_dissect_struct_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NAMED_PIPE_AUTH_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-nbt.c b/bin/default/librpc/gen_ndr/packet-dcerpc-nbt.c
new file mode 100644 (file)
index 0000000..6d4076d
--- /dev/null
@@ -0,0 +1,7109 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/nbt.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/nbt.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-nbt.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_nbt = -1;
+static gint ett_nbt_nbt_operation = -1;
+static gint ett_nbt_nbt_name = -1;
+static gint ett_nbt_nbt_name_question = -1;
+static gint ett_nbt_nb_flags = -1;
+static gint ett_nbt_nbt_rdata_address = -1;
+static gint ett_nbt_nbt_rdata_netbios = -1;
+static gint ett_nbt_nbt_statistics = -1;
+static gint ett_nbt_nbt_status_name = -1;
+static gint ett_nbt_nbt_rdata_status = -1;
+static gint ett_nbt_nbt_rdata_data = -1;
+static gint ett_nbt_nbt_rdata = -1;
+static gint ett_nbt_nbt_res_rec = -1;
+static gint ett_nbt_nbt_name_packet = -1;
+static gint ett_nbt_dgram_flags = -1;
+static gint ett_nbt_smb_trans_body = -1;
+static gint ett_nbt_smb_body = -1;
+static gint ett_nbt_dgram_smb_packet = -1;
+static gint ett_nbt_dgram_message_body = -1;
+static gint ett_nbt_dgram_message = -1;
+static gint ett_nbt_dgram_data = -1;
+static gint ett_nbt_nbt_dgram_packet = -1;
+static gint ett_nbt_nbt_sockaddr = -1;
+static gint ett_nbt_nbt_server_type = -1;
+static gint ett_nbt_netlogon_nt_version_flags = -1;
+static gint ett_nbt_NETLOGON_SAM_LOGON_REQUEST = -1;
+static gint ett_nbt_NETLOGON_LOGON_REQUEST = -1;
+static gint ett_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40 = -1;
+static gint ett_nbt_NETLOGON_SAM_LOGON_RESPONSE = -1;
+static gint ett_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX = -1;
+static gint ett_nbt_nbt_netlogon_query_for_pdc = -1;
+static gint ett_nbt_nbt_netlogon_response_from_pdc = -1;
+static gint ett_nbt_nbt_netlogon_response2 = -1;
+static gint ett_nbt_nbt_db_change_info = -1;
+static gint ett_nbt_NETLOGON_DB_CHANGE = -1;
+static gint ett_nbt_nbt_netlogon_request = -1;
+static gint ett_nbt_nbt_netlogon_packet = -1;
+static gint ett_nbt_svcctl_ServerType = -1;
+static gint ett_nbt_nbt_browse_host_announcement = -1;
+static gint ett_nbt_nbt_browse_announcement_request = -1;
+static gint ett_nbt_nbt_browse_election_request = -1;
+static gint ett_nbt_nbt_browse_backup_list_request = -1;
+static gint ett_nbt_nbt_browse_backup_list_response = -1;
+static gint ett_nbt_nbt_browse_become_backup = -1;
+static gint ett_nbt_nbt_browse_domain_announcement = -1;
+static gint ett_nbt_nbt_browse_master_announcement = -1;
+static gint ett_nbt_nbt_browse_reset_state = -1;
+static gint ett_nbt_nbt_browse_local_master_announcement = -1;
+static gint ett_nbt_nbt_browse_payload = -1;
+static gint ett_nbt_nbt_browse_packet = -1;
+
+
+/* Header field declarations */
+static gint hf_nbt_nb_flags_NBT_NM_OWNER_TYPE = -1;
+static gint hf_nbt_smb_trans_body_data_count = -1;
+static gint hf_nbt_nbt_db_change_info_db_index = -1;
+static gint hf_nbt_dgram_message_offset = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc_lmnt_token = -1;
+static gint hf_nbt_dgram_message_body = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr = -1;
+static gint hf_nbt_nbt_name_packet_questions = -1;
+static gint hf_nbt_nbt_name_packet_ancount = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_lmnt_token = -1;
+static gint hf_nbt_smb_trans_body_opcode = -1;
+static gint hf_nbt_nbt_statistics_number_no_resource_conditions = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_IP = -1;
+static gint hf_nbt_nbt_rdata_data = -1;
+static gint hf_nbt_nbt_rdata_status_statistics = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_WITH_IP = -1;
+static gint hf_nbt_nbt_sockaddr_sockaddr_family = -1;
+static gint hf_nbt_nbt_name_question_question_type = -1;
+static gint hf_nbt_dgram_smb_packet_reserved = -1;
+static gint hf_nbt_nbt_res_rec_rr_type = -1;
+static gint hf_nbt_nbt_statistics_number_of_collisions = -1;
+static gint hf_nbt_nbt_name_name = -1;
+static gint hf_nbt_nbt_res_rec_name = -1;
+static gint hf_nbt_nbt_rdata_netbios_length = -1;
+static gint hf_nbt_dgram_message_source_name = -1;
+static gint hf_nbt_nbt_rdata_status = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_lm20_token = -1;
+static gint hf_nbt_nbt_res_rec_rr_class = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_Signature = -1;
+static gint hf_nbt_dgram_smb_packet_smb_command = -1;
+static gint hf_nbt_nbt_netlogon_packet_req = -1;
+static gint hf_nbt_nbt_name_question_question_class = -1;
+static gint hf_nbt_smb_trans_body_data = -1;
+static gint hf_nbt_nbt_statistics_number_alignment_errors = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_name = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_Periodicity = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_domain_name = -1;
+static gint hf_nbt_nbt_rdata_status_num_names = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_BroMinorVer = -1;
+static gint hf_nbt_dgram_data_dest_name = -1;
+static gint hf_nbt_dgram_message_body_smb = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_next_closest_site = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc_nt_version = -1;
+static gint hf_nbt_nbt_db_change_info_serial = -1;
+static gint hf_nbt_smb_trans_body_setup_count = -1;
+static gint hf_nbt_nbt_browse_payload_host_annoucement = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_WITH_CLOSEST_SITE = -1;
+static gint hf_nbt_nbt_browse_packet_payload = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sbz = -1;
+static gint hf_nbt_nbt_dgram_packet_data = -1;
+static gint hf_nbt_dgram_message_dgram_body_type = -1;
+static gint hf_nbt_smb_trans_body_total_param_count = -1;
+static gint hf_nbt_dgram_data_error = -1;
+static gint hf_nbt_nbt_browse_backup_list_response_Token = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_user_name = -1;
+static gint hf_nbt_nbt_netlogon_request_logon0 = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_dns_domain = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST__pad = -1;
+static gint hf_nbt_dgram_smb_packet_flags = -1;
+static gint hf_nbt_nbt_statistics_total_number_command_blocks = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_UpdateCount = -1;
+static gint hf_nbt_smb_trans_body_pad2 = -1;
+static gint hf_nbt_nbt_rdata_status_length = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_unicode_domain = -1;
+static gint hf_nbt_nbt_rdata_address_ipaddr = -1;
+static gint hf_nbt_nbt_netlogon_request_uas = -1;
+static gint hf_nbt_smb_trans_body_timeout = -1;
+static gint hf_nbt_nbt_statistics_max_total_number_command_blocks = -1;
+static gint hf_nbt_nbt_dgram_packet_flags = -1;
+static gint hf_nbt_nbt_res_rec_rdata = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_lm20_token = -1;
+static gint hf_nbt_nb_flags_NBT_NM_DEREGISTER = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_dbchange = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_command = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_CLOSEST = -1;
+static gint hf_nbt_dgram_smb_packet_pid = -1;
+static gint hf_nbt_nbt_browse_host_announcement_BroMajorVer = -1;
+static gint hf_nbt_nbt_name_scope = -1;
+static gint hf_nbt_nbt_sockaddr_remaining = -1;
+static gint hf_nbt_nbt_operation_NBT_FLAG_RECURSION_AVAIL = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_DS = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_lm20_token = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_unicode_pdc_name = -1;
+static gint hf_nbt_nbt_status_name_name = -1;
+static gint hf_nbt_smb_trans_body_param_count = -1;
+static gint hf_nbt_nbt_operation_NBT_FLAG_RECURSION_DESIRED = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_1 = -1;
+static gint hf_nbt_nbt_statistics_number_pending_sessions = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_name = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_IS_DEFAULT_NC = -1;
+static gint hf_nbt_smb_trans_body_param_offset = -1;
+static gint hf_nbt_smb_trans_body_max_param_count = -1;
+static gint hf_nbt_nbt_browse_backup_list_request_Token = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_BroMajorVer = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_FOREST_ROOT = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_command = -1;
+static gint hf_nbt_nbt_browse_backup_list_response_BackupServerList = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_ServerType = -1;
+static gint hf_nbt_dgram_message_dest_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_acct_control = -1;
+static gint hf_nbt_nbt_browse_election_request_Reserved = -1;
+static gint hf_nbt_nbt_browse_master_announcement_ServerName = -1;
+static gint hf_nbt_nbt_browse_host_announcement_UpdateCount = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_user_name = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX = -1;
+static gint hf_nbt_nbt_operation_NBT_RCODE = -1;
+static gint hf_nbt_nbt_browse_election_request_ServerName = -1;
+static gint hf_nbt_nbt_browse_election_request_UpTime = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_name = -1;
+static gint hf_nbt_dgram_message_length = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_dns_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_server_type = -1;
+static gint hf_nbt_nbt_browse_packet_opcode = -1;
+static gint hf_nbt_nbt_name_packet_nsrecs = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_server_site = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5 = -1;
+static gint hf_nbt_NETLOGON_LOGON_REQUEST_lm20_token = -1;
+static gint hf_nbt_nb_flags_NBT_NM_PERMANENT = -1;
+static gint hf_nbt_nbt_browse_host_announcement_Signature = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_serial_lo = -1;
+static gint hf_nbt_nbt_browse_host_announcement_Periodicity = -1;
+static gint hf_nbt_nbt_operation_NBT_FLAG_TRUNCATION = -1;
+static gint hf_nbt_dgram_smb_packet_tid = -1;
+static gint hf_nbt_nbt_browse_host_announcement_ServerName = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_GOOD_TIMESERV = -1;
+static gint hf_nbt_nbt_browse_election_request_Version = -1;
+static gint hf_nbt_smb_trans_body_pad = -1;
+static gint hf_nbt_nbt_browse_host_announcement_Comment = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_domain_name = -1;
+static gint hf_nbt_NETLOGON_LOGON_REQUEST_computer_name = -1;
+static gint hf_nbt_nbt_browse_host_announcement_ServerType = -1;
+static gint hf_nbt_smb_trans_body_priority = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_request_count = -1;
+static gint hf_nbt_nbt_statistics_session_data_packet_size = -1;
+static gint hf_nbt_nbt_statistics_number_free_command_blocks = -1;
+static gint hf_nbt_nbt_operation_NBT_OPCODE = -1;
+static gint hf_nbt_nbt_browse_backup_list_request_ReqCount = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_AVOID_NT4EMUL = -1;
+static gint hf_nbt_nbt_browse_host_announcement_OSMajor = -1;
+static gint hf_nbt_nbt_dgram_packet_src_addr = -1;
+static gint hf_nbt_dgram_smb_packet_mid = -1;
+static gint hf_nbt_nbt_name_packet_answers = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_UpdateCount = -1;
+static gint hf_nbt_nbt_browse_reset_state_Command = -1;
+static gint hf_nbt_nbt_browse_become_backup_BrowserName = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_forest = -1;
+static gint hf_nbt_nbt_rdata_netbios_addresses = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_ServerName = -1;
+static gint hf_nbt_nbt_browse_announcement_request_ResponseName = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name = -1;
+static gint hf_nbt_nbt_browse_payload_election_request = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_random = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_GC = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_Comment = -1;
+static gint hf_nbt_nbt_netlogon_packet_command = -1;
+static gint hf_nbt_dgram_smb_packet_pad = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc__pad = -1;
+static gint hf_nbt_smb_trans_body_max_setup_count = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_TIMESERV = -1;
+static gint hf_nbt_nbt_dgram_packet_msg_type = -1;
+static gint hf_nbt_smb_trans_body_mailslot_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_domain_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_pdc_name = -1;
+static gint hf_nbt_nbt_rdata_status_names = -1;
+static gint hf_nbt_nbt_netlogon_request_logon = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_nt_version = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_db_count = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_ServerType = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_lmnt_token = -1;
+static gint hf_nbt_nbt_statistics_max_number_pending_sessions = -1;
+static gint hf_nbt_nbt_netlogon_request_pdc = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc_mailslot_name = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_MysteriousField = -1;
+static gint hf_nbt_nbt_browse_host_announcement_BroMinorVer = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_nt_version = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_nt_version = -1;
+static gint hf_nbt_nbt_netlogon_response2_lm20_token = -1;
+static gint hf_nbt_dgram_data_msg = -1;
+static gint hf_nbt_nbt_browse_election_request_Criteria = -1;
+static gint hf_nbt_NETLOGON_LOGON_REQUEST_user_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_nt_version = -1;
+static gint hf_nbt_nbt_operation_NBT_FLAG_AUTHORITATIVE = -1;
+static gint hf_nbt_NETLOGON_LOGON_REQUEST_lmnt_token = -1;
+static gint hf_nbt_smb_trans_body_reserved = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_uuid = -1;
+static gint hf_nbt_nbt_statistics_number_retransmits = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_command = -1;
+static gint hf_nbt_nbt_status_name_type = -1;
+static gint hf_nbt_dgram_smb_packet_signature = -1;
+static gint hf_nbt_nbt_netlogon_response2_pdc_name = -1;
+static gint hf_nbt_nbt_browse_payload_local_master_announcement = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_OSMajor = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_Comment = -1;
+static gint hf_nbt_nbt_statistics_number_send_aborts = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_user_name = -1;
+static gint hf_nbt_smb_trans_body_data_offset = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_OSMinor = -1;
+static gint hf_nbt_nbt_browse_domain_announcement_ServerName = -1;
+static gint hf_nbt_nbt_browse_host_announcement_OSMinor = -1;
+static gint hf_nbt_nbt_dgram_packet_src_port = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_PDC = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_sid_size = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid = -1;
+static gint hf_nbt_nb_flags_NBT_NM_ACTIVE = -1;
+static gint hf_nbt_smb_trans_body_byte_count = -1;
+static gint hf_nbt_nbt_statistics_unit_id = -1;
+static gint hf_nbt_nbt_name_packet_nscount = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_pdc_name = -1;
+static gint hf_nbt_nbt_browse_payload_master_announcement = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_command = -1;
+static gint hf_nbt_dgram_smb_packet_body = -1;
+static gint hf_nbt_nbt_name_packet_name_trn_id = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_OSMinor = -1;
+static gint hf_nbt_nbt_browse_payload_become_backup = -1;
+static gint hf_nbt_NETLOGON_LOGON_REQUEST_mailslot_name = -1;
+static gint hf_nbt_nbt_res_rec_ttl = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_SELECT_SECRET_DOMAIN_6 = -1;
+static gint hf_nbt_dgram_smb_packet_vuid = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_zero_uuid = -1;
+static gint hf_nbt_nbt_sockaddr_pdc_ip = -1;
+static gint hf_nbt_dgram_smb_packet_flags2 = -1;
+static gint hf_nbt_opnum = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_lm20_token = -1;
+static gint hf_nbt_nbt_rdata_data_length = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_pulse = -1;
+static gint hf_nbt_nbt_statistics_jumpers = -1;
+static gint hf_nbt_nbt_statistics_number_good_sends = -1;
+static gint hf_nbt_dgram_flags_DGRAM_FLAG_NODE_TYPE = -1;
+static gint hf_nbt_nbt_name_packet_qdcount = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_lmnt_token = -1;
+static gint hf_nbt_nbt_browse_payload_domain_announcement = -1;
+static gint hf_nbt_nbt_statistics_number_of_crcs = -1;
+static gint hf_nbt_nbt_db_change_info_timestamp = -1;
+static gint hf_nbt_smb_trans_body_total_data_count = -1;
+static gint hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_LOCAL = -1;
+static gint hf_nbt_dgram_smb_packet_err_code = -1;
+static gint hf_nbt_decode_nbt_netlogon_packet_packet = -1;
+static gint hf_nbt_nbt_name_question_name = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_PDC = -1;
+static gint hf_nbt_nbt_rdata_address_nb_flags = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_HAS_DNS_NAME = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_client_site = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_domain = -1;
+static gint hf_nbt_nbt_browse_payload_announcement_request = -1;
+static gint hf_nbt_nbt_operation_NBT_FLAG_BROADCAST = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_nt_version = -1;
+static gint hf_nbt_dgram_smb_packet_pid_high = -1;
+static gint hf_nbt_nbt_netlogon_response2_command = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_size = -1;
+static gint hf_nbt_nbt_operation_NBT_FLAG_REPLY = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_GC = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc_unicode_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid_size = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_NDNC = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_FULL_SECRET_DOMAIN_6 = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_lmnt_token = -1;
+static gint hf_nbt_NETLOGON_LOGON_REQUEST_request_count = -1;
+static gint hf_nbt_smb_trans_body_wct = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_mailslot_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_domain_uuid = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_message_format_version = -1;
+static gint hf_nbt_nbt_statistics_max_total_sessions_possible = -1;
+static gint hf_nbt_nbt_name_packet_operation = -1;
+static gint hf_nbt_nbt_statistics_version_number = -1;
+static gint hf_nbt_nbt_dgram_packet_dgram_id = -1;
+static gint hf_nbt_nbt_name_packet_padding = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_LDAP = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc_lm20_token = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_pdc_name = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_dns_name = -1;
+static gint hf_nbt_nbt_browse_payload_reset_browser_state = -1;
+static gint hf_nbt_nbt_name_packet_additional = -1;
+static gint hf_nbt_nbt_name_packet_arcount = -1;
+static gint hf_nbt_smb_trans_body_max_data_count = -1;
+static gint hf_nbt_smb_trans_body_trans_flags = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_forest = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_dns_domain = -1;
+static gint hf_nbt_nbt_browse_announcement_request_Unused = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_sid = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_ADS_WEB_SERVICE = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_message_token = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_sid_ = -1;
+static gint hf_nbt_nbt_browse_payload_backup_list_response = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_computer_name = -1;
+static gint hf_nbt_nb_flags_NBT_NM_CONFLICT = -1;
+static gint hf_nbt_nbt_rdata_netbios = -1;
+static gint hf_nbt_nbt_statistics_period_of_statistics = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_ip = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_WRITABLE = -1;
+static gint hf_nbt_nbt_netlogon_query_for_pdc_computer_name = -1;
+static gint hf_nbt_nbt_status_name_nb_flags = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_ = -1;
+static gint hf_nbt_dgram_flags_DGRAM_FLAG_MORE = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc__pad = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_OSMajor = -1;
+static gint hf_nbt_nbt_rdata_data_data = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE_timestamp = -1;
+static gint hf_nbt_NETLOGON_DB_CHANGE__pad = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_server_type = -1;
+static gint hf_nbt_nbt_browse_payload_backup_list_request = -1;
+static gint hf_nbt_dgram_flags_DGRAM_FLAG_FIRST = -1;
+static gint hf_nbt_smb_trans_body__class = -1;
+static gint hf_nbt_nb_flags_NBT_NM_GROUP = -1;
+static gint hf_nbt_nbt_statistics_test_result = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_unicode_pdc_name = -1;
+static gint hf_nbt_nbt_name_type = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid_ = -1;
+static gint hf_nbt_nbt_server_type_NBT_SERVER_KDC = -1;
+static gint hf_nbt_nbt_browse_local_master_announcement_Periodicity = -1;
+static gint hf_nbt_dgram_smb_packet_err_class = -1;
+static gint hf_nbt_nbt_statistics_number_good_receives = -1;
+static gint hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_lmnt_token = -1;
+static gint hf_nbt_nbt_browse_backup_list_response_BackupCount = -1;
+static gint hf_nbt_smb_body_trans = -1;
+static gint hf_nbt_nbt_netlogon_response_from_pdc_lm20_token = -1;
+
+static gint proto_dcerpc_nbt = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_nbt = {
+       0x6def41b6, 0x86e4, 0x4c32,
+       { 0x99, 0x7c, 0xed, 0x33, 0xaf, 0x7b, 0xcd, 0x8e }
+};
+static guint16 ver_dcerpc_nbt = 0;
+
+static const true_false_string nbt_operation_NBT_RCODE_tfs = {
+   "NBT_RCODE is SET",
+   "NBT_RCODE is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_FLAG_BROADCAST_tfs = {
+   "NBT_FLAG_BROADCAST is SET",
+   "NBT_FLAG_BROADCAST is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_FLAG_RECURSION_AVAIL_tfs = {
+   "NBT_FLAG_RECURSION_AVAIL is SET",
+   "NBT_FLAG_RECURSION_AVAIL is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_FLAG_RECURSION_DESIRED_tfs = {
+   "NBT_FLAG_RECURSION_DESIRED is SET",
+   "NBT_FLAG_RECURSION_DESIRED is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_FLAG_TRUNCATION_tfs = {
+   "NBT_FLAG_TRUNCATION is SET",
+   "NBT_FLAG_TRUNCATION is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_FLAG_AUTHORITATIVE_tfs = {
+   "NBT_FLAG_AUTHORITATIVE is SET",
+   "NBT_FLAG_AUTHORITATIVE is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_OPCODE_tfs = {
+   "NBT_OPCODE is SET",
+   "NBT_OPCODE is NOT SET",
+};
+static const true_false_string nbt_operation_NBT_FLAG_REPLY_tfs = {
+   "NBT_FLAG_REPLY is SET",
+   "NBT_FLAG_REPLY is NOT SET",
+};
+const value_string nbt_nbt_opcode_vals[] = {
+       { NBT_OPCODE_QUERY, "NBT_OPCODE_QUERY" },
+       { NBT_OPCODE_REGISTER, "NBT_OPCODE_REGISTER" },
+       { NBT_OPCODE_RELEASE, "NBT_OPCODE_RELEASE" },
+       { NBT_OPCODE_WACK, "NBT_OPCODE_WACK" },
+       { NBT_OPCODE_REFRESH, "NBT_OPCODE_REFRESH" },
+       { NBT_OPCODE_REFRESH2, "NBT_OPCODE_REFRESH2" },
+       { NBT_OPCODE_MULTI_HOME_REG, "NBT_OPCODE_MULTI_HOME_REG" },
+{ 0, NULL }
+};
+const value_string nbt_nbt_rcode_vals[] = {
+       { NBT_RCODE_OK, "NBT_RCODE_OK" },
+       { NBT_RCODE_FMT, "NBT_RCODE_FMT" },
+       { NBT_RCODE_SVR, "NBT_RCODE_SVR" },
+       { NBT_RCODE_NAM, "NBT_RCODE_NAM" },
+       { NBT_RCODE_IMP, "NBT_RCODE_IMP" },
+       { NBT_RCODE_RFS, "NBT_RCODE_RFS" },
+       { NBT_RCODE_ACT, "NBT_RCODE_ACT" },
+       { NBT_RCODE_CFT, "NBT_RCODE_CFT" },
+{ 0, NULL }
+};
+const value_string nbt_nbt_name_type_vals[] = {
+       { NBT_NAME_CLIENT, "NBT_NAME_CLIENT" },
+       { NBT_NAME_MS, "NBT_NAME_MS" },
+       { NBT_NAME_USER, "NBT_NAME_USER" },
+       { NBT_NAME_SERVER, "NBT_NAME_SERVER" },
+       { NBT_NAME_PDC, "NBT_NAME_PDC" },
+       { NBT_NAME_LOGON, "NBT_NAME_LOGON" },
+       { NBT_NAME_MASTER, "NBT_NAME_MASTER" },
+       { NBT_NAME_BROWSER, "NBT_NAME_BROWSER" },
+{ 0, NULL }
+};
+static int nbt_dissect_element_name_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_scope(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string nbt_nbt_qclass_vals[] = {
+       { NBT_QCLASS_IP, "NBT_QCLASS_IP" },
+{ 0, NULL }
+};
+const value_string nbt_nbt_qtype_vals[] = {
+       { NBT_QTYPE_ADDRESS, "NBT_QTYPE_ADDRESS" },
+       { NBT_QTYPE_NAMESERVICE, "NBT_QTYPE_NAMESERVICE" },
+       { NBT_QTYPE_NULL, "NBT_QTYPE_NULL" },
+       { NBT_QTYPE_NETBIOS, "NBT_QTYPE_NETBIOS" },
+       { NBT_QTYPE_STATUS, "NBT_QTYPE_STATUS" },
+{ 0, NULL }
+};
+static int nbt_dissect_element_name_question_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_question_question_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_question_question_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string nbt_nbt_node_type_vals[] = {
+       { NBT_NODE_B, "NBT_NODE_B" },
+       { NBT_NODE_P, "NBT_NODE_P" },
+       { NBT_NODE_M, "NBT_NODE_M" },
+       { NBT_NODE_H, "NBT_NODE_H" },
+{ 0, NULL }
+};
+static const true_false_string nb_flags_NBT_NM_PERMANENT_tfs = {
+   "NBT_NM_PERMANENT is SET",
+   "NBT_NM_PERMANENT is NOT SET",
+};
+static const true_false_string nb_flags_NBT_NM_ACTIVE_tfs = {
+   "NBT_NM_ACTIVE is SET",
+   "NBT_NM_ACTIVE is NOT SET",
+};
+static const true_false_string nb_flags_NBT_NM_CONFLICT_tfs = {
+   "NBT_NM_CONFLICT is SET",
+   "NBT_NM_CONFLICT is NOT SET",
+};
+static const true_false_string nb_flags_NBT_NM_DEREGISTER_tfs = {
+   "NBT_NM_DEREGISTER is SET",
+   "NBT_NM_DEREGISTER is NOT SET",
+};
+static const true_false_string nb_flags_NBT_NM_OWNER_TYPE_tfs = {
+   "NBT_NM_OWNER_TYPE is SET",
+   "NBT_NM_OWNER_TYPE is NOT SET",
+};
+static const true_false_string nb_flags_NBT_NM_GROUP_tfs = {
+   "NBT_NM_GROUP is SET",
+   "NBT_NM_GROUP is NOT SET",
+};
+static int nbt_dissect_element_rdata_address_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_address_ipaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_netbios_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_netbios_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_netbios_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_unit_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_unit_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_jumpers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_test_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_version_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_period_of_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_of_crcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_alignment_errors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_of_collisions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_send_aborts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_good_sends(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_good_receives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_retransmits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_no_resource_conditions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_free_command_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_total_number_command_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_max_total_number_command_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_number_pending_sessions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_max_number_pending_sessions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_max_total_sessions_possible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_statistics_session_data_packet_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_status_name_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_status_name_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_status_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_status_name_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_status_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_status_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_status_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_status_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_status_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_data_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_res_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_res_rec_rr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type);
+static int nbt_dissect_element_res_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_res_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_res_rec_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type);
+static int nbt_dissect_element_name_packet_name_trn_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_qdcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_ancount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_nscount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_arcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_questions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_questions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_answers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_answers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_nsrecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_nsrecs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_additional(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_additional_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_name_packet_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string nbt_dgram_msg_type_vals[] = {
+       { DGRAM_DIRECT_UNIQUE, "DGRAM_DIRECT_UNIQUE" },
+       { DGRAM_DIRECT_GROUP, "DGRAM_DIRECT_GROUP" },
+       { DGRAM_BCAST, "DGRAM_BCAST" },
+       { DGRAM_ERROR, "DGRAM_ERROR" },
+       { DGRAM_QUERY, "DGRAM_QUERY" },
+       { DGRAM_QUERY_POSITIVE, "DGRAM_QUERY_POSITIVE" },
+       { DGRAM_QUERY_NEGATIVE, "DGRAM_QUERY_NEGATIVE" },
+{ 0, NULL }
+};
+static const true_false_string dgram_flags_DGRAM_FLAG_MORE_tfs = {
+   "DGRAM_FLAG_MORE is SET",
+   "DGRAM_FLAG_MORE is NOT SET",
+};
+static const true_false_string dgram_flags_DGRAM_FLAG_FIRST_tfs = {
+   "DGRAM_FLAG_FIRST is SET",
+   "DGRAM_FLAG_FIRST is NOT SET",
+};
+static const true_false_string dgram_flags_DGRAM_FLAG_NODE_TYPE_tfs = {
+   "DGRAM_FLAG_NODE_TYPE is SET",
+   "DGRAM_FLAG_NODE_TYPE is NOT SET",
+};
+const value_string nbt_dgram_node_type_vals[] = {
+       { DGRAM_NODE_B, "DGRAM_NODE_B" },
+       { DGRAM_NODE_P, "DGRAM_NODE_P" },
+       { DGRAM_NODE_M, "DGRAM_NODE_M" },
+       { DGRAM_NODE_NBDD, "DGRAM_NODE_NBDD" },
+{ 0, NULL }
+};
+const value_string nbt_smb_command_vals[] = {
+       { SMB_TRANSACTION, "SMB_TRANSACTION" },
+{ 0, NULL }
+};
+static int nbt_dissect_element_smb_trans_body_wct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_total_param_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_total_data_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_max_param_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_max_data_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_max_setup_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_trans_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_param_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_param_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_data_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_data_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_setup_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_pad2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body__class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_byte_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_trans_body_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_smb_body_trans(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_smb_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *smb_command);
+static int nbt_dissect_element_dgram_smb_packet_err_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_err_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_flags2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_pid_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_tid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_vuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_smb_packet_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *smb_command);
+static int nbt_dissect_element_dgram_message_body_smb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_message_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_message_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_message_source_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_message_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_message_dgram_body_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dgram_body_type);
+static int nbt_dissect_element_dgram_message_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dgram_body_type);
+const value_string nbt_dgram_err_code_vals[] = {
+       { DGRAM_ERROR_NAME_NOT_PRESENT, "DGRAM_ERROR_NAME_NOT_PRESENT" },
+       { DGRAM_ERROR_INVALID_SOURCE, "DGRAM_ERROR_INVALID_SOURCE" },
+       { DGRAM_ERROR_INVALID_DEST, "DGRAM_ERROR_INVALID_DEST" },
+{ 0, NULL }
+};
+static int nbt_dissect_element_dgram_data_msg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_data_msg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_data_msg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_data_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_data_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_data_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_data_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_packet_msg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *msg_type);
+static int nbt_dissect_element_dgram_packet_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_packet_dgram_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_packet_src_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_packet_src_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_dgram_packet_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *msg_type);
+static int nbt_dissect_element_sockaddr_sockaddr_family(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_sockaddr_pdc_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_sockaddr_remaining(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string nbt_server_type_NBT_SERVER_PDC_tfs = {
+   "NBT_SERVER_PDC is SET",
+   "NBT_SERVER_PDC is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_GC_tfs = {
+   "NBT_SERVER_GC is SET",
+   "NBT_SERVER_GC is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_LDAP_tfs = {
+   "NBT_SERVER_LDAP is SET",
+   "NBT_SERVER_LDAP is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_DS_tfs = {
+   "NBT_SERVER_DS is SET",
+   "NBT_SERVER_DS is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_KDC_tfs = {
+   "NBT_SERVER_KDC is SET",
+   "NBT_SERVER_KDC is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_TIMESERV_tfs = {
+   "NBT_SERVER_TIMESERV is SET",
+   "NBT_SERVER_TIMESERV is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_CLOSEST_tfs = {
+   "NBT_SERVER_CLOSEST is SET",
+   "NBT_SERVER_CLOSEST is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_WRITABLE_tfs = {
+   "NBT_SERVER_WRITABLE is SET",
+   "NBT_SERVER_WRITABLE is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_GOOD_TIMESERV_tfs = {
+   "NBT_SERVER_GOOD_TIMESERV is SET",
+   "NBT_SERVER_GOOD_TIMESERV is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_NDNC_tfs = {
+   "NBT_SERVER_NDNC is SET",
+   "NBT_SERVER_NDNC is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_SELECT_SECRET_DOMAIN_6_tfs = {
+   "NBT_SERVER_SELECT_SECRET_DOMAIN_6 is SET",
+   "NBT_SERVER_SELECT_SECRET_DOMAIN_6 is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_FULL_SECRET_DOMAIN_6_tfs = {
+   "NBT_SERVER_FULL_SECRET_DOMAIN_6 is SET",
+   "NBT_SERVER_FULL_SECRET_DOMAIN_6 is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_ADS_WEB_SERVICE_tfs = {
+   "NBT_SERVER_ADS_WEB_SERVICE is SET",
+   "NBT_SERVER_ADS_WEB_SERVICE is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_HAS_DNS_NAME_tfs = {
+   "NBT_SERVER_HAS_DNS_NAME is SET",
+   "NBT_SERVER_HAS_DNS_NAME is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_IS_DEFAULT_NC_tfs = {
+   "NBT_SERVER_IS_DEFAULT_NC is SET",
+   "NBT_SERVER_IS_DEFAULT_NC is NOT SET",
+};
+static const true_false_string nbt_server_type_NBT_SERVER_FOREST_ROOT_tfs = {
+   "NBT_SERVER_FOREST_ROOT is SET",
+   "NBT_SERVER_FOREST_ROOT is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_1_tfs = {
+   "NETLOGON_NT_VERSION_1 is SET",
+   "NETLOGON_NT_VERSION_1 is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_5_tfs = {
+   "NETLOGON_NT_VERSION_5 is SET",
+   "NETLOGON_NT_VERSION_5 is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_tfs = {
+   "NETLOGON_NT_VERSION_5EX is SET",
+   "NETLOGON_NT_VERSION_5EX is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_WITH_IP_tfs = {
+   "NETLOGON_NT_VERSION_5EX_WITH_IP is SET",
+   "NETLOGON_NT_VERSION_5EX_WITH_IP is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_WITH_CLOSEST_SITE_tfs = {
+   "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE is SET",
+   "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_AVOID_NT4EMUL_tfs = {
+   "NETLOGON_NT_VERSION_AVOID_NT4EMUL is SET",
+   "NETLOGON_NT_VERSION_AVOID_NT4EMUL is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_PDC_tfs = {
+   "NETLOGON_NT_VERSION_PDC is SET",
+   "NETLOGON_NT_VERSION_PDC is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_IP_tfs = {
+   "NETLOGON_NT_VERSION_IP is SET",
+   "NETLOGON_NT_VERSION_IP is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_LOCAL_tfs = {
+   "NETLOGON_NT_VERSION_LOCAL is SET",
+   "NETLOGON_NT_VERSION_LOCAL is NOT SET",
+};
+static const true_false_string netlogon_nt_version_flags_NETLOGON_NT_VERSION_GC_tfs = {
+   "NETLOGON_NT_VERSION_GC is SET",
+   "NETLOGON_NT_VERSION_GC is NOT SET",
+};
+const value_string nbt_netlogon_command_vals[] = {
+       { LOGON_REQUEST, "LOGON_REQUEST" },
+       { LOGON_RESPONSE2, "LOGON_RESPONSE2" },
+       { LOGON_PRIMARY_QUERY, "LOGON_PRIMARY_QUERY" },
+       { NETLOGON_ANNOUNCE_UAS, "NETLOGON_ANNOUNCE_UAS" },
+       { NETLOGON_RESPONSE_FROM_PDC, "NETLOGON_RESPONSE_FROM_PDC" },
+       { LOGON_SAM_LOGON_REQUEST, "LOGON_SAM_LOGON_REQUEST" },
+       { LOGON_SAM_LOGON_RESPONSE, "LOGON_SAM_LOGON_RESPONSE" },
+       { LOGON_SAM_LOGON_PAUSE_RESPONSE, "LOGON_SAM_LOGON_PAUSE_RESPONSE" },
+       { LOGON_SAM_LOGON_USER_UNKNOWN, "LOGON_SAM_LOGON_USER_UNKNOWN" },
+       { LOGON_SAM_LOGON_RESPONSE_EX, "LOGON_SAM_LOGON_RESPONSE_EX" },
+       { LOGON_SAM_LOGON_PAUSE_RESPONSE_EX, "LOGON_SAM_LOGON_PAUSE_RESPONSE_EX" },
+       { LOGON_SAM_LOGON_USER_UNKNOWN_EX, "LOGON_SAM_LOGON_USER_UNKNOWN_EX" },
+{ 0, NULL }
+};
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_request_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_acct_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_LOGON_REQUEST_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_LOGON_REQUEST_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_LOGON_REQUEST_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_LOGON_REQUEST_request_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_LOGON_REQUEST_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_LOGON_REQUEST_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_domain_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_zero_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sbz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_server_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_client_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_next_closest_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc_unicode_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_query_for_pdc_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_unicode_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response_from_pdc_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response2_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response2_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_response2_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_db_change_info_db_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_db_change_info_serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_db_change_info_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_serial_lo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_pulse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_random(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_unicode_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_unicode_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_db_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_dbchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_dbchange_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_sid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_message_format_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_NETLOGON_DB_CHANGE_message_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_request_logon0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_request_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_request_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_request_uas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_netlogon_packet_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *command);
+static int nbt_dissect_element_netlogon_packet_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *command);
+const value_string nbt_nbt_browse_opcode_vals[] = {
+       { HostAnnouncement, "HostAnnouncement" },
+       { AnnouncementRequest, "AnnouncementRequest" },
+       { Election, "Election" },
+       { GetBackupListReq, "GetBackupListReq" },
+       { GetBackupListResp, "GetBackupListResp" },
+       { BecomeBackup, "BecomeBackup" },
+       { DomainAnnouncement, "DomainAnnouncement" },
+       { MasterAnnouncement, "MasterAnnouncement" },
+       { ResetBrowserState, "ResetBrowserState" },
+       { LocalMasterAnnouncement, "LocalMasterAnnouncement" },
+{ 0, NULL }
+};
+static int nbt_dissect_element_browse_host_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_BroMajorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_BroMinorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_host_announcement_Comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_announcement_request_Unused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_announcement_request_ResponseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_election_request_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_election_request_Criteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_election_request_UpTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_election_request_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_election_request_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_backup_list_request_ReqCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_backup_list_request_Token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_backup_list_response_BackupCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_backup_list_response_Token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_backup_list_response_BackupServerList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_backup_list_response_BackupServerList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_become_backup_BrowserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_MysteriousField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_domain_announcement_Comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_master_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_reset_state_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_BroMajorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_BroMinorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_local_master_announcement_Comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_host_annoucement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_announcement_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_election_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_backup_list_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_backup_list_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_become_backup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_domain_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_reset_browser_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_payload_local_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int nbt_dissect_element_browse_packet_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *opcode);
+static int nbt_dissect_element_browse_packet_payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *opcode);
+static int nbt_dissect_element_decode_nbt_netlogon_packet_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL:        NBT_RCODE =  0x000F , */
+/* IDL:        NBT_FLAG_BROADCAST =  0x0010 , */
+/* IDL:        NBT_FLAG_RECURSION_AVAIL =  0x0080 , */
+/* IDL:        NBT_FLAG_RECURSION_DESIRED =  0x0100 , */
+/* IDL:        NBT_FLAG_TRUNCATION =  0x0200 , */
+/* IDL:        NBT_FLAG_AUTHORITATIVE =  0x0400 , */
+/* IDL:        NBT_OPCODE =  0x7800 , */
+/* IDL:        NBT_FLAG_REPLY =  0x8000 , */
+/* IDL: } */
+
+int
+nbt_dissect_bitmap_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint16 flags;
+       ALIGN_TO_2_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_nbt_nbt_operation);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_RCODE, tvb, offset-2, 2, flags);
+       if (flags&( 0x000F )){
+               proto_item_append_text(item, "NBT_RCODE");
+               if (flags & (~( 0x000F )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x000F ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_FLAG_BROADCAST, tvb, offset-2, 2, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "NBT_FLAG_BROADCAST");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_FLAG_RECURSION_AVAIL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0080 )){
+               proto_item_append_text(item, "NBT_FLAG_RECURSION_AVAIL");
+               if (flags & (~( 0x0080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0080 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_FLAG_RECURSION_DESIRED, tvb, offset-2, 2, flags);
+       if (flags&( 0x0100 )){
+               proto_item_append_text(item, "NBT_FLAG_RECURSION_DESIRED");
+               if (flags & (~( 0x0100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0100 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_FLAG_TRUNCATION, tvb, offset-2, 2, flags);
+       if (flags&( 0x0200 )){
+               proto_item_append_text(item, "NBT_FLAG_TRUNCATION");
+               if (flags & (~( 0x0200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0200 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_FLAG_AUTHORITATIVE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0400 )){
+               proto_item_append_text(item, "NBT_FLAG_AUTHORITATIVE");
+               if (flags & (~( 0x0400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0400 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_OPCODE, tvb, offset-2, 2, flags);
+       if (flags&( 0x7800 )){
+               proto_item_append_text(item, "NBT_OPCODE");
+               if (flags & (~( 0x7800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x7800 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_operation_NBT_FLAG_REPLY, tvb, offset-2, 2, flags);
+       if (flags&( 0x8000 )){
+               proto_item_append_text(item, "NBT_FLAG_REPLY");
+               if (flags & (~( 0x8000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x8000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NBT_OPCODE_QUERY=(0x0<<11), */
+/* IDL:        NBT_OPCODE_REGISTER=(0x5<<11), */
+/* IDL:        NBT_OPCODE_RELEASE=(0x6<<11), */
+/* IDL:        NBT_OPCODE_WACK=(0x7<<11), */
+/* IDL:        NBT_OPCODE_REFRESH=(0x8<<11), */
+/* IDL:        NBT_OPCODE_REFRESH2=(0x9<<11), */
+/* IDL:        NBT_OPCODE_MULTI_HOME_REG=(0xf<<11), */
+/* IDL: } */
+
+int
+nbt_dissect_enum_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NBT_RCODE_OK=0x0, */
+/* IDL:        NBT_RCODE_FMT=0x1, */
+/* IDL:        NBT_RCODE_SVR=0x2, */
+/* IDL:        NBT_RCODE_NAM=0x3, */
+/* IDL:        NBT_RCODE_IMP=0x4, */
+/* IDL:        NBT_RCODE_RFS=0x5, */
+/* IDL:        NBT_RCODE_ACT=0x6, */
+/* IDL:        NBT_RCODE_CFT=0x7, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_rcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NBT_NAME_CLIENT=0x00, */
+/* IDL:        NBT_NAME_MS=0x01, */
+/* IDL:        NBT_NAME_USER=0x03, */
+/* IDL:        NBT_NAME_SERVER=0x20, */
+/* IDL:        NBT_NAME_PDC=0x1B, */
+/* IDL:        NBT_NAME_LOGON=0x1C, */
+/* IDL:        NBT_NAME_MASTER=0x1D, */
+/* IDL:        NBT_NAME_BROWSER=0x1E, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        string name; */
+/* IDL:        string scope; */
+/* IDL:        nbt_name_type type; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_name_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_scope(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_name_type(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_type, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_name);
+       }
+       
+       offset = nbt_dissect_element_name_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_scope(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_type(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NBT_QCLASS_IP=0x01, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_qclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NBT_QTYPE_ADDRESS=0x0001, */
+/* IDL:        NBT_QTYPE_NAMESERVICE=0x0002, */
+/* IDL:        NBT_QTYPE_NULL=0x000A, */
+/* IDL:        NBT_QTYPE_NETBIOS=0x0020, */
+/* IDL:        NBT_QTYPE_STATUS=0x0021, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_qtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        nbt_name name; */
+/* IDL:        nbt_qtype question_type; */
+/* IDL:        nbt_qclass question_class; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_name_question_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_name_question_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_question_question_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_qtype(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_question_question_type, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_question_question_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_question_question_class, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_name_question(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_name_question);
+       }
+       
+       offset = nbt_dissect_element_name_question_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_question_question_type(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_question_question_class(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NBT_NODE_B=0x0000, */
+/* IDL:        NBT_NODE_P=0x2000, */
+/* IDL:        NBT_NODE_M=0x4000, */
+/* IDL:        NBT_NODE_H=0x6000, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_node_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NBT_NM_PERMANENT =  0x0200 , */
+/* IDL:        NBT_NM_ACTIVE =  0x0400 , */
+/* IDL:        NBT_NM_CONFLICT =  0x0800 , */
+/* IDL:        NBT_NM_DEREGISTER =  0x1000 , */
+/* IDL:        NBT_NM_OWNER_TYPE =  0x6000 , */
+/* IDL:        NBT_NM_GROUP =  0x8000 , */
+/* IDL: } */
+
+int
+nbt_dissect_bitmap_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint16 flags;
+       ALIGN_TO_2_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_nbt_nb_flags);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_nbt_nb_flags_NBT_NM_PERMANENT, tvb, offset-2, 2, flags);
+       if (flags&( 0x0200 )){
+               proto_item_append_text(item, "NBT_NM_PERMANENT");
+               if (flags & (~( 0x0200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0200 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nb_flags_NBT_NM_ACTIVE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0400 )){
+               proto_item_append_text(item, "NBT_NM_ACTIVE");
+               if (flags & (~( 0x0400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0400 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nb_flags_NBT_NM_CONFLICT, tvb, offset-2, 2, flags);
+       if (flags&( 0x0800 )){
+               proto_item_append_text(item, "NBT_NM_CONFLICT");
+               if (flags & (~( 0x0800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0800 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nb_flags_NBT_NM_DEREGISTER, tvb, offset-2, 2, flags);
+       if (flags&( 0x1000 )){
+               proto_item_append_text(item, "NBT_NM_DEREGISTER");
+               if (flags & (~( 0x1000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x1000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nb_flags_NBT_NM_OWNER_TYPE, tvb, offset-2, 2, flags);
+       if (flags&( 0x6000 )){
+               proto_item_append_text(item, "NBT_NM_OWNER_TYPE");
+               if (flags & (~( 0x6000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x6000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nb_flags_NBT_NM_GROUP, tvb, offset-2, 2, flags);
+       if (flags&( 0x8000 )){
+               proto_item_append_text(item, "NBT_NM_GROUP");
+               if (flags & (~( 0x8000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x8000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        nb_flags nb_flags; */
+/* IDL:        ipv4address ipaddr; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_rdata_address_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_nb_flags(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_rdata_address_nb_flags, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_address_ipaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_address_ipaddr,0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_rdata_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_rdata_address);
+       }
+       
+       offset = nbt_dissect_element_rdata_address_nb_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_rdata_address_ipaddr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        nbt_rdata_address addresses[length/6]; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_rdata_netbios_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_rdata_netbios_length, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_netbios_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_netbios_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_rdata_address(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_netbios_addresses,0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_rdata_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_rdata_netbios);
+       }
+       
+       offset = nbt_dissect_element_rdata_netbios_length(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_rdata_netbios_addresses(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 unit_id[6]; */
+/* IDL:        uint8 jumpers; */
+/* IDL:        uint8 test_result; */
+/* IDL:        uint16 version_number; */
+/* IDL:        uint16 period_of_statistics; */
+/* IDL:        uint16 number_of_crcs; */
+/* IDL:        uint16 number_alignment_errors; */
+/* IDL:        uint16 number_of_collisions; */
+/* IDL:        uint16 number_send_aborts; */
+/* IDL:        uint32 number_good_sends; */
+/* IDL:        uint32 number_good_receives; */
+/* IDL:        uint16 number_retransmits; */
+/* IDL:        uint16 number_no_resource_conditions; */
+/* IDL:        uint16 number_free_command_blocks; */
+/* IDL:        uint16 total_number_command_blocks; */
+/* IDL:        uint16 max_total_number_command_blocks; */
+/* IDL:        uint16 number_pending_sessions; */
+/* IDL:        uint16 max_number_pending_sessions; */
+/* IDL:        uint16 max_total_sessions_possible; */
+/* IDL:        uint16 session_data_packet_size; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_statistics_unit_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = nbt_dissect_element_statistics_unit_id_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_unit_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_unit_id, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_jumpers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_jumpers, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_test_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_test_result, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_version_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_version_number, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_period_of_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_period_of_statistics, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_of_crcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_of_crcs, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_alignment_errors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_alignment_errors, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_of_collisions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_of_collisions, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_send_aborts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_send_aborts, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_good_sends(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_good_sends, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_good_receives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_good_receives, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_retransmits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_retransmits, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_no_resource_conditions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_no_resource_conditions, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_free_command_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_free_command_blocks, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_total_number_command_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_total_number_command_blocks, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_max_total_number_command_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_max_total_number_command_blocks, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_number_pending_sessions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_number_pending_sessions, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_max_number_pending_sessions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_max_number_pending_sessions, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_max_total_sessions_possible(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_max_total_sessions_possible, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_statistics_session_data_packet_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_statistics_session_data_packet_size, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_statistics);
+       }
+       
+       offset = nbt_dissect_element_statistics_unit_id(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_jumpers(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_test_result(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_version_number(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_period_of_statistics(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_of_crcs(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_alignment_errors(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_of_collisions(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_send_aborts(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_good_sends(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_good_receives(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_retransmits(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_no_resource_conditions(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_free_command_blocks(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_total_number_command_blocks(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_max_total_number_command_blocks(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_number_pending_sessions(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_max_number_pending_sessions(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_max_total_sessions_possible(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_statistics_session_data_packet_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [charset(DOS)] uint8 name[15]; */
+/* IDL:        nbt_name_type type; */
+/* IDL:        nb_flags nb_flags; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_status_name_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 15; i++)
+               offset = nbt_dissect_element_status_name_name_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_status_name_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_status_name_name, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_status_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_name_type(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_status_name_type, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_status_name_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_nb_flags(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_status_name_nb_flags, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_status_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_status_name);
+       }
+       
+       offset = nbt_dissect_element_status_name_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_status_name_type(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_status_name_nb_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(num_names*18+47)] uint16 length; */
+/* IDL:        uint8 num_names; */
+/* IDL:        nbt_status_name names[num_names]; */
+/* IDL:        nbt_statistics statistics; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_rdata_status_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_rdata_status_length, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_status_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_rdata_status_num_names, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_status_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_status_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_status_name(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_status_names,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_status_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_statistics(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_status_statistics,0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_rdata_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_rdata_status);
+       }
+       
+       offset = nbt_dissect_element_rdata_status_length(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_rdata_status_num_names(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_rdata_status_names(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_rdata_status_statistics(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        uint8 data[length]; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_rdata_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_rdata_data_length, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_data_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_data_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_rdata_data_data, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_rdata_data);
+       }
+       
+       offset = nbt_dissect_element_rdata_data_length(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_rdata_data_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] [public(1)] union { */
+/* IDL: [case(NBT_QTYPE_NETBIOS)] [case(NBT_QTYPE_NETBIOS)] nbt_rdata_netbios netbios; */
+/* IDL: [case(NBT_QTYPE_STATUS)] [case(NBT_QTYPE_STATUS)] nbt_rdata_status status; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_rdata_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_rdata_netbios(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_netbios,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_rdata_status(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_status,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_rdata_data(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_rdata_data,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "nbt_rdata");
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_rdata);
+       }
+
+       switch(level) {
+               case NBT_QTYPE_NETBIOS:
+                       offset = nbt_dissect_element_rdata_netbios(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NBT_QTYPE_STATUS:
+                       offset = nbt_dissect_element_rdata_status(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = nbt_dissect_element_rdata_data(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        nbt_name name; */
+/* IDL:        nbt_qtype rr_type; */
+/* IDL:        nbt_qclass rr_class; */
+/* IDL:        uint32 ttl; */
+/* IDL:        [switch_is(rr_type)] nbt_rdata rdata; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_res_rec_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_res_rec_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_res_rec_rr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type)
+{
+       offset = nbt_dissect_enum_qtype(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_res_rec_rr_type, rr_type);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_res_rec_rr_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_qclass(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_res_rec_rr_class, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_res_rec_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_res_rec_ttl, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_res_rec_rdata(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *rr_type)
+{
+       offset = nbt_dissect_rdata(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_res_rec_rdata, *rr_type);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_res_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint16 rr_type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_res_rec);
+       }
+       
+       offset = nbt_dissect_element_res_rec_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_res_rec_rr_type(tvb, offset, pinfo, tree, drep, &rr_type);
+
+       offset = nbt_dissect_element_res_rec_rr_class(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_res_rec_ttl(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_res_rec_rdata(tvb, offset, pinfo, tree, drep, &rr_type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 name_trn_id; */
+/* IDL:        nbt_operation operation; */
+/* IDL:        uint16 qdcount; */
+/* IDL:        uint16 ancount; */
+/* IDL:        uint16 nscount; */
+/* IDL:        uint16 arcount; */
+/* IDL:        nbt_name_question questions[qdcount]; */
+/* IDL:        nbt_res_rec answers[ancount]; */
+/* IDL:        nbt_res_rec nsrecs[nscount]; */
+/* IDL:        nbt_res_rec additional[arcount]; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB padding; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_name_packet_name_trn_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_name_trn_id, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_operation(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_operation, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_qdcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_qdcount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_ancount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_ancount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_nscount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_nscount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_arcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_arcount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_questions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_questions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name_question(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_name_packet_questions,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_answers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_answers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_name_packet_answers,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_nsrecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_nsrecs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_name_packet_nsrecs,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_additional(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_additional_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_res_rec(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_name_packet_additional,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_name_packet_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_name_packet_padding, 1);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_name_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_name_packet);
+       }
+       
+       offset = nbt_dissect_element_name_packet_name_trn_id(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_operation(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_qdcount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_ancount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_nscount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_arcount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_questions(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_answers(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_nsrecs(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_additional(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_name_packet_padding(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DGRAM_DIRECT_UNIQUE=0x10, */
+/* IDL:        DGRAM_DIRECT_GROUP=0x11, */
+/* IDL:        DGRAM_BCAST=0x12, */
+/* IDL:        DGRAM_ERROR=0x13, */
+/* IDL:        DGRAM_QUERY=0x14, */
+/* IDL:        DGRAM_QUERY_POSITIVE=0x15, */
+/* IDL:        DGRAM_QUERY_NEGATIVE=0x16, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_dgram_msg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DGRAM_FLAG_MORE =  0x01 , */
+/* IDL:        DGRAM_FLAG_FIRST =  0x02 , */
+/* IDL:        DGRAM_FLAG_NODE_TYPE =  0x0C , */
+/* IDL: } */
+
+int
+nbt_dissect_bitmap_dgram_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint8 flags;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_nbt_dgram_flags);
+       }
+
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_nbt_dgram_flags_DGRAM_FLAG_MORE, tvb, offset-1, 1, flags);
+       if (flags&( 0x01 )){
+               proto_item_append_text(item, "DGRAM_FLAG_MORE");
+               if (flags & (~( 0x01 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_dgram_flags_DGRAM_FLAG_FIRST, tvb, offset-1, 1, flags);
+       if (flags&( 0x02 )){
+               proto_item_append_text(item, "DGRAM_FLAG_FIRST");
+               if (flags & (~( 0x02 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_dgram_flags_DGRAM_FLAG_NODE_TYPE, tvb, offset-1, 1, flags);
+       if (flags&( 0x0C )){
+               proto_item_append_text(item, "DGRAM_FLAG_NODE_TYPE");
+               if (flags & (~( 0x0C )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0C ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DGRAM_NODE_B=0x00, */
+/* IDL:        DGRAM_NODE_P=0x04, */
+/* IDL:        DGRAM_NODE_M=0x08, */
+/* IDL:        DGRAM_NODE_NBDD=0x0C, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_dgram_node_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SMB_TRANSACTION=0x25, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_smb_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(17)] [range(17,17)] uint8 wct; */
+/* IDL:        uint16 total_param_count; */
+/* IDL:        uint16 total_data_count; */
+/* IDL:        uint16 max_param_count; */
+/* IDL:        uint16 max_data_count; */
+/* IDL:        uint8 max_setup_count; */
+/* IDL:        uint8 pad; */
+/* IDL:        uint16 trans_flags; */
+/* IDL:        uint32 timeout; */
+/* IDL:        uint16 reserved; */
+/* IDL:        uint16 param_count; */
+/* IDL:        uint16 param_offset; */
+/* IDL:        uint16 data_count; */
+/* IDL:        uint16 data_offset; */
+/* IDL:        [value(3)] [range(3,3)] uint8 setup_count; */
+/* IDL:        uint8 pad2; */
+/* IDL:        uint16 opcode; */
+/* IDL:        uint16 priority; */
+/* IDL:        uint16 _class; */
+/* IDL:        [value(strlen(mailslot_name)+1+data.length)] uint16 byte_count; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string mailslot_name; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB data; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_smb_trans_body_wct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_wct, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_total_param_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_total_param_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_total_data_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_total_data_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_max_param_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_max_param_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_max_data_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_max_data_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_max_setup_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_max_setup_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_pad, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_trans_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_trans_flags, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_timeout, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_reserved, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_param_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_param_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_param_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_param_offset, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_data_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_data_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_data_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_data_offset, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_setup_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_setup_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_pad2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_pad2, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_opcode, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_priority, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body__class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body__class, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_byte_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_byte_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_mailslot_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_smb_trans_body_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_smb_trans_body_data, 1);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_smb_trans_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_smb_trans_body);
+       }
+       
+       offset = nbt_dissect_element_smb_trans_body_wct(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_total_param_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_total_data_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_max_param_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_max_data_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_max_setup_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_pad(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_trans_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_param_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_param_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_data_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_data_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_setup_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_pad2(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_opcode(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body__class(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_byte_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_mailslot_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_smb_trans_body_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(SMB_TRANSACTION)] [case(SMB_TRANSACTION)] smb_trans_body trans; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_smb_body_trans(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_smb_trans_body(tvb,offset,pinfo,tree,drep,hf_nbt_smb_body_trans,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_smb_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "smb_body");
+               tree = proto_item_add_subtree(item, ett_nbt_smb_body);
+       }
+
+       switch(level) {
+               case SMB_TRANSACTION:
+                       offset = nbt_dissect_element_smb_body_trans(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        smb_command smb_command; */
+/* IDL:        uint8 err_class; */
+/* IDL:        uint8 pad; */
+/* IDL:        uint16 err_code; */
+/* IDL:        uint8 flags; */
+/* IDL:        uint16 flags2; */
+/* IDL:        uint16 pid_high; */
+/* IDL:        uint8 signature[8]; */
+/* IDL:        uint16 reserved; */
+/* IDL:        uint16 tid; */
+/* IDL:        uint16 pid; */
+/* IDL:        uint16 vuid; */
+/* IDL:        uint16 mid; */
+/* IDL:        [switch_is(smb_command)] smb_body body; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_dgram_smb_packet_smb_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *smb_command)
+{
+       offset = nbt_dissect_enum_smb_command(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_smb_command, smb_command);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_err_class(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_err_class, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_pad, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_err_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_err_code, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_flags, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_flags2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_flags2, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_pid_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_pid_high, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = nbt_dissect_element_dgram_smb_packet_signature_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_signature, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_reserved, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_tid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_tid, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_pid, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_vuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_vuid, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_mid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_mid, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_smb_packet_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *smb_command)
+{
+       offset = nbt_dissect_smb_body(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_smb_packet_body, *smb_command);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_dgram_smb_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint8 smb_command;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_dgram_smb_packet);
+       }
+       
+       offset = nbt_dissect_element_dgram_smb_packet_smb_command(tvb, offset, pinfo, tree, drep, &smb_command);
+
+       offset = nbt_dissect_element_dgram_smb_packet_err_class(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_pad(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_err_code(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_flags2(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_pid_high(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_signature(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_tid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_pid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_vuid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_mid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_smb_packet_body(tvb, offset, pinfo, tree, drep, &smb_command);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(DGRAM_SMB)] [case(DGRAM_SMB)] dgram_smb_packet smb; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_dgram_message_body_smb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_dgram_smb_packet(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_message_body_smb,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_dgram_message_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dgram_message_body");
+               tree = proto_item_add_subtree(item, ett_nbt_dgram_message_body);
+       }
+
+       switch(level) {
+               case DGRAM_SMB:
+                       offset = nbt_dissect_element_dgram_message_body_smb(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        uint16 offset; */
+/* IDL:        nbt_name source_name; */
+/* IDL:        nbt_name dest_name; */
+/* IDL:        uint32 dgram_body_type; */
+/* IDL:        [switch_is(dgram_body_type)] dgram_message_body body; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_dgram_message_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_message_length, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_message_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_message_offset, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_message_source_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_message_source_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_message_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_message_dest_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_message_dgram_body_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dgram_body_type)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_message_dgram_body_type, dgram_body_type);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_message_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dgram_body_type)
+{
+       offset = nbt_dissect_dgram_message_body(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_message_body, *dgram_body_type);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_dgram_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g dgram_body_type;
+        body;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_dgram_message);
+       }
+       
+       offset = nbt_dissect_element_dgram_message_length(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_message_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_message_source_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_message_dest_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_message_dgram_body_type(tvb, offset, pinfo, tree, drep, &dgram_body_type);
+
+       offset = nbt_dissect_element_dgram_message_body(tvb, offset, pinfo, tree, drep, &dgram_body_type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DGRAM_ERROR_NAME_NOT_PRESENT=0x82, */
+/* IDL:        DGRAM_ERROR_INVALID_SOURCE=0x83, */
+/* IDL:        DGRAM_ERROR_INVALID_DEST=0x84, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_dgram_err_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(DGRAM_DIRECT_UNIQUE)] [case(DGRAM_DIRECT_UNIQUE)] dgram_message msg; */
+/* IDL: [case(DGRAM_DIRECT_GROUP)] [case(DGRAM_DIRECT_GROUP)] dgram_message msg; */
+/* IDL: [case(DGRAM_BCAST)] [case(DGRAM_BCAST)] dgram_message msg; */
+/* IDL: [case(DGRAM_ERROR)] [case(DGRAM_ERROR)] dgram_err_code error; */
+/* IDL: [case(DGRAM_QUERY)] [case(DGRAM_QUERY)] nbt_name dest_name; */
+/* IDL: [case(DGRAM_QUERY_POSITIVE)] [case(DGRAM_QUERY_POSITIVE)] nbt_name dest_name; */
+/* IDL: [case(DGRAM_QUERY_NEGATIVE)] [case(DGRAM_QUERY_NEGATIVE)] nbt_name dest_name; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_dgram_data_msg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_dgram_message(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_data_msg,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_data_msg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_dgram_message(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_data_msg,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_data_msg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_dgram_message(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_data_msg,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_data_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_dgram_err_code(tvb, offset, pinfo, tree, drep, hf_nbt_dgram_data_error, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_data_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_data_dest_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_data_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_data_dest_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_data_dest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_dgram_data_dest_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_dgram_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "dgram_data");
+               tree = proto_item_add_subtree(item, ett_nbt_dgram_data);
+       }
+
+       switch(level) {
+               case DGRAM_DIRECT_UNIQUE:
+                       offset = nbt_dissect_element_dgram_data_msg(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DGRAM_DIRECT_GROUP:
+                       offset = nbt_dissect_element_dgram_data_msg(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DGRAM_BCAST:
+                       offset = nbt_dissect_element_dgram_data_msg(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DGRAM_ERROR:
+                       offset = nbt_dissect_element_dgram_data_error(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DGRAM_QUERY:
+                       offset = nbt_dissect_element_dgram_data_dest_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DGRAM_QUERY_POSITIVE:
+                       offset = nbt_dissect_element_dgram_data_dest_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DGRAM_QUERY_NEGATIVE:
+                       offset = nbt_dissect_element_dgram_data_dest_name(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        dgram_msg_type msg_type; */
+/* IDL:        dgram_flags flags; */
+/* IDL:        uint16 dgram_id; */
+/* IDL:        ipv4address src_addr; */
+/* IDL:        uint16 src_port; */
+/* IDL:        [switch_is(msg_type)] dgram_data data; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_dgram_packet_msg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *msg_type)
+{
+       offset = nbt_dissect_enum_dgram_msg_type(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_dgram_packet_msg_type, msg_type);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_packet_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_dgram_flags(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_dgram_packet_flags, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_packet_dgram_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_dgram_packet_dgram_id, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_packet_src_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_dgram_packet_src_addr,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_packet_src_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_dgram_packet_src_port, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_dgram_packet_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *msg_type)
+{
+       offset = nbt_dissect_dgram_data(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_dgram_packet_data, *msg_type);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_dgram_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint8 msg_type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_dgram_packet);
+       }
+       
+       offset = nbt_dissect_element_dgram_packet_msg_type(tvb, offset, pinfo, tree, drep, &msg_type);
+
+       offset = nbt_dissect_element_dgram_packet_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_packet_dgram_id(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_packet_src_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_packet_src_port(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_dgram_packet_data(tvb, offset, pinfo, tree, drep, &msg_type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sockaddr_family; */
+/* IDL:        [flag(LIBNDR_FLAG_BIGENDIAN)] ipv4address pdc_ip; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB remaining; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_sockaddr_sockaddr_family(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_sockaddr_sockaddr_family, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_sockaddr_pdc_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_sockaddr_pdc_ip,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_sockaddr_remaining(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_sockaddr_remaining, 1);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_sockaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_sockaddr);
+       }
+       
+       offset = nbt_dissect_element_sockaddr_sockaddr_family(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_sockaddr_pdc_ip(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_sockaddr_remaining(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NBT_SERVER_PDC =  0x00000001 , */
+/* IDL:        NBT_SERVER_GC =  0x00000004 , */
+/* IDL:        NBT_SERVER_LDAP =  0x00000008 , */
+/* IDL:        NBT_SERVER_DS =  0x00000010 , */
+/* IDL:        NBT_SERVER_KDC =  0x00000020 , */
+/* IDL:        NBT_SERVER_TIMESERV =  0x00000040 , */
+/* IDL:        NBT_SERVER_CLOSEST =  0x00000080 , */
+/* IDL:        NBT_SERVER_WRITABLE =  0x00000100 , */
+/* IDL:        NBT_SERVER_GOOD_TIMESERV =  0x00000200 , */
+/* IDL:        NBT_SERVER_NDNC =  0x00000400 , */
+/* IDL:        NBT_SERVER_SELECT_SECRET_DOMAIN_6 =  0x00000800 , */
+/* IDL:        NBT_SERVER_FULL_SECRET_DOMAIN_6 =  0x00001000 , */
+/* IDL:        NBT_SERVER_ADS_WEB_SERVICE =  0x00002000 , */
+/* IDL:        NBT_SERVER_HAS_DNS_NAME =  0x20000000 , */
+/* IDL:        NBT_SERVER_IS_DEFAULT_NC =  0x40000000 , */
+/* IDL:        NBT_SERVER_FOREST_ROOT =  0x80000000 , */
+/* IDL: } */
+
+int
+nbt_dissect_bitmap_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_nbt_nbt_server_type);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_PDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NBT_SERVER_PDC");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_GC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NBT_SERVER_GC");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_LDAP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NBT_SERVER_LDAP");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_DS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NBT_SERVER_DS");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_KDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NBT_SERVER_KDC");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_TIMESERV, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "NBT_SERVER_TIMESERV");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_CLOSEST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "NBT_SERVER_CLOSEST");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_WRITABLE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "NBT_SERVER_WRITABLE");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_GOOD_TIMESERV, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "NBT_SERVER_GOOD_TIMESERV");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_NDNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "NBT_SERVER_NDNC");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_SELECT_SECRET_DOMAIN_6, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "NBT_SERVER_SELECT_SECRET_DOMAIN_6");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_FULL_SECRET_DOMAIN_6, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "NBT_SERVER_FULL_SECRET_DOMAIN_6");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_ADS_WEB_SERVICE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "NBT_SERVER_ADS_WEB_SERVICE");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_HAS_DNS_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "NBT_SERVER_HAS_DNS_NAME");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_IS_DEFAULT_NC, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "NBT_SERVER_IS_DEFAULT_NC");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_nbt_server_type_NBT_SERVER_FOREST_ROOT, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "NBT_SERVER_FOREST_ROOT");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETLOGON_NT_VERSION_1 =  0x00000001 , */
+/* IDL:        NETLOGON_NT_VERSION_5 =  0x00000002 , */
+/* IDL:        NETLOGON_NT_VERSION_5EX =  0x00000004 , */
+/* IDL:        NETLOGON_NT_VERSION_5EX_WITH_IP =  0x00000008 , */
+/* IDL:        NETLOGON_NT_VERSION_WITH_CLOSEST_SITE =  0x00000010 , */
+/* IDL:        NETLOGON_NT_VERSION_AVOID_NT4EMUL =  0x01000000 , */
+/* IDL:        NETLOGON_NT_VERSION_PDC =  0x10000000 , */
+/* IDL:        NETLOGON_NT_VERSION_IP =  0x20000000 , */
+/* IDL:        NETLOGON_NT_VERSION_LOCAL =  0x40000000 , */
+/* IDL:        NETLOGON_NT_VERSION_GC =  0x80000000 , */
+/* IDL: } */
+
+int
+nbt_dissect_bitmap_netlogon_nt_version_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_nbt_netlogon_nt_version_flags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_1, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_1");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_5");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_5EX");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_WITH_IP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_5EX_WITH_IP");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_WITH_CLOSEST_SITE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_WITH_CLOSEST_SITE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_AVOID_NT4EMUL, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_AVOID_NT4EMUL");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_PDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_PDC");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_IP, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_IP");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_LOCAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_LOCAL");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_GC, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "NETLOGON_NT_VERSION_GC");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        LOGON_REQUEST=0, */
+/* IDL:        LOGON_RESPONSE2=6, */
+/* IDL:        LOGON_PRIMARY_QUERY=7, */
+/* IDL:        NETLOGON_ANNOUNCE_UAS=10, */
+/* IDL:        NETLOGON_RESPONSE_FROM_PDC=12, */
+/* IDL:        LOGON_SAM_LOGON_REQUEST=18, */
+/* IDL:        LOGON_SAM_LOGON_RESPONSE=19, */
+/* IDL:        LOGON_SAM_LOGON_PAUSE_RESPONSE=20, */
+/* IDL:        LOGON_SAM_LOGON_USER_UNKNOWN=21, */
+/* IDL:        LOGON_SAM_LOGON_RESPONSE_EX=23, */
+/* IDL:        LOGON_SAM_LOGON_PAUSE_RESPONSE_EX=24, */
+/* IDL:        LOGON_SAM_LOGON_USER_UNKNOWN_EX=25, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_netlogon_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 request_count; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string computer_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string user_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string mailslot_name; */
+/* IDL:        uint32 acct_control; */
+/* IDL:        [value(ndr_size_dom_sid0(&sid,ndr->flags))] uint32 sid_size; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN4)] DATA_BLOB _pad; */
+/* IDL:        [subcontext_size(sid_size)] [subcontext(0)] dom_sid0 sid; */
+/* IDL:        netlogon_nt_version_flags nt_version; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_request_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_request_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_computer_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_user_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_mailslot_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_acct_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_acct_control, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid_size, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST__pad, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_dom_sid0(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_netlogon_nt_version_flags(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_nt_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_REQUEST_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_NETLOGON_SAM_LOGON_REQUEST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_NETLOGON_SAM_LOGON_REQUEST);
+       }
+       
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_request_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_mailslot_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_acct_control(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid_size(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_nt_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_REQUEST_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string computer_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string user_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string mailslot_name; */
+/* IDL:        uint8 request_count; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_NETLOGON_LOGON_REQUEST_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_LOGON_REQUEST_computer_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_LOGON_REQUEST_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_LOGON_REQUEST_user_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_LOGON_REQUEST_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_LOGON_REQUEST_mailslot_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_LOGON_REQUEST_request_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_LOGON_REQUEST_request_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_LOGON_REQUEST_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_LOGON_REQUEST_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_LOGON_REQUEST_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_LOGON_REQUEST_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_NETLOGON_LOGON_REQUEST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_NETLOGON_LOGON_REQUEST);
+       }
+       
+       offset = nbt_dissect_element_NETLOGON_LOGON_REQUEST_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_LOGON_REQUEST_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_LOGON_REQUEST_mailslot_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_LOGON_REQUEST_request_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_LOGON_REQUEST_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_LOGON_REQUEST_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netlogon_command command; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string pdc_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string user_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string domain_name; */
+/* IDL:        netlogon_nt_version_flags nt_version; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_netlogon_command(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_command, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_domain_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_netlogon_nt_version_flags(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_nt_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_NETLOGON_SAM_LOGON_RESPONSE_NT40(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40);
+       }
+       
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_command(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_nt_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_NT40_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netlogon_command command; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string pdc_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string user_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string domain_name; */
+/* IDL:        GUID domain_uuid; */
+/* IDL:        GUID zero_uuid; */
+/* IDL:        nbt_string forest; */
+/* IDL:        nbt_string dns_domain; */
+/* IDL:        nbt_string pdc_dns_name; */
+/* IDL:        ipv4address pdc_ip; */
+/* IDL:        nbt_server_type server_type; */
+/* IDL:        netlogon_nt_version_flags nt_version; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_netlogon_command(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_command, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_user_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_domain_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_domain_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_domain_uuid, NULL);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_zero_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_zero_uuid, NULL);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_forest,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_dns_domain,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_dns_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_ipv4address(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_ip,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_server_type(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_server_type, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_netlogon_nt_version_flags(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_nt_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_NETLOGON_SAM_LOGON_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_NETLOGON_SAM_LOGON_RESPONSE);
+       }
+       
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_command(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_domain_uuid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_zero_uuid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_forest(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_dns_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_pdc_ip(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_nt_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netlogon_command command; */
+/* IDL:        uint16 sbz; */
+/* IDL:        nbt_server_type server_type; */
+/* IDL:        GUID domain_uuid; */
+/* IDL:        nbt_string forest; */
+/* IDL:        nbt_string dns_domain; */
+/* IDL:        nbt_string pdc_dns_name; */
+/* IDL:        nbt_string domain_name; */
+/* IDL:        nbt_string pdc_name; */
+/* IDL:        nbt_string user_name; */
+/* IDL:        nbt_string server_site; */
+/* IDL:        nbt_string client_site; */
+/* IDL:        [value(ndr_size_nbt_sockaddr(&sockaddr,ndr->flags))] uint8 sockaddr_size; */
+/* IDL:        [subcontext_size(sockaddr_size)] [subcontext(0)] nbt_sockaddr sockaddr; */
+/* IDL:        nbt_string next_closest_site; */
+/* IDL:        netlogon_nt_version_flags nt_version; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_netlogon_command(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_command, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sbz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sbz, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_server_type(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_server_type, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_uuid, NULL);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_forest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_forest,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_dns_domain,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_dns_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_user_name,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_server_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_server_site,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_client_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_client_site,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_size, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_sockaddr(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_next_closest_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_next_closest_site,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_netlogon_nt_version_flags(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_nt_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_NETLOGON_SAM_LOGON_RESPONSE_EX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX);
+       }
+       
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_command(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sbz(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_uuid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_forest(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_dns_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_server_site(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_client_site(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_next_closest_site(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_nt_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_SAM_LOGON_RESPONSE_EX_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string computer_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string mailslot_name; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN2)] DATA_BLOB _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string unicode_name; */
+/* IDL:        netlogon_nt_version_flags nt_version; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc_computer_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc_mailslot_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc_mailslot_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc__pad, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc_unicode_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc_unicode_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_netlogon_nt_version_flags(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc_nt_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_query_for_pdc_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_query_for_pdc_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_netlogon_query_for_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_netlogon_query_for_pdc);
+       }
+       
+       offset = nbt_dissect_element_netlogon_query_for_pdc_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_query_for_pdc_mailslot_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_query_for_pdc__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_query_for_pdc_unicode_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_query_for_pdc_nt_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_query_for_pdc_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_query_for_pdc_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netlogon_command command; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string pdc_name; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN2)] DATA_BLOB _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string unicode_pdc_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string domain_name; */
+/* IDL:        netlogon_nt_version_flags nt_version; */
+/* IDL:        uint16 lmnt_token; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_netlogon_command(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_command, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc__pad, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_unicode_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_unicode_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_domain_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_nt_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_netlogon_nt_version_flags(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_nt_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_lmnt_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_lmnt_token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response_from_pdc_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response_from_pdc_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_netlogon_response_from_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_netlogon_response_from_pdc);
+       }
+       
+       offset = nbt_dissect_element_netlogon_response_from_pdc_command(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc_unicode_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc_nt_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc_lmnt_token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response_from_pdc_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netlogon_command command; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string pdc_name; */
+/* IDL:        uint16 lm20_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_netlogon_response2_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_enum_netlogon_command(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response2_command, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response2_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response2_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_response2_lm20_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_response2_lm20_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_netlogon_response2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_netlogon_response2);
+       }
+       
+       offset = nbt_dissect_element_netlogon_response2_command(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response2_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_netlogon_response2_lm20_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_SamDatabaseID db_index; */
+/* IDL:        hyper serial; */
+/* IDL:        NTTIME timestamp; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_db_change_info_db_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_netr_SamDatabaseID(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_db_change_info_db_index,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_db_change_info_serial(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_db_change_info_serial, NULL);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_db_change_info_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_db_change_info_timestamp);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_db_change_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_db_change_info);
+       }
+       
+       offset = nbt_dissect_element_db_change_info_db_index(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_db_change_info_serial(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_db_change_info_timestamp(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 serial_lo; */
+/* IDL:        time_t timestamp; */
+/* IDL:        uint32 pulse; */
+/* IDL:        uint32 random; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string pdc_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string domain; */
+/* IDL:        [flag(LIBNDR_FLAG_ALIGN2)] DATA_BLOB _pad; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string unicode_pdc_name; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string unicode_domain; */
+/* IDL:        uint32 db_count; */
+/* IDL:        nbt_db_change_info dbchange[db_count]; */
+/* IDL:        [value(ndr_size_dom_sid0(&sid,ndr->flags))] uint32 sid_size; */
+/* IDL:        [subcontext_size(sid_size)] [subcontext(0)] dom_sid0 sid; */
+/* IDL:        uint32 message_format_version; */
+/* IDL:        uint32 message_token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_serial_lo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_serial_lo, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_nbt_NETLOGON_DB_CHANGE_timestamp, NULL);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_pulse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_pulse, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_random(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_random, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_domain , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE__pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE__pad, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_unicode_pdc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_unicode_pdc_name , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_unicode_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_unicode_domain , 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_db_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_db_count, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_dbchange(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_dbchange_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_db_change_info(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_DB_CHANGE_dbchange,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_sid_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_sid_size, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_sid_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               nbt_dissect_element_NETLOGON_DB_CHANGE_sid_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_dom_sid0(tvb,offset,pinfo,tree,drep,hf_nbt_NETLOGON_DB_CHANGE_sid,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_message_format_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_message_format_version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_NETLOGON_DB_CHANGE_message_token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_NETLOGON_DB_CHANGE_message_token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_NETLOGON_DB_CHANGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_NETLOGON_DB_CHANGE);
+       }
+       
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_serial_lo(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_timestamp(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_pulse(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_random(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE__pad(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_unicode_pdc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_unicode_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_db_count(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_dbchange(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_sid_size(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_message_format_version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_NETLOGON_DB_CHANGE_message_token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(LOGON_REQUEST)] [case(LOGON_REQUEST)] NETLOGON_LOGON_REQUEST logon0; */
+/* IDL: [case(LOGON_SAM_LOGON_REQUEST)] [case(LOGON_SAM_LOGON_REQUEST)] NETLOGON_SAM_LOGON_REQUEST logon; */
+/* IDL: [case(LOGON_PRIMARY_QUERY)] [case(LOGON_PRIMARY_QUERY)] nbt_netlogon_query_for_pdc pdc; */
+/* IDL: [case(NETLOGON_ANNOUNCE_UAS)] [case(NETLOGON_ANNOUNCE_UAS)] NETLOGON_DB_CHANGE uas; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_netlogon_request_logon0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_NETLOGON_LOGON_REQUEST(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_netlogon_request_logon0,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_request_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_NETLOGON_SAM_LOGON_REQUEST(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_netlogon_request_logon,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_request_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_netlogon_query_for_pdc(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_netlogon_request_pdc,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_request_uas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_NETLOGON_DB_CHANGE(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_netlogon_request_uas,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_netlogon_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "nbt_netlogon_request");
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_netlogon_request);
+       }
+
+       switch(level) {
+               case LOGON_REQUEST:
+                       offset = nbt_dissect_element_netlogon_request_logon0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LOGON_SAM_LOGON_REQUEST:
+                       offset = nbt_dissect_element_netlogon_request_logon(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LOGON_PRIMARY_QUERY:
+                       offset = nbt_dissect_element_netlogon_request_pdc(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_ANNOUNCE_UAS:
+                       offset = nbt_dissect_element_netlogon_request_uas(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        netlogon_command command; */
+/* IDL:        [switch_is(command)] nbt_netlogon_request req; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_netlogon_packet_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *command)
+{
+       offset = nbt_dissect_enum_netlogon_command(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_packet_command, command);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_netlogon_packet_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *command)
+{
+       offset = nbt_dissect_netlogon_request(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_netlogon_packet_req, *command);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_netlogon_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint16 command;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_netlogon_packet);
+       }
+       
+       offset = nbt_dissect_element_netlogon_packet_command(tvb, offset, pinfo, tree, drep, &command);
+
+       offset = nbt_dissect_element_netlogon_packet_req(tvb, offset, pinfo, tree, drep, &command);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+nbt_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_nbt_svcctl_ServerType);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        HostAnnouncement=1, */
+/* IDL:        AnnouncementRequest=2, */
+/* IDL:        Election=8, */
+/* IDL:        GetBackupListReq=9, */
+/* IDL:        GetBackupListResp=10, */
+/* IDL:        BecomeBackup=11, */
+/* IDL:        DomainAnnouncement=12, */
+/* IDL:        MasterAnnouncement=13, */
+/* IDL:        ResetBrowserState=14, */
+/* IDL:        LocalMasterAnnouncement=15, */
+/* IDL: } */
+
+int
+nbt_dissect_enum_browse_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 UpdateCount; */
+/* IDL:        uint32 Periodicity; */
+/* IDL:        [charset(DOS)] uint8 ServerName[16]; */
+/* IDL:        uint8 OSMajor; */
+/* IDL:        uint8 OSMinor; */
+/* IDL:        svcctl_ServerType ServerType; */
+/* IDL:        uint8 BroMajorVer; */
+/* IDL:        uint8 BroMinorVer; */
+/* IDL:        uint16 Signature; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string Comment; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_host_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_UpdateCount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_Periodicity, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = nbt_dissect_element_browse_host_announcement_ServerName_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_ServerName, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_OSMajor, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_OSMinor, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_svcctl_ServerType(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_ServerType, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_BroMajorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_BroMajorVer, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_BroMinorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_BroMinorVer, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_Signature, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_host_announcement_Comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_host_announcement_Comment , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_host_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_host_announcement);
+       }
+       
+       offset = nbt_dissect_element_browse_host_announcement_UpdateCount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_Periodicity(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_ServerName(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_OSMajor(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_OSMinor(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_ServerType(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_BroMajorVer(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_BroMinorVer(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_Signature(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_host_announcement_Comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 Unused; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string ResponseName; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_announcement_request_Unused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_announcement_request_Unused, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_announcement_request_ResponseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_announcement_request_ResponseName , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_announcement_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_announcement_request);
+       }
+       
+       offset = nbt_dissect_element_browse_announcement_request_Unused(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_announcement_request_ResponseName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 Version; */
+/* IDL:        uint32 Criteria; */
+/* IDL:        uint32 UpTime; */
+/* IDL:        uint32 Reserved; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string ServerName; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_election_request_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_election_request_Version, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_election_request_Criteria(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_election_request_Criteria, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_election_request_UpTime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_election_request_UpTime, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_election_request_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_election_request_Reserved, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_election_request_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_election_request_ServerName , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_election_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_election_request);
+       }
+       
+       offset = nbt_dissect_element_browse_election_request_Version(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_election_request_Criteria(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_election_request_UpTime(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_election_request_Reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_election_request_ServerName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 ReqCount; */
+/* IDL:        uint32 Token; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_backup_list_request_ReqCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_backup_list_request_ReqCount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_backup_list_request_Token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_backup_list_request_Token, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_backup_list_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_backup_list_request);
+       }
+       
+       offset = nbt_dissect_element_browse_backup_list_request_ReqCount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_backup_list_request_Token(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 BackupCount; */
+/* IDL:        uint32 Token; */
+/* IDL:        nbt_name BackupServerList[BackupCount]; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_backup_list_response_BackupCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_backup_list_response_BackupCount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_backup_list_response_Token(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_backup_list_response_Token, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_backup_list_response_BackupServerList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_backup_list_response_BackupServerList_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_name(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_backup_list_response_BackupServerList,0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_backup_list_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_backup_list_response);
+       }
+       
+       offset = nbt_dissect_element_browse_backup_list_response_BackupCount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_backup_list_response_Token(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_backup_list_response_BackupServerList(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string BrowserName; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_become_backup_BrowserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_become_backup_BrowserName , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_become_backup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_become_backup);
+       }
+       
+       offset = nbt_dissect_element_browse_become_backup_BrowserName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 UpdateCount; */
+/* IDL:        uint32 Periodicity; */
+/* IDL:        [charset(DOS)] uint8 ServerName[16]; */
+/* IDL:        uint8 OSMajor; */
+/* IDL:        uint8 OSMinor; */
+/* IDL:        svcctl_ServerType ServerType; */
+/* IDL:        uint32 MysteriousField; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string Comment; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_domain_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_UpdateCount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_Periodicity, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = nbt_dissect_element_browse_domain_announcement_ServerName_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_ServerName, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_OSMajor, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_OSMinor, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_svcctl_ServerType(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_ServerType, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_MysteriousField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_MysteriousField, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_domain_announcement_Comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_domain_announcement_Comment , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_domain_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_domain_announcement);
+       }
+       
+       offset = nbt_dissect_element_browse_domain_announcement_UpdateCount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_Periodicity(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_ServerName(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_OSMajor(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_OSMinor(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_ServerType(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_MysteriousField(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_domain_announcement_Comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string ServerName; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_master_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_master_announcement_ServerName , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_master_announcement);
+       }
+       
+       offset = nbt_dissect_element_browse_master_announcement_ServerName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 Command; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_reset_state_Command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_reset_state_Command, 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_reset_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_reset_state);
+       }
+       
+       offset = nbt_dissect_element_browse_reset_state_Command(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 UpdateCount; */
+/* IDL:        uint32 Periodicity; */
+/* IDL:        [charset(DOS)] uint8 ServerName[16]; */
+/* IDL:        uint8 OSMajor; */
+/* IDL:        uint8 OSMinor; */
+/* IDL:        svcctl_ServerType ServerType; */
+/* IDL:        uint8 BroMajorVer; */
+/* IDL:        uint8 BroMinorVer; */
+/* IDL:        uint16 Signature; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string Comment; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_local_master_announcement_UpdateCount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_UpdateCount, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_Periodicity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_Periodicity, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_ServerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = nbt_dissect_element_browse_local_master_announcement_ServerName_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_ServerName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_ServerName, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_OSMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_OSMajor, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_OSMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_OSMinor, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_bitmap_svcctl_ServerType(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_ServerType, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_BroMajorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_BroMajorVer, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_BroMinorVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_BroMinorVer, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_Signature, 0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_local_master_announcement_Comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_local_master_announcement_Comment , 0);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_local_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_local_master_announcement);
+       }
+       
+       offset = nbt_dissect_element_browse_local_master_announcement_UpdateCount(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_Periodicity(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_ServerName(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_OSMajor(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_OSMinor(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_ServerType(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_BroMajorVer(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_BroMinorVer(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_Signature(tvb, offset, pinfo, tree, drep);
+
+       offset = nbt_dissect_element_browse_local_master_announcement_Comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(HostAnnouncement)] [case(HostAnnouncement)] nbt_browse_host_announcement host_annoucement; */
+/* IDL: [case(AnnouncementRequest)] [case(AnnouncementRequest)] nbt_browse_announcement_request announcement_request; */
+/* IDL: [case(Election)] [case(Election)] nbt_browse_election_request election_request; */
+/* IDL: [case(GetBackupListReq)] [case(GetBackupListReq)] nbt_browse_backup_list_request backup_list_request; */
+/* IDL: [case(GetBackupListResp)] [case(GetBackupListResp)] nbt_browse_backup_list_response backup_list_response; */
+/* IDL: [case(BecomeBackup)] [case(BecomeBackup)] nbt_browse_become_backup become_backup; */
+/* IDL: [case(DomainAnnouncement)] [case(DomainAnnouncement)] nbt_browse_domain_announcement domain_announcement; */
+/* IDL: [case(MasterAnnouncement)] [case(MasterAnnouncement)] nbt_browse_master_announcement master_announcement; */
+/* IDL: [case(ResetBrowserState)] [case(ResetBrowserState)] nbt_browse_reset_state reset_browser_state; */
+/* IDL: [case(LocalMasterAnnouncement)] [case(LocalMasterAnnouncement)] nbt_browse_local_master_announcement local_master_announcement; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_payload_host_annoucement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_host_announcement(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_host_annoucement,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_announcement_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_announcement_request(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_announcement_request,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_election_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_election_request(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_election_request,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_backup_list_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_backup_list_request(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_backup_list_request,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_backup_list_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_backup_list_response(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_backup_list_response,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_become_backup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_become_backup(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_become_backup,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_domain_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_domain_announcement(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_domain_announcement,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_master_announcement(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_master_announcement,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_reset_browser_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_reset_state(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_reset_browser_state,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_payload_local_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_browse_local_master_announcement(tvb,offset,pinfo,tree,drep,hf_nbt_nbt_browse_payload_local_master_announcement,0);
+
+       return offset;
+}
+
+static int
+nbt_dissect_browse_payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "nbt_browse_payload");
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_payload);
+       }
+
+       switch(level) {
+               case HostAnnouncement:
+                       offset = nbt_dissect_element_browse_payload_host_annoucement(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case AnnouncementRequest:
+                       offset = nbt_dissect_element_browse_payload_announcement_request(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case Election:
+                       offset = nbt_dissect_element_browse_payload_election_request(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case GetBackupListReq:
+                       offset = nbt_dissect_element_browse_payload_backup_list_request(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case GetBackupListResp:
+                       offset = nbt_dissect_element_browse_payload_backup_list_response(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BecomeBackup:
+                       offset = nbt_dissect_element_browse_payload_become_backup(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case DomainAnnouncement:
+                       offset = nbt_dissect_element_browse_payload_domain_announcement(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MasterAnnouncement:
+                       offset = nbt_dissect_element_browse_payload_master_announcement(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case ResetBrowserState:
+                       offset = nbt_dissect_element_browse_payload_reset_browser_state(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case LocalMasterAnnouncement:
+                       offset = nbt_dissect_element_browse_payload_local_master_announcement(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        nbt_browse_opcode opcode; */
+/* IDL:        [switch_is(opcode)] nbt_browse_payload payload; */
+/* IDL: } */
+
+static int
+nbt_dissect_element_browse_packet_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *opcode)
+{
+       offset = nbt_dissect_enum_browse_opcode(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_packet_opcode, opcode);
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_browse_packet_payload(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint8 *opcode)
+{
+       offset = nbt_dissect_browse_payload(tvb, offset, pinfo, tree, drep, hf_nbt_nbt_browse_packet_payload, *opcode);
+
+       return offset;
+}
+
+int
+nbt_dissect_struct_browse_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint8 opcode;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_nbt_nbt_browse_packet);
+       }
+       
+       offset = nbt_dissect_element_browse_packet_opcode(tvb, offset, pinfo, tree, drep, &opcode);
+
+       offset = nbt_dissect_element_browse_packet_payload(tvb, offset, pinfo, tree, drep, &opcode);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+nbt_dissect_element_decode_nbt_netlogon_packet_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = nbt_dissect_struct_netlogon_packet(tvb,offset,pinfo,tree,drep,hf_nbt_decode_nbt_netlogon_packet_packet,0);
+
+       return offset;
+}
+
+/* IDL: void decode_nbt_netlogon_packet( */
+/* IDL: [in] nbt_netlogon_packet packet */
+/* IDL: ); */
+
+static int
+nbt_dissect_decode_nbt_netlogon_packet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_nbt_netlogon_packet";
+       return offset;
+}
+
+static int
+nbt_dissect_decode_nbt_netlogon_packet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_nbt_netlogon_packet";
+       offset = nbt_dissect_element_decode_nbt_netlogon_packet_packet(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector nbt_dissectors[] = {
+       { 0, "decode_nbt_netlogon_packet",
+          nbt_dissect_decode_nbt_netlogon_packet_request, nbt_dissect_decode_nbt_netlogon_packet_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_nbt(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_nbt_nb_flags_NBT_NM_OWNER_TYPE,
+         { "Nbt Nm Owner Type", "nbt.nb_flags.NBT_NM_OWNER_TYPE", FT_BOOLEAN, 16, TFS(&nb_flags_NBT_NM_OWNER_TYPE_tfs), ( 0x6000 ), NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_data_count,
+         { "Data Count", "nbt.smb_trans_body.data_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_db_change_info_db_index,
+         { "Db Index", "nbt.nbt_db_change_info.db_index", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_offset,
+         { "Offset", "nbt.dgram_message.offset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc_lmnt_token,
+         { "Lmnt Token", "nbt.nbt_netlogon_query_for_pdc.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_body,
+         { "Body", "nbt.dgram_message.body", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr,
+         { "Sockaddr", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.sockaddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_questions,
+         { "Questions", "nbt.nbt_name_packet.questions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_ancount,
+         { "Ancount", "nbt.nbt_name_packet.ancount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_lmnt_token,
+         { "Lmnt Token", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_opcode,
+         { "Opcode", "nbt.smb_trans_body.opcode", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_no_resource_conditions,
+         { "Number No Resource Conditions", "nbt.nbt_statistics.number_no_resource_conditions", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_IP,
+         { "Netlogon Nt Version Ip", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_IP", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_IP_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_data,
+         { "Data", "nbt.nbt_rdata.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_status_statistics,
+         { "Statistics", "nbt.nbt_rdata_status.statistics", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_WITH_IP,
+         { "Netlogon Nt Version 5ex With Ip", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_5EX_WITH_IP", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_WITH_IP_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_nbt_nbt_sockaddr_sockaddr_family,
+         { "Sockaddr Family", "nbt.nbt_sockaddr.sockaddr_family", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_question_question_type,
+         { "Question Type", "nbt.nbt_name_question.question_type", FT_UINT16, BASE_DEC, VALS(nbt_nbt_qtype_vals), 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_reserved,
+         { "Reserved", "nbt.dgram_smb_packet.reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_res_rec_rr_type,
+         { "Rr Type", "nbt.nbt_res_rec.rr_type", FT_UINT16, BASE_DEC, VALS(nbt_nbt_qtype_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_of_collisions,
+         { "Number Of Collisions", "nbt.nbt_statistics.number_of_collisions", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_name,
+         { "Name", "nbt.nbt_name.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_res_rec_name,
+         { "Name", "nbt.nbt_res_rec.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_netbios_length,
+         { "Length", "nbt.nbt_rdata_netbios.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_source_name,
+         { "Source Name", "nbt.dgram_message.source_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_status,
+         { "Status", "nbt.nbt_rdata.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_lm20_token,
+         { "Lm20 Token", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_res_rec_rr_class,
+         { "Rr Class", "nbt.nbt_res_rec.rr_class", FT_UINT16, BASE_DEC, VALS(nbt_nbt_qclass_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_Signature,
+         { "Signature", "nbt.nbt_browse_local_master_announcement.Signature", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_smb_command,
+         { "Smb Command", "nbt.dgram_smb_packet.smb_command", FT_UINT8, BASE_DEC, VALS(nbt_smb_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_packet_req,
+         { "Req", "nbt.nbt_netlogon_packet.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_question_question_class,
+         { "Question Class", "nbt.nbt_name_question.question_class", FT_UINT16, BASE_DEC, VALS(nbt_nbt_qclass_vals), 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_data,
+         { "Data", "nbt.smb_trans_body.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_alignment_errors,
+         { "Number Alignment Errors", "nbt.nbt_statistics.number_alignment_errors", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_name,
+         { "Domain Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_Periodicity,
+         { "Periodicity", "nbt.nbt_browse_domain_announcement.Periodicity", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_domain_name,
+         { "Domain Name", "nbt.nbt_netlogon_response_from_pdc.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_status_num_names,
+         { "Num Names", "nbt.nbt_rdata_status.num_names", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_BroMinorVer,
+         { "Brominorver", "nbt.nbt_browse_local_master_announcement.BroMinorVer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_data_dest_name,
+         { "Dest Name", "nbt.dgram_data.dest_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_body_smb,
+         { "Smb", "nbt.dgram_message_body.smb", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_next_closest_site,
+         { "Next Closest Site", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.next_closest_site", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc_nt_version,
+         { "Nt Version", "nbt.nbt_netlogon_query_for_pdc.nt_version", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_db_change_info_serial,
+         { "Serial", "nbt.nbt_db_change_info.serial", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_setup_count,
+         { "Setup Count", "nbt.smb_trans_body.setup_count", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_host_annoucement,
+         { "Host Annoucement", "nbt.nbt_browse_payload.host_annoucement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_WITH_CLOSEST_SITE,
+         { "Netlogon Nt Version With Closest Site", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_WITH_CLOSEST_SITE", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_WITH_CLOSEST_SITE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_packet_payload,
+         { "Payload", "nbt.nbt_browse_packet.payload", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sbz,
+         { "Sbz", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.sbz", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_dgram_packet_data,
+         { "Data", "nbt.nbt_dgram_packet.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_dgram_body_type,
+         { "Dgram Body Type", "nbt.dgram_message.dgram_body_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_total_param_count,
+         { "Total Param Count", "nbt.smb_trans_body.total_param_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_data_error,
+         { "Error", "nbt.dgram_data.error", FT_UINT8, BASE_DEC, VALS(nbt_dgram_err_code_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_backup_list_response_Token,
+         { "Token", "nbt.nbt_browse_backup_list_response.Token", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_user_name,
+         { "User Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.user_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_request_logon0,
+         { "Logon0", "nbt.nbt_netlogon_request.logon0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_dns_domain,
+         { "Dns Domain", "nbt.NETLOGON_SAM_LOGON_RESPONSE.dns_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST__pad,
+         { " Pad", "nbt.NETLOGON_SAM_LOGON_REQUEST._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_flags,
+         { "Flags", "nbt.dgram_smb_packet.flags", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_total_number_command_blocks,
+         { "Total Number Command Blocks", "nbt.nbt_statistics.total_number_command_blocks", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_UpdateCount,
+         { "Updatecount", "nbt.nbt_browse_local_master_announcement.UpdateCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_pad2,
+         { "Pad2", "nbt.smb_trans_body.pad2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_status_length,
+         { "Length", "nbt.nbt_rdata_status.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_unicode_domain,
+         { "Unicode Domain", "nbt.NETLOGON_DB_CHANGE.unicode_domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_address_ipaddr,
+         { "Ipaddr", "nbt.nbt_rdata_address.ipaddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_request_uas,
+         { "Uas", "nbt.nbt_netlogon_request.uas", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_timeout,
+         { "Timeout", "nbt.smb_trans_body.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_max_total_number_command_blocks,
+         { "Max Total Number Command Blocks", "nbt.nbt_statistics.max_total_number_command_blocks", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_dgram_packet_flags,
+         { "Flags", "nbt.nbt_dgram_packet.flags", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_res_rec_rdata,
+         { "Rdata", "nbt.nbt_res_rec.rdata", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_lm20_token,
+         { "Lm20 Token", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nb_flags_NBT_NM_DEREGISTER,
+         { "Nbt Nm Deregister", "nbt.nb_flags.NBT_NM_DEREGISTER", FT_BOOLEAN, 16, TFS(&nb_flags_NBT_NM_DEREGISTER_tfs), ( 0x1000 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_dbchange,
+         { "Dbchange", "nbt.NETLOGON_DB_CHANGE.dbchange", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_command,
+         { "Command", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.command", FT_UINT16, BASE_DEC, VALS(nbt_netlogon_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_CLOSEST,
+         { "Nbt Server Closest", "nbt.nbt_server_type.NBT_SERVER_CLOSEST", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_CLOSEST_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_pid,
+         { "Pid", "nbt.dgram_smb_packet.pid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_BroMajorVer,
+         { "Bromajorver", "nbt.nbt_browse_host_announcement.BroMajorVer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_scope,
+         { "Scope", "nbt.nbt_name.scope", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_sockaddr_remaining,
+         { "Remaining", "nbt.nbt_sockaddr.remaining", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_FLAG_RECURSION_AVAIL,
+         { "Nbt Flag Recursion Avail", "nbt.nbt_operation.NBT_FLAG_RECURSION_AVAIL", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_FLAG_RECURSION_AVAIL_tfs), ( 0x0080 ), NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_DS,
+         { "Nbt Server Ds", "nbt.nbt_server_type.NBT_SERVER_DS", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_DS_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_lm20_token,
+         { "Lm20 Token", "nbt.NETLOGON_SAM_LOGON_REQUEST.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_unicode_pdc_name,
+         { "Unicode Pdc Name", "nbt.NETLOGON_DB_CHANGE.unicode_pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_status_name_name,
+         { "Name", "nbt.nbt_status_name.name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_param_count,
+         { "Param Count", "nbt.smb_trans_body.param_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_FLAG_RECURSION_DESIRED,
+         { "Nbt Flag Recursion Desired", "nbt.nbt_operation.NBT_FLAG_RECURSION_DESIRED", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_FLAG_RECURSION_DESIRED_tfs), ( 0x0100 ), NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_1,
+         { "Netlogon Nt Version 1", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_1", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_1_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_pending_sessions,
+         { "Number Pending Sessions", "nbt.nbt_statistics.number_pending_sessions", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_name,
+         { "Pdc Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.pdc_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_IS_DEFAULT_NC,
+         { "Nbt Server Is Default Nc", "nbt.nbt_server_type.NBT_SERVER_IS_DEFAULT_NC", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_IS_DEFAULT_NC_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_param_offset,
+         { "Param Offset", "nbt.smb_trans_body.param_offset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_max_param_count,
+         { "Max Param Count", "nbt.smb_trans_body.max_param_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_backup_list_request_Token,
+         { "Token", "nbt.nbt_browse_backup_list_request.Token", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_BroMajorVer,
+         { "Bromajorver", "nbt.nbt_browse_local_master_announcement.BroMajorVer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_FOREST_ROOT,
+         { "Nbt Server Forest Root", "nbt.nbt_server_type.NBT_SERVER_FOREST_ROOT", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_FOREST_ROOT_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_command,
+         { "Command", "nbt.NETLOGON_SAM_LOGON_RESPONSE.command", FT_UINT16, BASE_DEC, VALS(nbt_netlogon_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_backup_list_response_BackupServerList,
+         { "Backupserverlist", "nbt.nbt_browse_backup_list_response.BackupServerList", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_ServerType,
+         { "Servertype", "nbt.nbt_browse_local_master_announcement.ServerType", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_dest_name,
+         { "Dest Name", "nbt.dgram_message.dest_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_acct_control,
+         { "Acct Control", "nbt.NETLOGON_SAM_LOGON_REQUEST.acct_control", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_election_request_Reserved,
+         { "Reserved", "nbt.nbt_browse_election_request.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_master_announcement_ServerName,
+         { "Servername", "nbt.nbt_browse_master_announcement.ServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_UpdateCount,
+         { "Updatecount", "nbt.nbt_browse_host_announcement.UpdateCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_user_name,
+         { "User Name", "nbt.NETLOGON_SAM_LOGON_REQUEST.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX,
+         { "Netlogon Nt Version 5ex", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_5EX", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_5EX_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_RCODE,
+         { "Nbt Rcode", "nbt.nbt_operation.NBT_RCODE", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_RCODE_tfs), ( 0x000F ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_election_request_ServerName,
+         { "Servername", "nbt.nbt_browse_election_request.ServerName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_election_request_UpTime,
+         { "Uptime", "nbt.nbt_browse_election_request.UpTime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_name,
+         { "Pdc Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE.pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_message_length,
+         { "Length", "nbt.dgram_message.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_pdc_dns_name,
+         { "Pdc Dns Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.pdc_dns_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_server_type,
+         { "Server Type", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.server_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_packet_opcode,
+         { "Opcode", "nbt.nbt_browse_packet.opcode", FT_UINT8, BASE_DEC, VALS(nbt_nbt_browse_opcode_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_nsrecs,
+         { "Nsrecs", "nbt.nbt_name_packet.nsrecs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_server_site,
+         { "Server Site", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.server_site", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_5,
+         { "Netlogon Nt Version 5", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_5", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_5_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_LOGON_REQUEST_lm20_token,
+         { "Lm20 Token", "nbt.NETLOGON_LOGON_REQUEST.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nb_flags_NBT_NM_PERMANENT,
+         { "Nbt Nm Permanent", "nbt.nb_flags.NBT_NM_PERMANENT", FT_BOOLEAN, 16, TFS(&nb_flags_NBT_NM_PERMANENT_tfs), ( 0x0200 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_Signature,
+         { "Signature", "nbt.nbt_browse_host_announcement.Signature", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_serial_lo,
+         { "Serial Lo", "nbt.NETLOGON_DB_CHANGE.serial_lo", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_Periodicity,
+         { "Periodicity", "nbt.nbt_browse_host_announcement.Periodicity", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_FLAG_TRUNCATION,
+         { "Nbt Flag Truncation", "nbt.nbt_operation.NBT_FLAG_TRUNCATION", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_FLAG_TRUNCATION_tfs), ( 0x0200 ), NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_tid,
+         { "Tid", "nbt.dgram_smb_packet.tid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_ServerName,
+         { "Servername", "nbt.nbt_browse_host_announcement.ServerName", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_GOOD_TIMESERV,
+         { "Nbt Server Good Timeserv", "nbt.nbt_server_type.NBT_SERVER_GOOD_TIMESERV", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_GOOD_TIMESERV_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_election_request_Version,
+         { "Version", "nbt.nbt_browse_election_request.Version", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_pad,
+         { "Pad", "nbt.smb_trans_body.pad", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_Comment,
+         { "Comment", "nbt.nbt_browse_host_announcement.Comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_domain_name,
+         { "Domain Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_LOGON_REQUEST_computer_name,
+         { "Computer Name", "nbt.NETLOGON_LOGON_REQUEST.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_ServerType,
+         { "Servertype", "nbt.nbt_browse_host_announcement.ServerType", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_priority,
+         { "Priority", "nbt.smb_trans_body.priority", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_request_count,
+         { "Request Count", "nbt.NETLOGON_SAM_LOGON_REQUEST.request_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_session_data_packet_size,
+         { "Session Data Packet Size", "nbt.nbt_statistics.session_data_packet_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_free_command_blocks,
+         { "Number Free Command Blocks", "nbt.nbt_statistics.number_free_command_blocks", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_OPCODE,
+         { "Nbt Opcode", "nbt.nbt_operation.NBT_OPCODE", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_OPCODE_tfs), ( 0x7800 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_backup_list_request_ReqCount,
+         { "Reqcount", "nbt.nbt_browse_backup_list_request.ReqCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_AVOID_NT4EMUL,
+         { "Netlogon Nt Version Avoid Nt4emul", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_AVOID_NT4EMUL", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_AVOID_NT4EMUL_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_OSMajor,
+         { "Osmajor", "nbt.nbt_browse_host_announcement.OSMajor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_dgram_packet_src_addr,
+         { "Src Addr", "nbt.nbt_dgram_packet.src_addr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_mid,
+         { "Mid", "nbt.dgram_smb_packet.mid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_answers,
+         { "Answers", "nbt.nbt_name_packet.answers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_UpdateCount,
+         { "Updatecount", "nbt.nbt_browse_domain_announcement.UpdateCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_reset_state_Command,
+         { "Command", "nbt.nbt_browse_reset_state.Command", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_become_backup_BrowserName,
+         { "Browsername", "nbt.nbt_browse_become_backup.BrowserName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_forest,
+         { "Forest", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.forest", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_netbios_addresses,
+         { "Addresses", "nbt.nbt_rdata_netbios.addresses", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_ServerName,
+         { "Servername", "nbt.nbt_browse_local_master_announcement.ServerName", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_announcement_request_ResponseName,
+         { "Responsename", "nbt.nbt_browse_announcement_request.ResponseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_user_name,
+         { "User Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_election_request,
+         { "Election Request", "nbt.nbt_browse_payload.election_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_random,
+         { "Random", "nbt.NETLOGON_DB_CHANGE.random", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_GC,
+         { "Netlogon Nt Version Gc", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_GC", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_GC_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_Comment,
+         { "Comment", "nbt.nbt_browse_local_master_announcement.Comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_packet_command,
+         { "Command", "nbt.nbt_netlogon_packet.command", FT_UINT16, BASE_DEC, VALS(nbt_netlogon_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_pad,
+         { "Pad", "nbt.dgram_smb_packet.pad", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc__pad,
+         { " Pad", "nbt.nbt_netlogon_query_for_pdc._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_max_setup_count,
+         { "Max Setup Count", "nbt.smb_trans_body.max_setup_count", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_TIMESERV,
+         { "Nbt Server Timeserv", "nbt.nbt_server_type.NBT_SERVER_TIMESERV", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_TIMESERV_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_nbt_nbt_dgram_packet_msg_type,
+         { "Msg Type", "nbt.nbt_dgram_packet.msg_type", FT_UINT8, BASE_DEC, VALS(nbt_dgram_msg_type_vals), 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_mailslot_name,
+         { "Mailslot Name", "nbt.smb_trans_body.mailslot_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_domain_name,
+         { "Domain Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_pdc_name,
+         { "Pdc Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_status_names,
+         { "Names", "nbt.nbt_rdata_status.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_request_logon,
+         { "Logon", "nbt.nbt_netlogon_request.logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_nt_version,
+         { "Nt Version", "nbt.NETLOGON_SAM_LOGON_RESPONSE.nt_version", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_db_count,
+         { "Db Count", "nbt.NETLOGON_DB_CHANGE.db_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_ServerType,
+         { "Servertype", "nbt.nbt_browse_domain_announcement.ServerType", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_lmnt_token,
+         { "Lmnt Token", "nbt.NETLOGON_SAM_LOGON_REQUEST.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_max_number_pending_sessions,
+         { "Max Number Pending Sessions", "nbt.nbt_statistics.max_number_pending_sessions", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_request_pdc,
+         { "Pdc", "nbt.nbt_netlogon_request.pdc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc_mailslot_name,
+         { "Mailslot Name", "nbt.nbt_netlogon_query_for_pdc.mailslot_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_MysteriousField,
+         { "Mysteriousfield", "nbt.nbt_browse_domain_announcement.MysteriousField", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_BroMinorVer,
+         { "Brominorver", "nbt.nbt_browse_host_announcement.BroMinorVer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_nt_version,
+         { "Nt Version", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.nt_version", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40_nt_version,
+         { "Nt Version", "nbt.NETLOGON_SAM_LOGON_RESPONSE_NT40.nt_version", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response2_lm20_token,
+         { "Lm20 Token", "nbt.nbt_netlogon_response2.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_data_msg,
+         { "Msg", "nbt.dgram_data.msg", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_election_request_Criteria,
+         { "Criteria", "nbt.nbt_browse_election_request.Criteria", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_LOGON_REQUEST_user_name,
+         { "User Name", "nbt.NETLOGON_LOGON_REQUEST.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_nt_version,
+         { "Nt Version", "nbt.NETLOGON_SAM_LOGON_REQUEST.nt_version", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_FLAG_AUTHORITATIVE,
+         { "Nbt Flag Authoritative", "nbt.nbt_operation.NBT_FLAG_AUTHORITATIVE", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_FLAG_AUTHORITATIVE_tfs), ( 0x0400 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_LOGON_REQUEST_lmnt_token,
+         { "Lmnt Token", "nbt.NETLOGON_LOGON_REQUEST.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_reserved,
+         { "Reserved", "nbt.smb_trans_body.reserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_domain_uuid,
+         { "Domain Uuid", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.domain_uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_retransmits,
+         { "Number Retransmits", "nbt.nbt_statistics.number_retransmits", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_command,
+         { "Command", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.command", FT_UINT16, BASE_DEC, VALS(nbt_netlogon_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_nbt_status_name_type,
+         { "Type", "nbt.nbt_status_name.type", FT_UINT8, BASE_DEC, VALS(nbt_nbt_name_type_vals), 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_signature,
+         { "Signature", "nbt.dgram_smb_packet.signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response2_pdc_name,
+         { "Pdc Name", "nbt.nbt_netlogon_response2.pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_local_master_announcement,
+         { "Local Master Announcement", "nbt.nbt_browse_payload.local_master_announcement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_OSMajor,
+         { "Osmajor", "nbt.nbt_browse_domain_announcement.OSMajor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_Comment,
+         { "Comment", "nbt.nbt_browse_domain_announcement.Comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_send_aborts,
+         { "Number Send Aborts", "nbt.nbt_statistics.number_send_aborts", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_user_name,
+         { "User Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_data_offset,
+         { "Data Offset", "nbt.smb_trans_body.data_offset", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_OSMinor,
+         { "Osminor", "nbt.nbt_browse_domain_announcement.OSMinor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_domain_announcement_ServerName,
+         { "Servername", "nbt.nbt_browse_domain_announcement.ServerName", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_host_announcement_OSMinor,
+         { "Osminor", "nbt.nbt_browse_host_announcement.OSMinor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_dgram_packet_src_port,
+         { "Src Port", "nbt.nbt_dgram_packet.src_port", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_PDC,
+         { "Netlogon Nt Version Pdc", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_PDC", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_PDC_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_sid_size,
+         { "Sid Size", "nbt.NETLOGON_DB_CHANGE.sid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid,
+         { "Sid", "nbt.NETLOGON_SAM_LOGON_REQUEST.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nb_flags_NBT_NM_ACTIVE,
+         { "Nbt Nm Active", "nbt.nb_flags.NBT_NM_ACTIVE", FT_BOOLEAN, 16, TFS(&nb_flags_NBT_NM_ACTIVE_tfs), ( 0x0400 ), NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_byte_count,
+         { "Byte Count", "nbt.smb_trans_body.byte_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_unit_id,
+         { "Unit Id", "nbt.nbt_statistics.unit_id", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_nscount,
+         { "Nscount", "nbt.nbt_name_packet.nscount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_pdc_name,
+         { "Pdc Name", "nbt.NETLOGON_DB_CHANGE.pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_master_announcement,
+         { "Master Announcement", "nbt.nbt_browse_payload.master_announcement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_command,
+         { "Command", "nbt.nbt_netlogon_response_from_pdc.command", FT_UINT16, BASE_DEC, VALS(nbt_netlogon_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_body,
+         { "Body", "nbt.dgram_smb_packet.body", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_name_trn_id,
+         { "Name Trn Id", "nbt.nbt_name_packet.name_trn_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_OSMinor,
+         { "Osminor", "nbt.nbt_browse_local_master_announcement.OSMinor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_become_backup,
+         { "Become Backup", "nbt.nbt_browse_payload.become_backup", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_LOGON_REQUEST_mailslot_name,
+         { "Mailslot Name", "nbt.NETLOGON_LOGON_REQUEST.mailslot_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_res_rec_ttl,
+         { "Ttl", "nbt.nbt_res_rec.ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_SELECT_SECRET_DOMAIN_6,
+         { "Nbt Server Select Secret Domain 6", "nbt.nbt_server_type.NBT_SERVER_SELECT_SECRET_DOMAIN_6", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_SELECT_SECRET_DOMAIN_6_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_vuid,
+         { "Vuid", "nbt.dgram_smb_packet.vuid", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_zero_uuid,
+         { "Zero Uuid", "nbt.NETLOGON_SAM_LOGON_RESPONSE.zero_uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_sockaddr_pdc_ip,
+         { "Pdc Ip", "nbt.nbt_sockaddr.pdc_ip", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_flags2,
+         { "Flags2", "nbt.dgram_smb_packet.flags2", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_opnum,
+         { "Operation", "nbt.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_lm20_token,
+         { "Lm20 Token", "nbt.NETLOGON_SAM_LOGON_RESPONSE.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_data_length,
+         { "Length", "nbt.nbt_rdata_data.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_pulse,
+         { "Pulse", "nbt.NETLOGON_DB_CHANGE.pulse", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_jumpers,
+         { "Jumpers", "nbt.nbt_statistics.jumpers", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_good_sends,
+         { "Number Good Sends", "nbt.nbt_statistics.number_good_sends", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_flags_DGRAM_FLAG_NODE_TYPE,
+         { "Dgram Flag Node Type", "nbt.dgram_flags.DGRAM_FLAG_NODE_TYPE", FT_BOOLEAN, 8, TFS(&dgram_flags_DGRAM_FLAG_NODE_TYPE_tfs), ( 0x0C ), NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_qdcount,
+         { "Qdcount", "nbt.nbt_name_packet.qdcount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_lmnt_token,
+         { "Lmnt Token", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_domain_announcement,
+         { "Domain Announcement", "nbt.nbt_browse_payload.domain_announcement", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_of_crcs,
+         { "Number Of Crcs", "nbt.nbt_statistics.number_of_crcs", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_db_change_info_timestamp,
+         { "Timestamp", "nbt.nbt_db_change_info.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_total_data_count,
+         { "Total Data Count", "nbt.smb_trans_body.total_data_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_netlogon_nt_version_flags_NETLOGON_NT_VERSION_LOCAL,
+         { "Netlogon Nt Version Local", "nbt.netlogon_nt_version_flags.NETLOGON_NT_VERSION_LOCAL", FT_BOOLEAN, 32, TFS(&netlogon_nt_version_flags_NETLOGON_NT_VERSION_LOCAL_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_err_code,
+         { "Err Code", "nbt.dgram_smb_packet.err_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_decode_nbt_netlogon_packet_packet,
+         { "Packet", "nbt.decode_nbt_netlogon_packet.packet", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_question_name,
+         { "Name", "nbt.nbt_name_question.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_PDC,
+         { "Nbt Server Pdc", "nbt.nbt_server_type.NBT_SERVER_PDC", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_PDC_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_address_nb_flags,
+         { "Nb Flags", "nbt.nbt_rdata_address.nb_flags", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_HAS_DNS_NAME,
+         { "Nbt Server Has Dns Name", "nbt.nbt_server_type.NBT_SERVER_HAS_DNS_NAME", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_HAS_DNS_NAME_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_client_site,
+         { "Client Site", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.client_site", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_domain,
+         { "Domain", "nbt.NETLOGON_DB_CHANGE.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_announcement_request,
+         { "Announcement Request", "nbt.nbt_browse_payload.announcement_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_FLAG_BROADCAST,
+         { "Nbt Flag Broadcast", "nbt.nbt_operation.NBT_FLAG_BROADCAST", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_FLAG_BROADCAST_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_nt_version,
+         { "Nt Version", "nbt.nbt_netlogon_response_from_pdc.nt_version", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_pid_high,
+         { "Pid High", "nbt.dgram_smb_packet.pid_high", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response2_command,
+         { "Command", "nbt.nbt_netlogon_response2.command", FT_UINT16, BASE_DEC, VALS(nbt_netlogon_command_vals), 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_size,
+         { "Sockaddr Size", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.sockaddr_size", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_operation_NBT_FLAG_REPLY,
+         { "Nbt Flag Reply", "nbt.nbt_operation.NBT_FLAG_REPLY", FT_BOOLEAN, 16, TFS(&nbt_operation_NBT_FLAG_REPLY_tfs), ( 0x8000 ), NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_GC,
+         { "Nbt Server Gc", "nbt.nbt_server_type.NBT_SERVER_GC", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_GC_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc_unicode_name,
+         { "Unicode Name", "nbt.nbt_netlogon_query_for_pdc.unicode_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid_size,
+         { "Sid Size", "nbt.NETLOGON_SAM_LOGON_REQUEST.sid_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_NDNC,
+         { "Nbt Server Ndnc", "nbt.nbt_server_type.NBT_SERVER_NDNC", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_NDNC_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_FULL_SECRET_DOMAIN_6,
+         { "Nbt Server Full Secret Domain 6", "nbt.nbt_server_type.NBT_SERVER_FULL_SECRET_DOMAIN_6", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_FULL_SECRET_DOMAIN_6_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_lmnt_token,
+         { "Lmnt Token", "nbt.nbt_netlogon_response_from_pdc.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_LOGON_REQUEST_request_count,
+         { "Request Count", "nbt.NETLOGON_LOGON_REQUEST.request_count", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_wct,
+         { "Wct", "nbt.smb_trans_body.wct", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_mailslot_name,
+         { "Mailslot Name", "nbt.NETLOGON_SAM_LOGON_REQUEST.mailslot_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_domain_uuid,
+         { "Domain Uuid", "nbt.NETLOGON_SAM_LOGON_RESPONSE.domain_uuid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_message_format_version,
+         { "Message Format Version", "nbt.NETLOGON_DB_CHANGE.message_format_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_max_total_sessions_possible,
+         { "Max Total Sessions Possible", "nbt.nbt_statistics.max_total_sessions_possible", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_operation,
+         { "Operation", "nbt.nbt_name_packet.operation", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_version_number,
+         { "Version Number", "nbt.nbt_statistics.version_number", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_dgram_packet_dgram_id,
+         { "Dgram Id", "nbt.nbt_dgram_packet.dgram_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_padding,
+         { "Padding", "nbt.nbt_name_packet.padding", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_LDAP,
+         { "Nbt Server Ldap", "nbt.nbt_server_type.NBT_SERVER_LDAP", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_LDAP_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc_lm20_token,
+         { "Lm20 Token", "nbt.nbt_netlogon_query_for_pdc.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_pdc_name,
+         { "Pdc Name", "nbt.nbt_netlogon_response_from_pdc.pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_dns_name,
+         { "Pdc Dns Name", "nbt.NETLOGON_SAM_LOGON_RESPONSE.pdc_dns_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_reset_browser_state,
+         { "Reset Browser State", "nbt.nbt_browse_payload.reset_browser_state", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_additional,
+         { "Additional", "nbt.nbt_name_packet.additional", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_packet_arcount,
+         { "Arcount", "nbt.nbt_name_packet.arcount", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_max_data_count,
+         { "Max Data Count", "nbt.smb_trans_body.max_data_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_trans_body_trans_flags,
+         { "Trans Flags", "nbt.smb_trans_body.trans_flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_forest,
+         { "Forest", "nbt.NETLOGON_SAM_LOGON_RESPONSE.forest", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_dns_domain,
+         { "Dns Domain", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.dns_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_announcement_request_Unused,
+         { "Unused", "nbt.nbt_browse_announcement_request.Unused", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_sid,
+         { "Sid", "nbt.NETLOGON_DB_CHANGE.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_ADS_WEB_SERVICE,
+         { "Nbt Server Ads Web Service", "nbt.nbt_server_type.NBT_SERVER_ADS_WEB_SERVICE", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_ADS_WEB_SERVICE_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_message_token,
+         { "Message Token", "nbt.NETLOGON_DB_CHANGE.message_token", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_sid_,
+         { "Subcontext length", "nbt.NETLOGON_DB_CHANGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_backup_list_response,
+         { "Backup List Response", "nbt.nbt_browse_payload.backup_list_response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_computer_name,
+         { "Computer Name", "nbt.NETLOGON_SAM_LOGON_REQUEST.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nb_flags_NBT_NM_CONFLICT,
+         { "Nbt Nm Conflict", "nbt.nb_flags.NBT_NM_CONFLICT", FT_BOOLEAN, 16, TFS(&nb_flags_NBT_NM_CONFLICT_tfs), ( 0x0800 ), NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_netbios,
+         { "Netbios", "nbt.nbt_rdata.netbios", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_period_of_statistics,
+         { "Period Of Statistics", "nbt.nbt_statistics.period_of_statistics", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_pdc_ip,
+         { "Pdc Ip", "nbt.NETLOGON_SAM_LOGON_RESPONSE.pdc_ip", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_WRITABLE,
+         { "Nbt Server Writable", "nbt.nbt_server_type.NBT_SERVER_WRITABLE", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_WRITABLE_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_query_for_pdc_computer_name,
+         { "Computer Name", "nbt.nbt_netlogon_query_for_pdc.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_status_name_nb_flags,
+         { "Nb Flags", "nbt.nbt_status_name.nb_flags", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX_sockaddr_,
+         { "Subcontext length", "nbt.NETLOGON_SAM_LOGON_RESPONSE_EX.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_flags_DGRAM_FLAG_MORE,
+         { "Dgram Flag More", "nbt.dgram_flags.DGRAM_FLAG_MORE", FT_BOOLEAN, 8, TFS(&dgram_flags_DGRAM_FLAG_MORE_tfs), ( 0x01 ), NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc__pad,
+         { " Pad", "nbt.nbt_netlogon_response_from_pdc._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_OSMajor,
+         { "Osmajor", "nbt.nbt_browse_local_master_announcement.OSMajor", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_rdata_data_data,
+         { "Data", "nbt.nbt_rdata_data.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE_timestamp,
+         { "Timestamp", "nbt.NETLOGON_DB_CHANGE.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_DB_CHANGE__pad,
+         { " Pad", "nbt.NETLOGON_DB_CHANGE._pad", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_server_type,
+         { "Server Type", "nbt.NETLOGON_SAM_LOGON_RESPONSE.server_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_payload_backup_list_request,
+         { "Backup List Request", "nbt.nbt_browse_payload.backup_list_request", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_flags_DGRAM_FLAG_FIRST,
+         { "Dgram Flag First", "nbt.dgram_flags.DGRAM_FLAG_FIRST", FT_BOOLEAN, 8, TFS(&dgram_flags_DGRAM_FLAG_FIRST_tfs), ( 0x02 ), NULL, HFILL }},
+       { &hf_nbt_smb_trans_body__class,
+         { " Class", "nbt.smb_trans_body._class", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nb_flags_NBT_NM_GROUP,
+         { "Nbt Nm Group", "nbt.nb_flags.NBT_NM_GROUP", FT_BOOLEAN, 16, TFS(&nb_flags_NBT_NM_GROUP_tfs), ( 0x8000 ), NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_test_result,
+         { "Test Result", "nbt.nbt_statistics.test_result", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_unicode_pdc_name,
+         { "Unicode Pdc Name", "nbt.nbt_netlogon_response_from_pdc.unicode_pdc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_name_type,
+         { "Type", "nbt.nbt_name.type", FT_UINT8, BASE_DEC, VALS(nbt_nbt_name_type_vals), 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_REQUEST_sid_,
+         { "Subcontext length", "nbt.NETLOGON_SAM_LOGON_REQUEST.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_server_type_NBT_SERVER_KDC,
+         { "Nbt Server Kdc", "nbt.nbt_server_type.NBT_SERVER_KDC", FT_BOOLEAN, 32, TFS(&nbt_server_type_NBT_SERVER_KDC_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_nbt_nbt_browse_local_master_announcement_Periodicity,
+         { "Periodicity", "nbt.nbt_browse_local_master_announcement.Periodicity", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_dgram_smb_packet_err_class,
+         { "Err Class", "nbt.dgram_smb_packet.err_class", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_statistics_number_good_receives,
+         { "Number Good Receives", "nbt.nbt_statistics.number_good_receives", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_NETLOGON_SAM_LOGON_RESPONSE_lmnt_token,
+         { "Lmnt Token", "nbt.NETLOGON_SAM_LOGON_RESPONSE.lmnt_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_browse_backup_list_response_BackupCount,
+         { "Backupcount", "nbt.nbt_browse_backup_list_response.BackupCount", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_smb_body_trans,
+         { "Trans", "nbt.smb_body.trans", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_nbt_nbt_netlogon_response_from_pdc_lm20_token,
+         { "Lm20 Token", "nbt.nbt_netlogon_response_from_pdc.lm20_token", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_nbt,
+               &ett_nbt_nbt_operation,
+               &ett_nbt_nbt_name,
+               &ett_nbt_nbt_name_question,
+               &ett_nbt_nb_flags,
+               &ett_nbt_nbt_rdata_address,
+               &ett_nbt_nbt_rdata_netbios,
+               &ett_nbt_nbt_statistics,
+               &ett_nbt_nbt_status_name,
+               &ett_nbt_nbt_rdata_status,
+               &ett_nbt_nbt_rdata_data,
+               &ett_nbt_nbt_rdata,
+               &ett_nbt_nbt_res_rec,
+               &ett_nbt_nbt_name_packet,
+               &ett_nbt_dgram_flags,
+               &ett_nbt_smb_trans_body,
+               &ett_nbt_smb_body,
+               &ett_nbt_dgram_smb_packet,
+               &ett_nbt_dgram_message_body,
+               &ett_nbt_dgram_message,
+               &ett_nbt_dgram_data,
+               &ett_nbt_nbt_dgram_packet,
+               &ett_nbt_nbt_sockaddr,
+               &ett_nbt_nbt_server_type,
+               &ett_nbt_netlogon_nt_version_flags,
+               &ett_nbt_NETLOGON_SAM_LOGON_REQUEST,
+               &ett_nbt_NETLOGON_LOGON_REQUEST,
+               &ett_nbt_NETLOGON_SAM_LOGON_RESPONSE_NT40,
+               &ett_nbt_NETLOGON_SAM_LOGON_RESPONSE,
+               &ett_nbt_NETLOGON_SAM_LOGON_RESPONSE_EX,
+               &ett_nbt_nbt_netlogon_query_for_pdc,
+               &ett_nbt_nbt_netlogon_response_from_pdc,
+               &ett_nbt_nbt_netlogon_response2,
+               &ett_nbt_nbt_db_change_info,
+               &ett_nbt_NETLOGON_DB_CHANGE,
+               &ett_nbt_nbt_netlogon_request,
+               &ett_nbt_nbt_netlogon_packet,
+               &ett_nbt_svcctl_ServerType,
+               &ett_nbt_nbt_browse_host_announcement,
+               &ett_nbt_nbt_browse_announcement_request,
+               &ett_nbt_nbt_browse_election_request,
+               &ett_nbt_nbt_browse_backup_list_request,
+               &ett_nbt_nbt_browse_backup_list_response,
+               &ett_nbt_nbt_browse_become_backup,
+               &ett_nbt_nbt_browse_domain_announcement,
+               &ett_nbt_nbt_browse_master_announcement,
+               &ett_nbt_nbt_browse_reset_state,
+               &ett_nbt_nbt_browse_local_master_announcement,
+               &ett_nbt_nbt_browse_payload,
+               &ett_nbt_nbt_browse_packet,
+       };
+
+       proto_dcerpc_nbt = proto_register_protocol("NBT messages", "NBT", "nbt");
+       proto_register_field_array(proto_dcerpc_nbt, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_nbt(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_nbt, ett_dcerpc_nbt,
+               &uuid_dcerpc_nbt, ver_dcerpc_nbt,
+               nbt_dissectors, hf_nbt_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-nbt.h b/bin/default/librpc/gen_ndr/packet-dcerpc-nbt.h
new file mode 100644 (file)
index 0000000..4ba6ebc
--- /dev/null
@@ -0,0 +1,173 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/nbt.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/nbt.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_NBT_H
+#define __PACKET_DCERPC_NBT_H
+
+#define NBT_NAME_SERVICE_PORT  ( 137 )
+
+#define NBT_DGRAM_SERVICE_PORT ( 138 )
+
+#define NBT_MAILSLOT_NETLOGON  ( "\\MAILSLOT\\NET\\NETLOGON" )
+
+#define NBT_MAILSLOT_NTLOGON   ( "\\MAILSLOT\\NET\\NTLOGON" )
+
+#define NBT_MAILSLOT_GETDC     ( "\\MAILSLOT\\NET\\GETDC" )
+
+#define NBT_MAILSLOT_BROWSE    ( "\\MAILSLOT\\BROWSE" )
+
+#define DGRAM_SMB      ( 0xff534d42 )
+
+int nbt_dissect_bitmap_operation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NBT_OPCODE_QUERY ((0x0<<11))
+#define NBT_OPCODE_REGISTER ((0x5<<11))
+#define NBT_OPCODE_RELEASE ((0x6<<11))
+#define NBT_OPCODE_WACK ((0x7<<11))
+#define NBT_OPCODE_REFRESH ((0x8<<11))
+#define NBT_OPCODE_REFRESH2 ((0x9<<11))
+#define NBT_OPCODE_MULTI_HOME_REG ((0xf<<11))
+extern const value_string nbt_nbt_opcode_vals[];
+int nbt_dissect_enum_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NBT_RCODE_OK (0x0)
+#define NBT_RCODE_FMT (0x1)
+#define NBT_RCODE_SVR (0x2)
+#define NBT_RCODE_NAM (0x3)
+#define NBT_RCODE_IMP (0x4)
+#define NBT_RCODE_RFS (0x5)
+#define NBT_RCODE_ACT (0x6)
+#define NBT_RCODE_CFT (0x7)
+extern const value_string nbt_nbt_rcode_vals[];
+int nbt_dissect_enum_rcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NBT_NAME_CLIENT (0x00)
+#define NBT_NAME_MS (0x01)
+#define NBT_NAME_USER (0x03)
+#define NBT_NAME_SERVER (0x20)
+#define NBT_NAME_PDC (0x1B)
+#define NBT_NAME_LOGON (0x1C)
+#define NBT_NAME_MASTER (0x1D)
+#define NBT_NAME_BROWSER (0x1E)
+extern const value_string nbt_nbt_name_type_vals[];
+int nbt_dissect_enum_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_struct_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NBT_QCLASS_IP (0x01)
+extern const value_string nbt_nbt_qclass_vals[];
+int nbt_dissect_enum_qclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NBT_QTYPE_ADDRESS (0x0001)
+#define NBT_QTYPE_NAMESERVICE (0x0002)
+#define NBT_QTYPE_NULL (0x000A)
+#define NBT_QTYPE_NETBIOS (0x0020)
+#define NBT_QTYPE_STATUS (0x0021)
+extern const value_string nbt_nbt_qtype_vals[];
+int nbt_dissect_enum_qtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_struct_name_question(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NBT_NODE_B (0x0000)
+#define NBT_NODE_P (0x2000)
+#define NBT_NODE_M (0x4000)
+#define NBT_NODE_H (0x6000)
+extern const value_string nbt_nbt_node_type_vals[];
+int nbt_dissect_enum_node_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_bitmap_nb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_rdata_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_rdata_netbios(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_status_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_rdata_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_rdata_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_res_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_name_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DGRAM_DIRECT_UNIQUE (0x10)
+#define DGRAM_DIRECT_GROUP (0x11)
+#define DGRAM_BCAST (0x12)
+#define DGRAM_ERROR (0x13)
+#define DGRAM_QUERY (0x14)
+#define DGRAM_QUERY_POSITIVE (0x15)
+#define DGRAM_QUERY_NEGATIVE (0x16)
+extern const value_string nbt_dgram_msg_type_vals[];
+int nbt_dissect_enum_dgram_msg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_bitmap_dgram_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DGRAM_NODE_B (0x00)
+#define DGRAM_NODE_P (0x04)
+#define DGRAM_NODE_M (0x08)
+#define DGRAM_NODE_NBDD (0x0C)
+extern const value_string nbt_dgram_node_type_vals[];
+int nbt_dissect_enum_dgram_node_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SMB_TRANSACTION (0x25)
+extern const value_string nbt_smb_command_vals[];
+int nbt_dissect_enum_smb_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_struct_smb_trans_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_dgram_smb_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_dgram_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DGRAM_ERROR_NAME_NOT_PRESENT (0x82)
+#define DGRAM_ERROR_INVALID_SOURCE (0x83)
+#define DGRAM_ERROR_INVALID_DEST (0x84)
+extern const value_string nbt_dgram_err_code_vals[];
+int nbt_dissect_enum_dgram_err_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_struct_dgram_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_sockaddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_bitmap_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_bitmap_netlogon_nt_version_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define LOGON_REQUEST (0)
+#define LOGON_RESPONSE2 (6)
+#define LOGON_PRIMARY_QUERY (7)
+#define NETLOGON_ANNOUNCE_UAS (10)
+#define NETLOGON_RESPONSE_FROM_PDC (12)
+#define LOGON_SAM_LOGON_REQUEST (18)
+#define LOGON_SAM_LOGON_RESPONSE (19)
+#define LOGON_SAM_LOGON_PAUSE_RESPONSE (20)
+#define LOGON_SAM_LOGON_USER_UNKNOWN (21)
+#define LOGON_SAM_LOGON_RESPONSE_EX (23)
+#define LOGON_SAM_LOGON_PAUSE_RESPONSE_EX (24)
+#define LOGON_SAM_LOGON_USER_UNKNOWN_EX (25)
+extern const value_string nbt_netlogon_command_vals[];
+int nbt_dissect_enum_netlogon_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_struct_NETLOGON_SAM_LOGON_REQUEST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_NETLOGON_LOGON_REQUEST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_NETLOGON_SAM_LOGON_RESPONSE_NT40(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_NETLOGON_SAM_LOGON_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_NETLOGON_SAM_LOGON_RESPONSE_EX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_netlogon_query_for_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_netlogon_response_from_pdc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_netlogon_response2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_db_change_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_NETLOGON_DB_CHANGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_netlogon_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define HostAnnouncement (1)
+#define AnnouncementRequest (2)
+#define Election (8)
+#define GetBackupListReq (9)
+#define GetBackupListResp (10)
+#define BecomeBackup (11)
+#define DomainAnnouncement (12)
+#define MasterAnnouncement (13)
+#define ResetBrowserState (14)
+#define LocalMasterAnnouncement (15)
+extern const value_string nbt_nbt_browse_opcode_vals[];
+int nbt_dissect_enum_browse_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int nbt_dissect_struct_browse_host_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_announcement_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_election_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_backup_list_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_backup_list_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_become_backup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_domain_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_reset_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_local_master_announcement(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int nbt_dissect_struct_browse_packet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NBT_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.c b/bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.c
new file mode 100644 (file)
index 0000000..fe5b9d4
--- /dev/null
@@ -0,0 +1,23011 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/netlogon.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/netlogon.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-netlogon.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_netlogon = -1;
+static gint ett_netlogon_samr_AcctFlags = -1;
+static gint ett_netlogon_samr_GroupAttrs = -1;
+static gint ett_netlogon_netr_UasInfo = -1;
+static gint ett_netlogon_netr_UasLogoffInfo = -1;
+static gint ett_netlogon_netr_AcctLockStr = -1;
+static gint ett_netlogon_netr_LogonParameterControl = -1;
+static gint ett_netlogon_netr_IdentityInfo = -1;
+static gint ett_netlogon_netr_PasswordInfo = -1;
+static gint ett_netlogon_netr_ChallengeResponse = -1;
+static gint ett_netlogon_netr_NetworkInfo = -1;
+static gint ett_netlogon_netr_GenericInfo = -1;
+static gint ett_netlogon_netr_LogonLevel = -1;
+static gint ett_netlogon_netr_UserSessionKey = -1;
+static gint ett_netlogon_netr_LMSessionKey = -1;
+static gint ett_netlogon_netr_UserFlags = -1;
+static gint ett_netlogon_netr_SamBaseInfo = -1;
+static gint ett_netlogon_netr_SamInfo2 = -1;
+static gint ett_netlogon_netr_SidAttr = -1;
+static gint ett_netlogon_netr_SamInfo3 = -1;
+static gint ett_netlogon_netr_SamInfo6 = -1;
+static gint ett_netlogon_netr_PacInfo = -1;
+static gint ett_netlogon_netr_GenericInfo2 = -1;
+static gint ett_netlogon_netr_Validation = -1;
+static gint ett_netlogon_netr_Credential = -1;
+static gint ett_netlogon_netr_Authenticator = -1;
+static gint ett_netlogon_netr_DELTA_DELETE_USER = -1;
+static gint ett_netlogon_netr_USER_KEY16 = -1;
+static gint ett_netlogon_netr_PasswordHistory = -1;
+static gint ett_netlogon_netr_USER_KEYS2 = -1;
+static gint ett_netlogon_netr_USER_KEY_UNION = -1;
+static gint ett_netlogon_netr_USER_KEYS = -1;
+static gint ett_netlogon_netr_USER_PRIVATE_INFO = -1;
+static gint ett_netlogon_netr_DELTA_USER = -1;
+static gint ett_netlogon_netr_DELTA_DOMAIN = -1;
+static gint ett_netlogon_netr_DELTA_GROUP = -1;
+static gint ett_netlogon_netr_DELTA_RENAME = -1;
+static gint ett_netlogon_netr_DELTA_GROUP_MEMBER = -1;
+static gint ett_netlogon_netr_DELTA_ALIAS = -1;
+static gint ett_netlogon_netr_DELTA_ALIAS_MEMBER = -1;
+static gint ett_netlogon_netr_QUOTA_LIMITS = -1;
+static gint ett_netlogon_netr_DELTA_POLICY = -1;
+static gint ett_netlogon_netr_DELTA_TRUSTED_DOMAIN = -1;
+static gint ett_netlogon_netr_DELTA_ACCOUNT = -1;
+static gint ett_netlogon_netr_CIPHER_VALUE = -1;
+static gint ett_netlogon_netr_DELTA_SECRET = -1;
+static gint ett_netlogon_netr_DELTA_UNION = -1;
+static gint ett_netlogon_netr_DELTA_ID_UNION = -1;
+static gint ett_netlogon_netr_DELTA_ENUM = -1;
+static gint ett_netlogon_netr_DELTA_ENUM_ARRAY = -1;
+static gint ett_netlogon_netr_UAS_INFO_0 = -1;
+static gint ett_netlogon_netr_AccountBuffer = -1;
+static gint ett_netlogon_netr_InfoFlags = -1;
+static gint ett_netlogon_netr_NETLOGON_INFO_1 = -1;
+static gint ett_netlogon_netr_NETLOGON_INFO_2 = -1;
+static gint ett_netlogon_netr_NETLOGON_INFO_3 = -1;
+static gint ett_netlogon_netr_NETLOGON_INFO_4 = -1;
+static gint ett_netlogon_netr_CONTROL_QUERY_INFORMATION = -1;
+static gint ett_netlogon_netr_CONTROL_DATA_INFORMATION = -1;
+static gint ett_netlogon_netr_NegotiateFlags = -1;
+static gint ett_netlogon_netr_ChangeLogFlags = -1;
+static gint ett_netlogon_netr_ChangeLogObject = -1;
+static gint ett_netlogon_netr_ChangeLogEntry = -1;
+static gint ett_netlogon_netr_Blob = -1;
+static gint ett_netlogon_netr_DsRGetDCName_flags = -1;
+static gint ett_netlogon_netr_DsR_DcFlags = -1;
+static gint ett_netlogon_netr_DsRGetDCNameInfo = -1;
+static gint ett_netlogon_netr_Capabilities = -1;
+static gint ett_netlogon_netr_TrustFlags = -1;
+static gint ett_netlogon_netr_WorkstationFlags = -1;
+static gint ett_netlogon_netr_SuiteMask = -1;
+static gint ett_netlogon_netr_ProductType = -1;
+static gint ett_netlogon_netr_LsaPolicyInformation = -1;
+static gint ett_netlogon_netr_OsVersionInfoEx = -1;
+static gint ett_netlogon_netr_OsVersion = -1;
+static gint ett_netlogon_netr_OsVersionContainer = -1;
+static gint ett_netlogon_netr_WorkstationInformation = -1;
+static gint ett_netlogon_netr_WorkstationInfo = -1;
+static gint ett_netlogon_netr_trust_extension = -1;
+static gint ett_netlogon_netr_trust_extension_container = -1;
+static gint ett_netlogon_netr_OneDomainInfo = -1;
+static gint ett_netlogon_netr_SupportedEncTypes = -1;
+static gint ett_netlogon_netr_DomainInformation = -1;
+static gint ett_netlogon_netr_DomainInfo = -1;
+static gint ett_netlogon_NL_PASSWORD_VERSION = -1;
+static gint ett_netlogon_netr_CryptPassword = -1;
+static gint ett_netlogon_netr_DsRAddressToSitenamesWCtr = -1;
+static gint ett_netlogon_netr_DsRAddress = -1;
+static gint ett_netlogon_netr_TrustAttributes = -1;
+static gint ett_netlogon_netr_DomainTrust = -1;
+static gint ett_netlogon_netr_DomainTrustList = -1;
+static gint ett_netlogon_netr_DsRAddressToSitenamesExWCtr = -1;
+static gint ett_netlogon_DcSitesCtr = -1;
+static gint ett_netlogon_netr_TrustInfo = -1;
+static gint ett_netlogon_NL_DNS_NAME_INFO = -1;
+static gint ett_netlogon_NL_DNS_NAME_INFO_ARRAY = -1;
+
+
+/* Header field declarations */
+static gint hf_netlogon_netr_AccountSync_buffersize = -1;
+static gint hf_netlogon_netr_NetrEnumerateTrustedDomains_trusted_domains_blob = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_SET2 = -1;
+static gint hf_netlogon_netr_PasswordHistory_nt_size = -1;
+static gint hf_netlogon_netr_ServerReqChallenge_credentials = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_WRITABLE_REQUIRED = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_SecurityInformation = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown3 = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown8 = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_force_logoff_time = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BLADE = -1;
+static gint hf_netlogon_netr_LogonUasLogoff_account_name = -1;
+static gint hf_netlogon_netr_PasswordHistory_nt_length = -1;
+static gint hf_netlogon_netr_DatabaseSync2_restart_state = -1;
+static gint hf_netlogon_netr_DELTA_UNION_rename_user = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown4 = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown5 = -1;
+static gint hf_netlogon_netr_LogonUasLogon_account_name = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_secure_channel_type = -1;
+static gint hf_netlogon_netr_LogonSamLogon_return_authenticator = -1;
+static gint hf_netlogon_netr_UserSessionKey_key = -1;
+static gint hf_netlogon_netr_DomainTrustList_count = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown5 = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown8 = -1;
+static gint hf_netlogon_netr_DELTA_USER_SecurityInformation = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_domain_create_time = -1;
+static gint hf_netlogon_netr_UasInfo_domain = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_HAS_IP = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy2 = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_credential = -1;
+static gint hf_netlogon_netr_DatabaseRedo_computername = -1;
+static gint hf_netlogon_netr_USER_PRIVATE_INFO_DataLength = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown5 = -1;
+static gint hf_netlogon_netr_Authenticator_timestamp = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_REDO_NEEDED = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES = -1;
+static gint hf_netlogon_netr_DELTA_USER_full_name = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_PlatformId = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_GC = -1;
+static gint hf_netlogon_netr_DatabaseRedo_change_log_entry = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_dc_address = -1;
+static gint hf_netlogon_netr_SamInfo6_unknown4 = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_mask = -1;
+static gint hf_netlogon_netr_SamInfo6_dns_domainname = -1;
+static gint hf_netlogon_netr_DomainInformation_dns_hostname = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_domain_name = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_TERMINAL = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_GUEST = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_CLOSEST = -1;
+static gint hf_netlogon_netr_UasInfo_pw_must_change = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_OUTBOUND = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown2 = -1;
+static gint hf_netlogon_netr_LogonControl_query = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE = -1;
+static gint hf_netlogon_netr_LogonGetTrustRid_domain_name = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown4 = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_FORCE_GUEST = -1;
+static gint hf_netlogon_netr_DatabaseSync_credential = -1;
+static gint hf_netlogon_netr_DomainInformation_dummy_long4 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CROSS_FOREST_TRUSTS = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_PROFILE_PATH_RETURNED = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_FULL_SYNC_REPLICATION = -1;
+static gint hf_netlogon_netr_DomainInformation_supported_enc_types = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown2 = -1;
+static gint hf_netlogon_netr_ChangeLogObject_object_sid = -1;
+static gint hf_netlogon_netr_SamInfo6_sids = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_DNS_FOREST_ROOT = -1;
+static gint hf_netlogon_netr_DomainInformation_dummy_string4 = -1;
+static gint hf_netlogon_netr_trust_extension_flags = -1;
+static gint hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_server_name = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_6_REQUIRED = -1;
+static gint hf_netlogon_netr_LogonGetCapabilities_capabilities = -1;
+static gint hf_netlogon_netr_DELTA_UNION_alias = -1;
+static gint hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_delta_enum_array = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_STORAGE_SERVER = -1;
+static gint hf_netlogon_netr_DELTA_USER_logon_hours = -1;
+static gint hf_netlogon_netr_CONTROL_DATA_INFORMATION_user = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_flags = -1;
+static gint hf_netlogon_netr_DsRGetForestTrustInformation_trusted_domain_name = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_account_name = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_S4U2SELF = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_server_name = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_long4 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_computer_name = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_server_name = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_credentials = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_status = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_flags = -1;
+static gint hf_netlogon_netr_Validation_sam3 = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_object = -1;
+static gint hf_netlogon_netr_UAS_INFO_0_timecreated = -1;
+static gint hf_netlogon_netr_SamBaseInfo_domain_sid = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_authoritative = -1;
+static gint hf_netlogon_netr_DomainInformation_trusted_domain_count = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_ServicePackMajor = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_server_name = -1;
+static gint hf_netlogon_netr_trust_extension_trust_attributes = -1;
+static gint hf_netlogon_netr_SamBaseInfo_logon_time = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_serial_number2 = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_unknown6 = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown8 = -1;
+static gint hf_netlogon_netr_DsRGetForestTrustInformation_flags = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_credential = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_TRANSITIVE_TRUSTS = -1;
+static gint hf_netlogon_netr_DELTA_UNION_trusted_domain = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_return_authenticator = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_min_password_length = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE = -1;
+static gint hf_netlogon_netr_Credential_data = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_return_authenticator = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown3 = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_validation = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown4 = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExWCtr_count = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_4_trusted_dc_name = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExWCtr_sitename = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_SERVER_TRUST_ACCOUNT = -1;
+static gint hf_netlogon_netr_LogonLevel_generic = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_WEBSERV = -1;
+static gint hf_netlogon_netr_DsRGetForestTrustInformation_server_name = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_return_authenticator = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_password = -1;
+static gint hf_netlogon_netr_USER_KEY16_length = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_type = -1;
+static gint hf_netlogon_netr_DomainInformation_primary_domain = -1;
+static gint hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_PERSONAL = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_new_owf_password = -1;
+static gint hf_netlogon_netr_DsRGetSiteName_site = -1;
+static gint hf_netlogon_netr_GenericInfo_length = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown4 = -1;
+static gint hf_netlogon_netr_DomainTrust_parent_index = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown4 = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_weight = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_BuildNumber = -1;
+static gint hf_netlogon_netr_IdentityInfo_logon_id_high = -1;
+static gint hf_netlogon_netr_PacInfo_logon_domain = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_LDAP = -1;
+static gint hf_netlogon_netr_GenericInfo_package_name = -1;
+static gint hf_netlogon_netr_DELTA_UNION_policy = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown7 = -1;
+static gint hf_netlogon_netr_Authenticator_cred = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown3 = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_2_pdc_connection_status = -1;
+static gint hf_netlogon_netr_SamBaseInfo_home_directory = -1;
+static gint hf_netlogon_netr_GetForestTrustInformation_flags = -1;
+static gint hf_netlogon_netr_WorkstationInformation_lsa_policy = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_return_authenticator = -1;
+static gint hf_netlogon_netr_AccountDeltas_count = -1;
+static gint hf_netlogon_netr_AccountDeltas_return_authenticator = -1;
+static gint hf_netlogon_netr_DELTA_USER_acct_expiry = -1;
+static gint hf_netlogon_netr_PasswordHistory_lm_flags = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_MULTIPLE_SIDS = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_unknown8 = -1;
+static gint hf_netlogon_netr_LogonControl_logon_server = -1;
+static gint hf_netlogon_netr_DELTA_UNION_delete_user = -1;
+static gint hf_netlogon_netr_LogonControl2_logon_server = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown7 = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_validation_level = -1;
+static gint hf_netlogon_netr_UasLogoffInfo_duration = -1;
+static gint hf_netlogon_netr_LogonLevel_network = -1;
+static gint hf_netlogon_netr_IdentityInfo_parameter_control = -1;
+static gint hf_netlogon_netr_AccountSync_reference = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy4 = -1;
+static gint hf_netlogon_netr_SidAttr_sid = -1;
+static gint hf_netlogon_netr_LogonControl2Ex_function_code = -1;
+static gint hf_netlogon_netr_AccountSync_next_reference = -1;
+static gint hf_netlogon_netr_Validation_sam2 = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_server_name = -1;
+static gint hf_netlogon_netr_DELTA_ID_UNION_rid = -1;
+static gint hf_netlogon_netr_ServerReqChallenge_computer_name = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_authoritative = -1;
+static gint hf_netlogon_netr_UasInfo_last_logoff = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesW_addresses = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_long3 = -1;
+static gint hf_netlogon_netr_DomainTrust_sid = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_client_account = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx_domain_name = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_NATIVE = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_secure_channel_type = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_sdbuf = -1;
+static gint hf_netlogon_netr_DELTA_USER_sdbuf = -1;
+static gint hf_netlogon_netr_DomainInformation_dummy_long3 = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_min_password_age = -1;
+static gint hf_netlogon_netr_Validation_generic = -1;
+static gint hf_netlogon_opnum = -1;
+static gint hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_EMBEDDEDNT = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_sdbuf = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown2 = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_rid = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown1 = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_ARRAY_names = -1;
+static gint hf_netlogon_netr_DomainTrust_dns_name = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_MEMBER_sids = -1;
+static gint hf_netlogon_netr_ServerAuthenticate_server_name = -1;
+static gint hf_netlogon_netr_ServerAuthenticate_computer_name = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_REPLICATION_IN_PROGRESS = -1;
+static gint hf_netlogon_netr_WorkstationInformation_os_name = -1;
+static gint hf_netlogon_netr_UasInfo_account_name = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_serial_number1 = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_REPLICATION_NEEDED = -1;
+static gint hf_netlogon_netr_DELTA_ID_UNION_sid = -1;
+static gint hf_netlogon_netr_DomainInformation_dummy_string3 = -1;
+static gint hf_netlogon_netr_NetworkInfo_identity_info = -1;
+static gint hf_netlogon_netr_USER_KEYS2_ntpassword = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_privilege_attrib = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_account_lockout = -1;
+static gint hf_netlogon_netr_SamBaseInfo_last_password_change = -1;
+static gint hf_netlogon_netr_PacInfo_user_session_key = -1;
+static gint hf_netlogon_netr_LogonControl2Ex_level = -1;
+static gint hf_netlogon_netr_DatabaseRedo_logon_server = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names = -1;
+static gint hf_netlogon_netr_UasInfo_priv = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_oem_information = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_domain_guid = -1;
+static gint hf_netlogon_netr_ServerReqChallenge_return_credentials = -1;
+static gint hf_netlogon_netr_trust_extension_dummy = -1;
+static gint hf_netlogon_netr_PacInfo_auth_size = -1;
+static gint hf_netlogon_netr_AccountDeltas_total_entries = -1;
+static gint hf_netlogon_netr_DELTA_USER_country_code = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx_flags = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx_site_name = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_attributes = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_validation = -1;
+static gint hf_netlogon_netr_SamBaseInfo_user_flags = -1;
+static gint hf_netlogon_netr_LogonGetCapabilities_server_name = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown3 = -1;
+static gint hf_netlogon_netr_LogonGetCapabilities_computer_name = -1;
+static gint hf_netlogon_netr_DatabaseSync2_return_authenticator = -1;
+static gint hf_netlogon_netr_LogonSamLogon_credential = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_old_cipher = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown6 = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_return_authenticator = -1;
+static gint hf_netlogon_netr_GetForestTrustInformation_computer_name = -1;
+static gint hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_NAME_INCLUDED = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_old_owf_password = -1;
+static gint hf_netlogon_netr_DomainTrustList_array = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_1_flags = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_info = -1;
+static gint hf_netlogon_netr_TrustInfo_data = -1;
+static gint hf_netlogon_netr_DomainInfo_lsa_policy_info = -1;
+static gint hf_netlogon_netr_SamBaseInfo_kickoff_time = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_ttl = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx_info = -1;
+static gint hf_netlogon_netr_SamBaseInfo_profile_path = -1;
+static gint hf_netlogon_netr_AccountSync_logon_server = -1;
+static gint hf_netlogon_netr_DsRGetForestTrustInformation_forest_trust_info = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_long2 = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_privilege_control = -1;
+static gint hf_netlogon_netr_PasswordHistory_lm_length = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_sequence_num = -1;
+static gint hf_netlogon_netr_SamBaseInfo_acct_flags = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_unknown2 = -1;
+static gint hf_netlogon_netr_DomainInformation_dummy_string2 = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown4 = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown5 = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_privilege_entries = -1;
+static gint hf_netlogon_netr_USER_KEY_UNION_keys2 = -1;
+static gint hf_netlogon_netr_PacInfo_principal_name = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_server_name = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExW_server_name = -1;
+static gint hf_netlogon_netr_DELTA_ENUM_delta_type = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExW_count = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info_type = -1;
+static gint hf_netlogon_netr_CIPHER_VALUE_cipher_data = -1;
+static gint hf_netlogon_netr_SamBaseInfo_logon_server = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_server_name = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_auditingmode = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_new_password = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_DONT_TRY_GUEST_ACCOUNT = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION = -1;
+static gint hf_netlogon_netr_AccountSync_computername = -1;
+static gint hf_netlogon_netr_Validation_pac = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_IS_DNS_NAME = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown2 = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_maxlogsize = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_password2 = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_GOOD_TIMESERV_PREFERRED = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_SHA2 = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_SUBAUTH_SESSION_KEY = -1;
+static gint hf_netlogon_NL_PASSWORD_VERSION_PasswordVersionPresent = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_GOOD_TIMESERV = -1;
+static gint hf_netlogon_netr_SamInfo3_sidcount = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_IS_FLAT_NAME = -1;
+static gint hf_netlogon_netr_UasInfo_logoff_time = -1;
+static gint hf_netlogon_netr_PacInfo_unknown3 = -1;
+static gint hf_netlogon_netr_DELTA_UNION_user = -1;
+static gint hf_netlogon_netr_DomainInformation_lsa_policy = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_logon_level = -1;
+static gint hf_netlogon_status = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_IN_FOREST = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown1 = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_maxauditeventcount = -1;
+static gint hf_netlogon_netr_PasswordInfo_ntpassword = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_unknown4 = -1;
+static gint hf_netlogon_netr_DsrEnumerateDomainTrusts_trust_flags = -1;
+static gint hf_netlogon_netr_AccountDeltas_recordid = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_PDC = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_2_trusted_dc_name = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_logon_level = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_flags = -1;
+static gint hf_netlogon_netr_LogonSamLogoff_return_authenticator = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_KDC_REQUIRED = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_secure_channel_type = -1;
+static gint hf_netlogon_netr_LogonSamLogon_validation = -1;
+static gint hf_netlogon_netr_DELTA_USER_acct_flags = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_SecurityInformation = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_ARCFOUR = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown3 = -1;
+static gint hf_netlogon_netr_DatabaseSync2_delta_enum_array = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_MinorVersion = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_sequence_num = -1;
+static gint hf_netlogon_netr_PasswordHistory_nt_flags = -1;
+static gint hf_netlogon_netr_DsRGetDCName_server_unc = -1;
+static gint hf_netlogon_netr_LogonControl_level = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_dc_unc = -1;
+static gint hf_netlogon_netr_CIPHER_VALUE_len = -1;
+static gint hf_netlogon_netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES256 = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_server_name = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown1 = -1;
+static gint hf_netlogon_netr_GetAnyDCName_dcname = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_TRY_GUEST_ACCOUNT_ONLY = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown1 = -1;
+static gint hf_netlogon_netr_ServerAuthenticate_secure_channel_type = -1;
+static gint hf_netlogon_netr_UasLogoffInfo_logon_count = -1;
+static gint hf_netlogon_netr_LogonControl2Ex_logon_server = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_priority = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_LSASS = -1;
+static gint hf_netlogon_netr_DatabaseSync_database_id = -1;
+static gint hf_netlogon_netr_DELTA_USER_rid = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown6 = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx_server_unc = -1;
+static gint hf_netlogon_netr_IdentityInfo_domain_name = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_DATACENTER = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown3 = -1;
+static gint hf_netlogon_netr_LogonGetTrustRid_server_name = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_group_name = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_computer_name = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_NDNC = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_logon = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_forest_name = -1;
+static gint hf_netlogon_netr_WorkstationInformation_sitename = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_RESOURCE_GROUPS = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_long1 = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_secure_channel_type = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_level = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_IP_REQUIRED = -1;
+static gint hf_netlogon_netr_SamBaseInfo_rid = -1;
+static gint hf_netlogon_netr_trust_extension_container_length = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_system_flags = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown4 = -1;
+static gint hf_netlogon_netr_PacInfo_logon_server = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_computer_name = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_NewName = -1;
+static gint hf_netlogon_netr_LogonUasLogoff_workstation = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_SecurityInformation = -1;
+static gint hf_netlogon_netr_SamBaseInfo_primary_gid = -1;
+static gint hf_netlogon_netr_PasswordHistory_lm_history = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_logon = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_secure_channel_type = -1;
+static gint hf_netlogon_netr_LogonSamLogon_logon_level = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL = -1;
+static gint hf_netlogon_netr_DELTA_USER_last_logoff = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_GC_SERVER_REQUIRED = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PROMOTION_COUNT = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_description = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_domain_name = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown7 = -1;
+static gint hf_netlogon_netr_SamInfo6_sidcount = -1;
+static gint hf_netlogon_netr_SamBaseInfo_logon_count = -1;
+static gint hf_netlogon_netr_DsrDeregisterDNSHostRecords_dsa_guid = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_AVOID_SELF = -1;
+static gint hf_netlogon_netr_OsVersionContainer_os = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_USER_PARAMETERS = -1;
+static gint hf_netlogon_netr_OsVersionContainer_length = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dns_hostname = -1;
+static gint hf_netlogon_netr_DatabaseSync_return_authenticator = -1;
+static gint hf_netlogon_netr_LogonUasLogoff_server_name = -1;
+static gint hf_netlogon_netr_LsaPolicyInformation_policy = -1;
+static gint hf_netlogon_netr_AccountDeltas_uas = -1;
+static gint hf_netlogon_netr_GetDcName_logon_server = -1;
+static gint hf_netlogon_netr_AccountSync_total_entries = -1;
+static gint hf_netlogon_netr_DELTA_USER_account_name = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_attribs = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown4 = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown4 = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown3 = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_logon_attempts = -1;
+static gint hf_netlogon_netr_DELTA_USER_home_directory = -1;
+static gint hf_netlogon_netr_PasswordInfo_identity_info = -1;
+static gint hf_netlogon_netr_LogonGetCapabilities_query_level = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown5 = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_account_name = -1;
+static gint hf_netlogon_netr_DELTA_UNION_rename_group = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown2 = -1;
+static gint hf_netlogon_netr_LogonLevel_password = -1;
+static gint hf_netlogon_netr_DELTA_ENUM_ARRAY_num_deltas = -1;
+static gint hf_netlogon_netr_PacInfo_unknown2 = -1;
+static gint hf_netlogon_netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS = -1;
+static gint hf_netlogon_netr_DELTA_UNION_modified_count = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_credential = -1;
+static gint hf_netlogon_netr_AcctLockStr_lockout_duration = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesW_ctr = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_domain_guid = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_server_name = -1;
+static gint hf_netlogon_netr_LogonSamLogon_logon = -1;
+static gint hf_netlogon_netr_DELTA_UNION_rename_alias = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown1 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_STRONG_KEYS = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_2_tc_connection_status = -1;
+static gint hf_netlogon_netr_DomainInformation_workstation_flags = -1;
+static gint hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown2 = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_ProductType = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_return_authenticator = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy_string3 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_RODC_PASSTHROUGH = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_current_cipher = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_TIMESERV_REQUIRED = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_privilege_name = -1;
+static gint hf_netlogon_netr_LogonSamLogon_authoritative = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_posix_offset = -1;
+static gint hf_netlogon_netr_SamInfo3_base = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_secure_channel_type = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_ACCOUNT_LOCKOUT = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_unknown7 = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown8 = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_CSDVersion = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown6 = -1;
+static gint hf_netlogon_netr_DatabaseRedo_delta_enum_array = -1;
+static gint hf_netlogon_netr_USER_KEYS_keys = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_RETURN_FLAT_NAME = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_current_cipher_set_time = -1;
+static gint hf_netlogon_netr_OsVersion_size = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_2_flags = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_secure_channel_type = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_USE_CLIENT_CHALLENGE = -1;
+static gint hf_netlogon_netr_GenericInfo2_length = -1;
+static gint hf_netlogon_netr_SamBaseInfo_groups = -1;
+static gint hf_netlogon_netr_SamBaseInfo_key = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CHANGELOG_BDC = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown8 = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_flags = -1;
+static gint hf_netlogon_netr_AccountDeltas_count_returned = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_primary_domain_name = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_site_name = -1;
+static gint hf_netlogon_netr_SamBaseInfo_full_name = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_return_credentials = -1;
+static gint hf_netlogon_netr_CONTROL_DATA_INFORMATION_debug_level = -1;
+static gint hf_netlogon_netr_LogonControl2_function_code = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_dns_register = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown6 = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_unknown3 = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_EXTRA_SIDS = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_DNS_DOMAIN = -1;
+static gint hf_netlogon_netr_DELTA_USER_password_expired = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown6 = -1;
+static gint hf_netlogon_netr_GetAnyDCName_domainname = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_dc_flags = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_return_authenticator = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_return_authenticator = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_new_password = -1;
+static gint hf_netlogon_netr_PacInfo_unknown1 = -1;
+static gint hf_netlogon_netr_LogonSamLogoff_logon_level = -1;
+static gint hf_netlogon_netr_OsVersion_os = -1;
+static gint hf_netlogon_netr_SupportedEncTypes_ENC_RSA_MD5 = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_dc_address_type = -1;
+static gint hf_netlogon_DcSitesCtr_num_sites = -1;
+static gint hf_netlogon_netr_DELTA_USER_parameters = -1;
+static gint hf_netlogon_netr_AccountDeltas_buffersize = -1;
+static gint hf_netlogon_netr_DomainTrust_trust_flags = -1;
+static gint hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain_guid = -1;
+static gint hf_netlogon_netr_SamBaseInfo_logon_domain = -1;
+static gint hf_netlogon_netr_DatabaseSync_computername = -1;
+static gint hf_netlogon_NL_PASSWORD_VERSION_ReservedField = -1;
+static gint hf_netlogon_netr_Validation_sam6 = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown1 = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_credential = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_NTLMV2_ENABLED = -1;
+static gint hf_netlogon_netr_DELTA_USER_lm_password_present = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_max_password_age = -1;
+static gint hf_netlogon_netr_GetDcName_domainname = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dns_domainname = -1;
+static gint hf_netlogon_netr_DELTA_USER_user_private_info = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_account_name = -1;
+static gint hf_netlogon_netr_AccountDeltas_buffer = -1;
+static gint hf_netlogon_netr_ServerAuthenticate_return_credentials = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_NOENCRYPTION = -1;
+static gint hf_netlogon_netr_LogonSamLogon_computer_name = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_string2 = -1;
+static gint hf_netlogon_netr_trust_extension_size = -1;
+static gint hf_netlogon_netr_DatabaseSync2_database_id = -1;
+static gint hf_netlogon_netr_UAS_INFO_0_serial_number = -1;
+static gint hf_netlogon_netr_LogonUasLogoff_info = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesWCtr_count = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_negotiate_flags = -1;
+static gint hf_netlogon_netr_LogonControl2_query = -1;
+static gint hf_netlogon_netr_SamBaseInfo_force_password_change = -1;
+static gint hf_netlogon_netr_DomainInfo_domain_info = -1;
+static gint hf_netlogon_netr_DatabaseSync_delta_enum_array = -1;
+static gint hf_netlogon_netr_SamBaseInfo_home_drive = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_sequence_num = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_db_create_time = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_account_name = -1;
+static gint hf_netlogon_netr_DELTA_USER_bad_password_count = -1;
+static gint hf_netlogon_netr_DatabaseSync_sync_context = -1;
+static gint hf_netlogon_netr_CryptPassword_length = -1;
+static gint hf_netlogon_netr_UasInfo_script_path = -1;
+static gint hf_netlogon_netr_QUOTA_LIMITS_minimumworkingsetsize = -1;
+static gint hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info3 = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_negotiate_flags = -1;
+static gint hf_netlogon_netr_GenericInfo_data = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy_string4 = -1;
+static gint hf_netlogon_netr_DsRGetDCName_info = -1;
+static gint hf_netlogon_netr_AcctLockStr_dummy = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown7 = -1;
+static gint hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info4 = -1;
+static gint hf_netlogon_netr_LogonSamLogon_validation_level = -1;
+static gint hf_netlogon_netr_DELTA_UNION_group = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL = -1;
+static gint hf_netlogon_netr_PacInfo_pac = -1;
+static gint hf_netlogon_netr_DELTA_ENUM_delta_id_union = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_ENTERPRISE = -1;
+static gint hf_netlogon_netr_ProductType_NETR_VER_NT_WORKSTATION = -1;
+static gint hf_netlogon_netr_AccountSync_credential = -1;
+static gint hf_netlogon_netr_UasInfo_computer = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_database_id = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_flags = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_account_name = -1;
+static gint hf_netlogon_netr_DatabaseSync_preferredmaximumlength = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_COMPUTE_SERVER = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_SecurityInformation = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown1 = -1;
+static gint hf_netlogon_netr_SamBaseInfo_account_name = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown7 = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_rids = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_sdbuf = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_computername = -1;
+static gint hf_netlogon_netr_LogonSamLogoff_computer_name = -1;
+static gint hf_netlogon_netr_TrustInfo_entry_count = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_port = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy_long4 = -1;
+static gint hf_netlogon_netr_UasInfo_pw_can_change = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_4_trusted_domain_name = -1;
+static gint hf_netlogon_netr_NetworkInfo_nt = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_OSVersionInfoSize = -1;
+static gint hf_netlogon_netr_ServerPasswordSet_computer_name = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_account_name = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_info = -1;
+static gint hf_netlogon_DcSitesCtr_sites = -1;
+static gint hf_netlogon_netr_AccountSync_return_authenticator = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_SecurityInformation = -1;
+static gint hf_netlogon_netr_ProductType_NETR_VER_NT_SERVER = -1;
+static gint hf_netlogon_netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_SPN_UPDATE = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT = -1;
+static gint hf_netlogon_netr_OneDomainInfo_domain_guid = -1;
+static gint hf_netlogon_netr_SamBaseInfo_logoff_time = -1;
+static gint hf_netlogon_netr_UasInfo_kickoff_time = -1;
+static gint hf_netlogon_netr_UasInfo_password_age = -1;
+static gint hf_netlogon_netr_ChallengeResponse_length = -1;
+static gint hf_netlogon_netr_DELTA_USER_last_password_change = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_WITHIN_FOREST = -1;
+static gint hf_netlogon_netr_DsRAddress_size = -1;
+static gint hf_netlogon_netr_Blob_data = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_MEMBER_num_rids = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_SecurityInformation = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_quotalimits = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_SELECT_SECRET_DOMAIN_6 = -1;
+static gint hf_netlogon_netr_SidAttr_attributes = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_object_rid = -1;
+static gint hf_netlogon_netr_SamBaseInfo_last_successful_logon = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_PASSWORD_EXPIRY = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_sdbuf = -1;
+static gint hf_netlogon_netr_DELTA_USER_home_drive = -1;
+static gint hf_netlogon_netr_trust_extension_container_size = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_account_name = -1;
+static gint hf_netlogon_netr_DatabaseRedo_return_authenticator = -1;
+static gint hf_netlogon_netr_DomainTrust_netbios_name = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_string3 = -1;
+static gint hf_netlogon_netr_LogonGetTrustRid_rid = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesWCtr_sitename = -1;
+static gint hf_netlogon_netr_trust_extension_container_info = -1;
+static gint hf_netlogon_netr_ProductType_NETR_VER_NT_DOMAIN_CONTROLLER = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown7 = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dns_forestname = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_ALLOWED = -1;
+static gint hf_netlogon_netr_UasInfo_logon_count = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_PROFILE_PATH = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_DISABLE_PERSONAL_FALLBACK = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown8 = -1;
+static gint hf_netlogon_netr_DsrEnumerateDomainTrusts_trusts = -1;
+static gint hf_netlogon_netr_USER_KEYS2_history = -1;
+static gint hf_netlogon_netr_SupportedEncTypes_ENC_CRC32 = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesW_server_name = -1;
+static gint hf_netlogon_netr_AccountSync_count_returned = -1;
+static gint hf_netlogon_netr_DsrGetDcSiteCoverageW_server_name = -1;
+static gint hf_netlogon_netr_PasswordHistory_nt_history = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_quota_limits = -1;
+static gint hf_netlogon_netr_DELTA_ENUM_delta_union = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy1 = -1;
+static gint hf_netlogon_netr_LsaPolicyInformation_policy_size = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_CHECK_LOGONHOURS_FOR_S4U = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesW_count = -1;
+static gint hf_netlogon_netr_DomainTrust_trust_attributes = -1;
+static gint hf_netlogon_netr_PacInfo_expansionroom = -1;
+static gint hf_netlogon_netr_LogonSamLogon_server_name = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_TREEROOT = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_SUBAUTHENTICATION_DLL_EX = -1;
+static gint hf_netlogon_netr_DELTA_USER_workstations = -1;
+static gint hf_netlogon_netr_QUOTA_LIMITS_maximumworkingsetsize = -1;
+static gint hf_netlogon_netr_SamBaseInfo_bad_password_count = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_MSVCHAPV2 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_REDO = -1;
+static gint hf_netlogon_netr_trust_extension_trust_type = -1;
+static gint hf_netlogon_netr_QUOTA_LIMITS_nonpagedpoollimit = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_unknown1 = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_FORCE_REDISCOVERY = -1;
+static gint hf_netlogon_netr_LogonControl2Ex_data = -1;
+static gint hf_netlogon_netr_DatabaseSync2_preferredmaximumlength = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown2 = -1;
+static gint hf_netlogon_netr_OsVersionContainer_size = -1;
+static gint hf_netlogon_netr_DatabaseSync_logon_server = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SEND_PASSWORD_INFO_PDC = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_client_site_name = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_FULL_SECRET_DOMAIN_6 = -1;
+static gint hf_netlogon_netr_AccountDeltas_computername = -1;
+static gint hf_netlogon_netr_DatabaseRedo_change_log_entry_ = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_controller_names = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_server_unc = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_credential = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown4 = -1;
+static gint hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveDataFlag = -1;
+static gint hf_netlogon_netr_GetForestTrustInformation_return_authenticator = -1;
+static gint hf_netlogon_werror = -1;
+static gint hf_netlogon_netr_USER_KEYS_version = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_computer_name = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy_long3 = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_rid = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_server_name = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_PRIMARY = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_SecurityInformation = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown1 = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown3 = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_Reserved = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_db_index = -1;
+static gint hf_netlogon_netr_WorkstationInformation_os_version = -1;
+static gint hf_netlogon_netr_AccountBuffer_blob = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_CSDVersion_ = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_WEB_SERVICE_REQUIRED = -1;
+static gint hf_netlogon_netr_DsRGetDCName_domain_name = -1;
+static gint hf_netlogon_netr_DELTA_UNION_group_member = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_DS = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_ARRAY_count = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_credential = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_sid = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_return_credentials = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_DNS_UPDATE_FAILURE = -1;
+static gint hf_netlogon_netr_DsrGetDcSiteCoverageW_ctr = -1;
+static gint hf_netlogon_netr_ServerAuthenticate2_server_name = -1;
+static gint hf_netlogon_netr_LogonControl2Ex_query = -1;
+static gint hf_netlogon_netr_DELTA_USER_code_page = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown3 = -1;
+static gint hf_netlogon_netr_PasswordHistory_lm_size = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_computer_name = -1;
+static gint hf_netlogon_netr_AccountSync_recordid = -1;
+static gint hf_netlogon_netr_DsrEnumerateDomainTrusts_server_name = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown7 = -1;
+static gint hf_netlogon_netr_UasInfo_unknown = -1;
+static gint hf_netlogon_netr_CIPHER_VALUE_maxlen = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown3 = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_computer_name = -1;
+static gint hf_netlogon_netr_LogonSamLogoff_credential = -1;
+static gint hf_netlogon_netr_TrustInfo_count = -1;
+static gint hf_netlogon_netr_DatabaseSync2_sync_context = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_PDC_REQUIRED = -1;
+static gint hf_netlogon_netr_DatabaseRedo_credential = -1;
+static gint hf_netlogon_netr_PacInfo_pac_size = -1;
+static gint hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info1 = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExW_ctr = -1;
+static gint hf_netlogon_netr_OneDomainInfo_dummy_string4 = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_unknown3 = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown2 = -1;
+static gint hf_netlogon_netr_DsRGetSiteName_computer_name = -1;
+static gint hf_netlogon_netr_DsRGetDCName_domain_guid = -1;
+static gint hf_netlogon_netr_SamBaseInfo_allow_password_change = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_REQUIRED = -1;
+static gint hf_netlogon_netr_LogonControl2_data = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_credential = -1;
+static gint hf_netlogon_netr_WorkstationInfo_lsa_policy_info = -1;
+static gint hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_FIRST_PROMOTION_OBJ = -1;
+static gint hf_netlogon_netr_AccountSync_buffer_ = -1;
+static gint hf_netlogon_netr_ServerAuthenticate_account_name = -1;
+static gint hf_netlogon_netr_DELTA_UNION_account = -1;
+static gint hf_netlogon_netr_AccountSync_buffer = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_VERIFY_STATUS_RETURNED = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_credentials = -1;
+static gint hf_netlogon_netr_DELTA_USER_primary_gid = -1;
+static gint hf_netlogon_netr_GetDcName_dcname = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown6 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC = -1;
+static gint hf_netlogon_netr_SamInfo6_principle = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_MIT_KRB5 = -1;
+static gint hf_netlogon_netr_DatabaseSync2_credential = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_TRY_NEXTCLOSEST_SITE = -1;
+static gint hf_netlogon_netr_USER_KEYS2_lmpassword = -1;
+static gint hf_netlogon_netr_PacInfo_auth = -1;
+static gint hf_netlogon_netr_LMSessionKey_key = -1;
+static gint hf_netlogon_netr_DELTA_USER_nt_password_present = -1;
+static gint hf_netlogon_netr_NetworkInfo_lm = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExWCtr_subnetname = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown7 = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_unknown1 = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_unknown5 = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CONCURRENT_RPC = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_alias_name = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_AES = -1;
+static gint hf_netlogon_netr_OsVersion_dummy = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_description = -1;
+static gint hf_netlogon_netr_DomainInformation_trusted_domains = -1;
+static gint hf_netlogon_netr_WorkstationInfo_workstation_info = -1;
+static gint hf_netlogon_netr_LogonSamLogoff_server_name = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_PREFERRED = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_MajorVersion = -1;
+static gint hf_netlogon_netr_DELTA_USER_lmpassword = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_num_controllers = -1;
+static gint hf_netlogon_netr_LogonControl_function_code = -1;
+static gint hf_netlogon_netr_LogonUasLogon_server_name = -1;
+static gint hf_netlogon_netr_AccountDeltas_credential = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx2_site_name = -1;
+static gint hf_netlogon_netr_LogonControl2_level = -1;
+static gint hf_netlogon_netr_SamInfo6_base = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_RETURN_DNS_NAME = -1;
+static gint hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_auditretentionperiod = -1;
+static gint hf_netlogon_netr_OneDomainInfo_domainname = -1;
+static gint hf_netlogon_netr_ServerGetTrustInfo_trust_info = -1;
+static gint hf_netlogon_NL_PASSWORD_VERSION_PasswordVersionNumber = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS = -1;
+static gint hf_netlogon_netr_CryptPassword_data = -1;
+static gint hf_netlogon_netr_WorkstationInformation_workstation_flags = -1;
+static gint hf_netlogon_netr_SamBaseInfo_last_failed_logon = -1;
+static gint hf_netlogon_netr_GenericInfo_identity_info = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown6 = -1;
+static gint hf_netlogon_netr_Capabilities_server_capabilities = -1;
+static gint hf_netlogon_netr_GetForestTrustInformation_server_name = -1;
+static gint hf_netlogon_netr_DELTA_USER_comment = -1;
+static gint hf_netlogon_netr_ChallengeResponse_data = -1;
+static gint hf_netlogon_netr_NetworkInfo_challenge = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_logon_to_chgpass = -1;
+static gint hf_netlogon_netr_SamBaseInfo_logon_script = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_password_history_length = -1;
+static gint hf_netlogon_netr_OneDomainInfo_trust_extension = -1;
+static gint hf_netlogon_netr_ChallengeResponse_size = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_domain_name = -1;
+static gint hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_WH_SERVER = -1;
+static gint hf_netlogon_netr_NetrEnumerateTrustedDomains_server_name = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy_long2 = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_unknown2 = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_DNS_CONTROLLER = -1;
+static gint hf_netlogon_netr_QUOTA_LIMITS_pagedpoollimit = -1;
+static gint hf_netlogon_netr_DELTA_ENUM_ARRAY_delta_enum = -1;
+static gint hf_netlogon_netr_DomainTrust_trust_type = -1;
+static gint hf_netlogon_netr_DELTA_SECRET_old_cipher_set_time = -1;
+static gint hf_netlogon_netr_GenericInfo2_data = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_USED_LM_PASSWORD = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_domain_name = -1;
+static gint hf_netlogon_netr_OsVersion_length = -1;
+static gint hf_netlogon_netr_DELTA_UNION_alias_member = -1;
+static gint hf_netlogon_netr_USER_KEY16_flags = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_eventauditoptions = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_computer_name = -1;
+static gint hf_netlogon_netr_DELTA_USER_unknown5 = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_UPDATE_LOGON_STATISTICS = -1;
+static gint hf_netlogon_netr_DsRGetDCNameInfo_dc_site_name = -1;
+static gint hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_INBOUND = -1;
+static gint hf_netlogon_netr_DatabaseSync2_computername = -1;
+static gint hf_netlogon_netr_PasswordInfo_lmpassword = -1;
+static gint hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_credential = -1;
+static gint hf_netlogon_netr_SamBaseInfo_reserved = -1;
+static gint hf_netlogon_netr_QUOTA_LIMITS_pagefilelimit = -1;
+static gint hf_netlogon_netr_Blob_length = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown4 = -1;
+static gint hf_netlogon_netr_LogonUasLogon_workstation = -1;
+static gint hf_netlogon_netr_AcctLockStr_bad_attempt_lockout = -1;
+static gint hf_netlogon_netr_InfoFlags_NETLOGON_HAS_TIMESERV = -1;
+static gint hf_netlogon_netr_GetAnyDCName_logon_server = -1;
+static gint hf_netlogon_netr_UasInfo_last_logon = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_WRITABLE = -1;
+static gint hf_netlogon_netr_DELTA_DOMAIN_unknown2 = -1;
+static gint hf_netlogon_netr_DELTA_ACCOUNT_unknown3 = -1;
+static gint hf_netlogon_netr_AccountDeltas_buffer_ = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_BACKGROUND_ONLY = -1;
+static gint hf_netlogon_netr_QUOTA_LIMITS_timelimit = -1;
+static gint hf_netlogon_netr_SupportedEncTypes_ENC_RC4_HMAC_MD5 = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_computer_name = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown8 = -1;
+static gint hf_netlogon_netr_DELTA_UNION_delete_group = -1;
+static gint hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_SID_INCLUDED = -1;
+static gint hf_netlogon_netr_AccountDeltas_level = -1;
+static gint hf_netlogon_netr_trust_extension_parent_index = -1;
+static gint hf_netlogon_netr_SamBaseInfo_failed_logon_count = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_FULL_SYNC_REPL = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_account_name = -1;
+static gint hf_netlogon_netr_DELTA_USER_last_logon = -1;
+static gint hf_netlogon_netr_DsRAddressToSitenamesExW_addresses = -1;
+static gint hf_netlogon_netr_DELTA_USER_logon_count = -1;
+static gint hf_netlogon_netr_LogonGetCapabilities_return_authenticator = -1;
+static gint hf_netlogon_netr_AccountDeltas_logon_server = -1;
+static gint hf_netlogon_netr_SamInfo2_base = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown6 = -1;
+static gint hf_netlogon_netr_LogonSamLogonWithFlags_validation_level = -1;
+static gint hf_netlogon_netr_DsrDeregisterDNSHostRecords_dns_host = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_GRACE_LOGON = -1;
+static gint hf_netlogon_netr_ServerTrustPasswordsGet_credential = -1;
+static gint hf_netlogon_netr_DELTA_RENAME_OldName = -1;
+static gint hf_netlogon_netr_DsRGetDCName_flags_DS_ONLY_LDAP_NEEDED = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown2 = -1;
+static gint hf_netlogon_netr_DELTA_DELETE_USER_unknown5 = -1;
+static gint hf_netlogon_netr_DELTA_USER_logon_script = -1;
+static gint hf_netlogon_netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES128 = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_KDC = -1;
+static gint hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list = -1;
+static gint hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY = -1;
+static gint hf_netlogon_netr_ChangeLogObject_object_name = -1;
+static gint hf_netlogon_netr_DsRAddress_buffer = -1;
+static gint hf_netlogon_netr_LogonSamLogonEx_computer_name = -1;
+static gint hf_netlogon_netr_SamInfo3_sids = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown2 = -1;
+static gint hf_netlogon_netr_LogonGetDomainInfo_query = -1;
+static gint hf_netlogon_netr_ServerAuthenticate_credentials = -1;
+static gint hf_netlogon_netr_ServerAuthenticate3_rid = -1;
+static gint hf_netlogon_netr_PacInfo_unknown4 = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_3_unknown4 = -1;
+static gint hf_netlogon_netr_AccountSync_level = -1;
+static gint hf_netlogon_netr_DELTA_POLICY_unknown5 = -1;
+static gint hf_netlogon_netr_IdentityInfo_workstation = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_DNS_DOMAIN_TRUSTS = -1;
+static gint hf_netlogon_netr_OneDomainInfo_domain_sid = -1;
+static gint hf_netlogon_netr_DELTA_USER_description = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_unknown6 = -1;
+static gint hf_netlogon_netr_UasInfo_bad_pw_count = -1;
+static gint hf_netlogon_netr_NETLOGON_INFO_1_pdc_connection_status = -1;
+static gint hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info2 = -1;
+static gint hf_netlogon_netr_SamBaseInfo_LMSessKey = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_sdbuf = -1;
+static gint hf_netlogon_netr_GetForestTrustInformation_credential = -1;
+static gint hf_netlogon_netr_LogonSamLogoff_logon = -1;
+static gint hf_netlogon_netr_ChangeLogEntry_delta_type = -1;
+static gint hf_netlogon_netr_GetForestTrustInformation_forest_trust_info = -1;
+static gint hf_netlogon_netr_WorkstationInformation_dummy3 = -1;
+static gint hf_netlogon_netr_DELTA_UNION_secret = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown7 = -1;
+static gint hf_netlogon_netr_DomainTrust_guid = -1;
+static gint hf_netlogon_netr_IdentityInfo_account_name = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_logon_server = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION = -1;
+static gint hf_netlogon_netr_DsRGetDCNameEx_domain_guid = -1;
+static gint hf_netlogon_netr_LogonUasLogon_info = -1;
+static gint hf_netlogon_netr_DELTA_GROUP_sdbuf = -1;
+static gint hf_netlogon_netr_DELTA_USER_ntpassword = -1;
+static gint hf_netlogon_netr_DatabaseDeltas_preferredmaximumlength = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown8 = -1;
+static gint hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_CHANGED_PASSWORD = -1;
+static gint hf_netlogon_netr_USER_KEY16_size = -1;
+static gint hf_netlogon_netr_ServerPasswordGet_password = -1;
+static gint hf_netlogon_netr_TrustInfo_entries = -1;
+static gint hf_netlogon_netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED = -1;
+static gint hf_netlogon_netr_DELTA_ID_UNION_name = -1;
+static gint hf_netlogon_netr_DatabaseRedo_change_log_entry_size = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_GETDOMAININFO = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_SuiteMask = -1;
+static gint hf_netlogon_netr_OsVersionInfoEx_ServicePackMinor = -1;
+static gint hf_netlogon_netr_ServerReqChallenge_server_name = -1;
+static gint hf_netlogon_netr_UasInfo_auth_flags = -1;
+static gint hf_netlogon_netr_LogonGetCapabilities_credential = -1;
+static gint hf_netlogon_netr_DsRGetDCName_site_guid = -1;
+static gint hf_netlogon_netr_DsR_DcFlags_DS_SERVER_TIMESERV = -1;
+static gint hf_netlogon_netr_DELTA_UNION_domain = -1;
+static gint hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_GENERIC_PASSTHROUGH = -1;
+static gint hf_netlogon_netr_SamBaseInfo_sub_auth_status = -1;
+static gint hf_netlogon_netr_UAS_INFO_0_computer_name = -1;
+static gint hf_netlogon_netr_USER_KEY16_pwd = -1;
+static gint hf_netlogon_netr_DsrDeregisterDNSHostRecords_server_name = -1;
+static gint hf_netlogon_netr_IdentityInfo_logon_id_low = -1;
+static gint hf_netlogon_netr_AcctLockStr_reset_count = -1;
+static gint hf_netlogon_netr_UserFlags_NETLOGON_CACHED_ACCOUNT = -1;
+static gint hf_netlogon_netr_DatabaseSync2_logon_server = -1;
+static gint hf_netlogon_netr_trust_extension_length = -1;
+static gint hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_sdbuf = -1;
+static gint hf_netlogon_netr_ServerPasswordSet2_server_name = -1;
+static gint hf_netlogon_netr_DELTA_USER_profile_path = -1;
+static gint hf_netlogon_netr_DELTA_ALIAS_unknown8 = -1;
+
+static gint proto_dcerpc_netlogon = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_netlogon = {
+       0x12345678, 0x1234, 0xabcd,
+       { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0xcf, 0xfb }
+};
+static guint16 ver_dcerpc_netlogon = 1;
+
+const value_string netlogon_netr_DeltaEnum8Bit_vals[] = {
+{ 0, NULL }
+};
+const value_string netlogon_netr_SamDatabaseID8Bit_vals[] = {
+{ 0, NULL }
+};
+static int netlogon_dissect_element_netr_UasInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_priv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_auth_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_bad_pw_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_kickoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_pw_can_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_pw_must_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_computer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_computer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_script_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_script_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasLogoffInfo_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UasLogoffInfo_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AcctLockStr_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AcctLockStr_reset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AcctLockStr_bad_attempt_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AcctLockStr_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_ALLOWED_tfs = {
+   "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED is SET",
+   "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_UPDATE_LOGON_STATISTICS_tfs = {
+   "MSV1_0_UPDATE_LOGON_STATISTICS is SET",
+   "MSV1_0_UPDATE_LOGON_STATISTICS is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_RETURN_USER_PARAMETERS_tfs = {
+   "MSV1_0_RETURN_USER_PARAMETERS is SET",
+   "MSV1_0_RETURN_USER_PARAMETERS is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_DONT_TRY_GUEST_ACCOUNT_tfs = {
+   "MSV1_0_DONT_TRY_GUEST_ACCOUNT is SET",
+   "MSV1_0_DONT_TRY_GUEST_ACCOUNT is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT_tfs = {
+   "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT is SET",
+   "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_RETURN_PASSWORD_EXPIRY_tfs = {
+   "MSV1_0_RETURN_PASSWORD_EXPIRY is SET",
+   "MSV1_0_RETURN_PASSWORD_EXPIRY is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_USE_CLIENT_CHALLENGE_tfs = {
+   "MSV1_0_USE_CLIENT_CHALLENGE is SET",
+   "MSV1_0_USE_CLIENT_CHALLENGE is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_TRY_GUEST_ACCOUNT_ONLY_tfs = {
+   "MSV1_0_TRY_GUEST_ACCOUNT_ONLY is SET",
+   "MSV1_0_TRY_GUEST_ACCOUNT_ONLY is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_RETURN_PROFILE_PATH_tfs = {
+   "MSV1_0_RETURN_PROFILE_PATH is SET",
+   "MSV1_0_RETURN_PROFILE_PATH is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY_tfs = {
+   "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY is SET",
+   "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT_tfs = {
+   "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT is SET",
+   "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_DISABLE_PERSONAL_FALLBACK_tfs = {
+   "MSV1_0_DISABLE_PERSONAL_FALLBACK is SET",
+   "MSV1_0_DISABLE_PERSONAL_FALLBACK is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_ALLOW_FORCE_GUEST_tfs = {
+   "MSV1_0_ALLOW_FORCE_GUEST is SET",
+   "MSV1_0_ALLOW_FORCE_GUEST is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED_tfs = {
+   "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED is SET",
+   "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY_tfs = {
+   "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY is SET",
+   "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_ALLOW_MSVCHAPV2_tfs = {
+   "MSV1_0_ALLOW_MSVCHAPV2 is SET",
+   "MSV1_0_ALLOW_MSVCHAPV2 is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_S4U2SELF_tfs = {
+   "MSV1_0_S4U2SELF is SET",
+   "MSV1_0_S4U2SELF is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_CHECK_LOGONHOURS_FOR_S4U_tfs = {
+   "MSV1_0_CHECK_LOGONHOURS_FOR_S4U is SET",
+   "MSV1_0_CHECK_LOGONHOURS_FOR_S4U is NOT SET",
+};
+static const true_false_string netr_LogonParameterControl_MSV1_0_SUBAUTHENTICATION_DLL_EX_tfs = {
+   "MSV1_0_SUBAUTHENTICATION_DLL_EX is SET",
+   "MSV1_0_SUBAUTHENTICATION_DLL_EX is NOT SET",
+};
+static int netlogon_dissect_element_netr_IdentityInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_IdentityInfo_parameter_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_IdentityInfo_logon_id_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_IdentityInfo_logon_id_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_IdentityInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_IdentityInfo_workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordInfo_lmpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordInfo_ntpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChallengeResponse_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChallengeResponse_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChallengeResponse_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChallengeResponse_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChallengeResponse_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetworkInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetworkInfo_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetworkInfo_challenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetworkInfo_nt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetworkInfo_lm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_package_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_LogonInfoClass_vals[] = {
+       { NetlogonInteractiveInformation, "NetlogonInteractiveInformation" },
+       { NetlogonNetworkInformation, "NetlogonNetworkInformation" },
+       { NetlogonServiceInformation, "NetlogonServiceInformation" },
+       { NetlogonGenericInformation, "NetlogonGenericInformation" },
+       { NetlogonInteractiveTransitiveInformation, "NetlogonInteractiveTransitiveInformation" },
+       { NetlogonNetworkTransitiveInformation, "NetlogonNetworkTransitiveInformation" },
+       { NetlogonServiceTransitiveInformation, "NetlogonServiceTransitiveInformation" },
+{ 0, NULL }
+};
+static int netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_network(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_network_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_generic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_generic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_network(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_network_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UserSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UserSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LMSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LMSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_UserFlags_NETLOGON_GUEST_tfs = {
+   "NETLOGON_GUEST is SET",
+   "NETLOGON_GUEST is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_NOENCRYPTION_tfs = {
+   "NETLOGON_NOENCRYPTION is SET",
+   "NETLOGON_NOENCRYPTION is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_CACHED_ACCOUNT_tfs = {
+   "NETLOGON_CACHED_ACCOUNT is SET",
+   "NETLOGON_CACHED_ACCOUNT is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_USED_LM_PASSWORD_tfs = {
+   "NETLOGON_USED_LM_PASSWORD is SET",
+   "NETLOGON_USED_LM_PASSWORD is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_EXTRA_SIDS_tfs = {
+   "NETLOGON_EXTRA_SIDS is SET",
+   "NETLOGON_EXTRA_SIDS is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_SUBAUTH_SESSION_KEY_tfs = {
+   "NETLOGON_SUBAUTH_SESSION_KEY is SET",
+   "NETLOGON_SUBAUTH_SESSION_KEY is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_SERVER_TRUST_ACCOUNT_tfs = {
+   "NETLOGON_SERVER_TRUST_ACCOUNT is SET",
+   "NETLOGON_SERVER_TRUST_ACCOUNT is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_NTLMV2_ENABLED_tfs = {
+   "NETLOGON_NTLMV2_ENABLED is SET",
+   "NETLOGON_NTLMV2_ENABLED is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_RESOURCE_GROUPS_tfs = {
+   "NETLOGON_RESOURCE_GROUPS is SET",
+   "NETLOGON_RESOURCE_GROUPS is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_PROFILE_PATH_RETURNED_tfs = {
+   "NETLOGON_PROFILE_PATH_RETURNED is SET",
+   "NETLOGON_PROFILE_PATH_RETURNED is NOT SET",
+};
+static const true_false_string netr_UserFlags_NETLOGON_GRACE_LOGON_tfs = {
+   "NETLOGON_GRACE_LOGON is SET",
+   "NETLOGON_GRACE_LOGON is NOT SET",
+};
+static int netlogon_dissect_element_netr_SamBaseInfo_logon_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_kickoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_LMSessKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_sub_auth_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_last_successful_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_last_failed_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_failed_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamBaseInfo_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo2_base(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SidAttr_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SidAttr_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SidAttr_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo3_base(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo3_sidcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo3_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_base(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_sidcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_dns_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_principle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_SamInfo6_unknown4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_pac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_pac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_pac__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_principal_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_auth_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_auth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_auth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_auth__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_user_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_expansionroom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_expansionroom_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PacInfo_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo2_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GenericInfo2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_ValidationInfoClass_vals[] = {
+       { NetlogonValidationUasInfo, "NetlogonValidationUasInfo" },
+       { NetlogonValidationSamInfo, "NetlogonValidationSamInfo" },
+       { NetlogonValidationSamInfo2, "NetlogonValidationSamInfo2" },
+       { NetlogonValidationGenericInfo2, "NetlogonValidationGenericInfo2" },
+       { NetlogonValidationSamInfo4, "NetlogonValidationSamInfo4" },
+{ 0, NULL }
+};
+static int netlogon_dissect_element_netr_Validation_sam2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_sam2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_sam3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_sam3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_pac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_generic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_generic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_sam6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Validation_sam6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Credential_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Credential_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Authenticator_cred(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Authenticator_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_SchannelType_vals[] = {
+{ 0, NULL }
+};
+const value_string netlogon_netr_SamDatabaseID_vals[] = {
+{ 0, NULL }
+};
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEY16_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEY16_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEY16_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEY16_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_nt_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_nt_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_nt_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_lm_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_lm_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_lm_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_nt_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_nt_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_lm_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_PasswordHistory_lm_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEYS2_lmpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEYS2_ntpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEYS2_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEY_UNION_keys2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEYS_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_KEYS_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveDataFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_lmpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_ntpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_nt_password_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_lm_password_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_user_private_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_USER_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_account_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_logon_to_chgpass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_DOMAIN_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_OldName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_NewName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_RENAME_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_QUOTA_LIMITS_pagedpoollimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_QUOTA_LIMITS_nonpagedpoollimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_QUOTA_LIMITS_minimumworkingsetsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_QUOTA_LIMITS_maximumworkingsetsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_QUOTA_LIMITS_pagefilelimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_QUOTA_LIMITS_timelimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_maxlogsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_auditretentionperiod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_auditingmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_maxauditeventcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_primary_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_quota_limits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_db_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_POLICY_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_num_controllers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_quotalimits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_system_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CIPHER_VALUE_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CIPHER_VALUE_maxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_current_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_current_cipher_set_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_old_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_old_cipher_set_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_SECRET_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_DeltaEnum_vals[] = {
+       { NETR_DELTA_DOMAIN, "NETR_DELTA_DOMAIN" },
+       { NETR_DELTA_GROUP, "NETR_DELTA_GROUP" },
+       { NETR_DELTA_DELETE_GROUP, "NETR_DELTA_DELETE_GROUP" },
+       { NETR_DELTA_RENAME_GROUP, "NETR_DELTA_RENAME_GROUP" },
+       { NETR_DELTA_USER, "NETR_DELTA_USER" },
+       { NETR_DELTA_DELETE_USER, "NETR_DELTA_DELETE_USER" },
+       { NETR_DELTA_RENAME_USER, "NETR_DELTA_RENAME_USER" },
+       { NETR_DELTA_GROUP_MEMBER, "NETR_DELTA_GROUP_MEMBER" },
+       { NETR_DELTA_ALIAS, "NETR_DELTA_ALIAS" },
+       { NETR_DELTA_DELETE_ALIAS, "NETR_DELTA_DELETE_ALIAS" },
+       { NETR_DELTA_RENAME_ALIAS, "NETR_DELTA_RENAME_ALIAS" },
+       { NETR_DELTA_ALIAS_MEMBER, "NETR_DELTA_ALIAS_MEMBER" },
+       { NETR_DELTA_POLICY, "NETR_DELTA_POLICY" },
+       { NETR_DELTA_TRUSTED_DOMAIN, "NETR_DELTA_TRUSTED_DOMAIN" },
+       { NETR_DELTA_DELETE_TRUST, "NETR_DELTA_DELETE_TRUST" },
+       { NETR_DELTA_ACCOUNT, "NETR_DELTA_ACCOUNT" },
+       { NETR_DELTA_DELETE_ACCOUNT, "NETR_DELTA_DELETE_ACCOUNT" },
+       { NETR_DELTA_SECRET, "NETR_DELTA_SECRET" },
+       { NETR_DELTA_DELETE_SECRET, "NETR_DELTA_DELETE_SECRET" },
+       { NETR_DELTA_DELETE_GROUP2, "NETR_DELTA_DELETE_GROUP2" },
+       { NETR_DELTA_DELETE_USER2, "NETR_DELTA_DELETE_USER2" },
+       { NETR_DELTA_MODIFY_COUNT, "NETR_DELTA_MODIFY_COUNT" },
+{ 0, NULL }
+};
+static int netlogon_dissect_element_netr_DELTA_UNION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_rename_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_rename_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_rename_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_rename_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_group_member(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_group_member_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_alias_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_rename_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_rename_alias_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_alias_member(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_alias_member_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_trusted_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_trusted_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_delete_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_delete_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_delete_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_delete_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_modified_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_UNION_modified_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ENUM_delta_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *delta_type);
+static int netlogon_dissect_element_netr_DELTA_ENUM_delta_id_union(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *delta_type);
+static int netlogon_dissect_element_netr_DELTA_ENUM_delta_union(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *delta_type);
+static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_num_deltas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UAS_INFO_0_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UAS_INFO_0_timecreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_UAS_INFO_0_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountBuffer_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_InfoFlags_NETLOGON_REPLICATION_NEEDED_tfs = {
+   "NETLOGON_REPLICATION_NEEDED is SET",
+   "NETLOGON_REPLICATION_NEEDED is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_REPLICATION_IN_PROGRESS_tfs = {
+   "NETLOGON_REPLICATION_IN_PROGRESS is SET",
+   "NETLOGON_REPLICATION_IN_PROGRESS is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_FULL_SYNC_REPLICATION_tfs = {
+   "NETLOGON_FULL_SYNC_REPLICATION is SET",
+   "NETLOGON_FULL_SYNC_REPLICATION is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_REDO_NEEDED_tfs = {
+   "NETLOGON_REDO_NEEDED is SET",
+   "NETLOGON_REDO_NEEDED is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_HAS_IP_tfs = {
+   "NETLOGON_HAS_IP is SET",
+   "NETLOGON_HAS_IP is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_HAS_TIMESERV_tfs = {
+   "NETLOGON_HAS_TIMESERV is SET",
+   "NETLOGON_HAS_TIMESERV is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_DNS_UPDATE_FAILURE_tfs = {
+   "NETLOGON_DNS_UPDATE_FAILURE is SET",
+   "NETLOGON_DNS_UPDATE_FAILURE is NOT SET",
+};
+static const true_false_string netr_InfoFlags_NETLOGON_VERIFY_STATUS_RETURNED_tfs = {
+   "NETLOGON_VERIFY_STATUS_RETURNED is SET",
+   "NETLOGON_VERIFY_STATUS_RETURNED is NOT SET",
+};
+static int netlogon_dissect_element_netr_NETLOGON_INFO_1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_1_pdc_connection_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_2_pdc_connection_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_2_trusted_dc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_2_trusted_dc_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_2_tc_connection_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_logon_attempts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_dc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_dc_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_LogonControlCode_vals[] = {
+       { NETLOGON_CONTROL_QUERY, "NETLOGON_CONTROL_QUERY" },
+       { NETLOGON_CONTROL_REPLICATE, "NETLOGON_CONTROL_REPLICATE" },
+       { NETLOGON_CONTROL_SYNCHRONIZE, "NETLOGON_CONTROL_SYNCHRONIZE" },
+       { NETLOGON_CONTROL_PDC_REPLICATE, "NETLOGON_CONTROL_PDC_REPLICATE" },
+       { NETLOGON_CONTROL_REDISCOVER, "NETLOGON_CONTROL_REDISCOVER" },
+       { NETLOGON_CONTROL_TC_QUERY, "NETLOGON_CONTROL_TC_QUERY" },
+       { NETLOGON_CONTROL_TRANSPORT_NOTIFY, "NETLOGON_CONTROL_TRANSPORT_NOTIFY" },
+       { NETLOGON_CONTROL_FIND_USER, "NETLOGON_CONTROL_FIND_USER" },
+       { NETLOGON_CONTROL_CHANGE_PASSWORD, "NETLOGON_CONTROL_CHANGE_PASSWORD" },
+       { NETLOGON_CONTROL_TC_VERIFY, "NETLOGON_CONTROL_TC_VERIFY" },
+       { NETLOGON_CONTROL_FORCE_DNS_REG, "NETLOGON_CONTROL_FORCE_DNS_REG" },
+       { NETLOGON_CONTROL_QUERY_DNS_REG, "NETLOGON_CONTROL_QUERY_DNS_REG" },
+       { NETLOGON_CONTROL_BACKUP_CHANGE_LOG, "NETLOGON_CONTROL_BACKUP_CHANGE_LOG" },
+       { NETLOGON_CONTROL_TRUNCATE_LOG, "NETLOGON_CONTROL_TRUNCATE_LOG" },
+       { NETLOGON_CONTROL_SET_DBFLAG, "NETLOGON_CONTROL_SET_DBFLAG" },
+       { NETLOGON_CONTROL_BREAKPOINT, "NETLOGON_CONTROL_BREAKPOINT" },
+{ 0, NULL }
+};
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_debug_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_ACCOUNT_LOCKOUT_tfs = {
+   "NETLOGON_NEG_ACCOUNT_LOCKOUT is SET",
+   "NETLOGON_NEG_ACCOUNT_LOCKOUT is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL_tfs = {
+   "NETLOGON_NEG_PERSISTENT_SAMREPL is SET",
+   "NETLOGON_NEG_PERSISTENT_SAMREPL is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_ARCFOUR_tfs = {
+   "NETLOGON_NEG_ARCFOUR is SET",
+   "NETLOGON_NEG_ARCFOUR is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_PROMOTION_COUNT_tfs = {
+   "NETLOGON_NEG_PROMOTION_COUNT is SET",
+   "NETLOGON_NEG_PROMOTION_COUNT is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_CHANGELOG_BDC_tfs = {
+   "NETLOGON_NEG_CHANGELOG_BDC is SET",
+   "NETLOGON_NEG_CHANGELOG_BDC is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_FULL_SYNC_REPL_tfs = {
+   "NETLOGON_NEG_FULL_SYNC_REPL is SET",
+   "NETLOGON_NEG_FULL_SYNC_REPL is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_MULTIPLE_SIDS_tfs = {
+   "NETLOGON_NEG_MULTIPLE_SIDS is SET",
+   "NETLOGON_NEG_MULTIPLE_SIDS is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_REDO_tfs = {
+   "NETLOGON_NEG_REDO is SET",
+   "NETLOGON_NEG_REDO is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL_tfs = {
+   "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL is SET",
+   "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_SEND_PASSWORD_INFO_PDC_tfs = {
+   "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC is SET",
+   "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_GENERIC_PASSTHROUGH_tfs = {
+   "NETLOGON_NEG_GENERIC_PASSTHROUGH is SET",
+   "NETLOGON_NEG_GENERIC_PASSTHROUGH is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_CONCURRENT_RPC_tfs = {
+   "NETLOGON_NEG_CONCURRENT_RPC is SET",
+   "NETLOGON_NEG_CONCURRENT_RPC is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL_tfs = {
+   "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL is SET",
+   "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL_tfs = {
+   "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL is SET",
+   "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_STRONG_KEYS_tfs = {
+   "NETLOGON_NEG_STRONG_KEYS is SET",
+   "NETLOGON_NEG_STRONG_KEYS is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_TRANSITIVE_TRUSTS_tfs = {
+   "NETLOGON_NEG_TRANSITIVE_TRUSTS is SET",
+   "NETLOGON_NEG_TRANSITIVE_TRUSTS is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_DNS_DOMAIN_TRUSTS_tfs = {
+   "NETLOGON_NEG_DNS_DOMAIN_TRUSTS is SET",
+   "NETLOGON_NEG_DNS_DOMAIN_TRUSTS is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_SET2_tfs = {
+   "NETLOGON_NEG_PASSWORD_SET2 is SET",
+   "NETLOGON_NEG_PASSWORD_SET2 is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_GETDOMAININFO_tfs = {
+   "NETLOGON_NEG_GETDOMAININFO is SET",
+   "NETLOGON_NEG_GETDOMAININFO is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_CROSS_FOREST_TRUSTS_tfs = {
+   "NETLOGON_NEG_CROSS_FOREST_TRUSTS is SET",
+   "NETLOGON_NEG_CROSS_FOREST_TRUSTS is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION_tfs = {
+   "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION is SET",
+   "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_RODC_PASSTHROUGH_tfs = {
+   "NETLOGON_NEG_RODC_PASSTHROUGH is SET",
+   "NETLOGON_NEG_RODC_PASSTHROUGH is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_SHA2_tfs = {
+   "NETLOGON_NEG_SUPPORTS_AES_SHA2 is SET",
+   "NETLOGON_NEG_SUPPORTS_AES_SHA2 is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_tfs = {
+   "NETLOGON_NEG_SUPPORTS_AES is SET",
+   "NETLOGON_NEG_SUPPORTS_AES is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_LSASS_tfs = {
+   "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS is SET",
+   "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS is NOT SET",
+};
+static const true_false_string netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_tfs = {
+   "NETLOGON_NEG_AUTHENTICATED_RPC is SET",
+   "NETLOGON_NEG_AUTHENTICATED_RPC is NOT SET",
+};
+const value_string netlogon_SyncStateEnum_vals[] = {
+       { SYNCSTATE_NORMAL_STATE, "SYNCSTATE_NORMAL_STATE" },
+       { SYNCSTATE_DOMAIN_STATE, "SYNCSTATE_DOMAIN_STATE" },
+       { SYNCSTATE_GROUP_STATE, "SYNCSTATE_GROUP_STATE" },
+       { SYNCSTATE_UAS_BUILT_IN_GROUP_STATE, "SYNCSTATE_UAS_BUILT_IN_GROUP_STATE" },
+       { SYNCSTATE_USER_STATE, "SYNCSTATE_USER_STATE" },
+       { SYNCSTATE_GROUP_MEMBER_STATE, "SYNCSTATE_GROUP_MEMBER_STATE" },
+       { SYNCSTATE_ALIAS_STATE, "SYNCSTATE_ALIAS_STATE" },
+       { SYNCSTATE_ALIAS_MEMBER_STATE, "SYNCSTATE_ALIAS_MEMBER_STATE" },
+       { SYNCSTATE_SAM_DONE_STATE, "SYNCSTATE_SAM_DONE_STATE" },
+{ 0, NULL }
+};
+static const true_false_string netr_ChangeLogFlags_NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED_tfs = {
+   "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED is SET",
+   "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED is NOT SET",
+};
+static const true_false_string netr_ChangeLogFlags_NETR_CHANGELOG_CHANGED_PASSWORD_tfs = {
+   "NETR_CHANGELOG_CHANGED_PASSWORD is SET",
+   "NETR_CHANGELOG_CHANGED_PASSWORD is NOT SET",
+};
+static const true_false_string netr_ChangeLogFlags_NETR_CHANGELOG_SID_INCLUDED_tfs = {
+   "NETR_CHANGELOG_SID_INCLUDED is SET",
+   "NETR_CHANGELOG_SID_INCLUDED is NOT SET",
+};
+static const true_false_string netr_ChangeLogFlags_NETR_CHANGELOG_NAME_INCLUDED_tfs = {
+   "NETR_CHANGELOG_NAME_INCLUDED is SET",
+   "NETR_CHANGELOG_NAME_INCLUDED is NOT SET",
+};
+static const true_false_string netr_ChangeLogFlags_NETR_CHANGELOG_FIRST_PROMOTION_OBJ_tfs = {
+   "NETR_CHANGELOG_FIRST_PROMOTION_OBJ is SET",
+   "NETR_CHANGELOG_FIRST_PROMOTION_OBJ is NOT SET",
+};
+static int netlogon_dissect_element_netr_ChangeLogObject_object_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogObject_object_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogEntry_serial_number1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogEntry_serial_number2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogEntry_object_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogEntry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *flags);
+static int netlogon_dissect_element_netr_ChangeLogEntry_db_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogEntry_delta_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ChangeLogEntry_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int netlogon_dissect_element_netr_Blob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Blob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Blob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Blob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_DsRGetDCName_flags_DS_FORCE_REDISCOVERY_tfs = {
+   "DS_FORCE_REDISCOVERY is SET",
+   "DS_FORCE_REDISCOVERY is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_REQUIRED_tfs = {
+   "DS_DIRECTORY_SERVICE_REQUIRED is SET",
+   "DS_DIRECTORY_SERVICE_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_PREFERRED_tfs = {
+   "DS_DIRECTORY_SERVICE_PREFERRED is SET",
+   "DS_DIRECTORY_SERVICE_PREFERRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_GC_SERVER_REQUIRED_tfs = {
+   "DS_GC_SERVER_REQUIRED is SET",
+   "DS_GC_SERVER_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_PDC_REQUIRED_tfs = {
+   "DS_PDC_REQUIRED is SET",
+   "DS_PDC_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_BACKGROUND_ONLY_tfs = {
+   "DS_BACKGROUND_ONLY is SET",
+   "DS_BACKGROUND_ONLY is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_IP_REQUIRED_tfs = {
+   "DS_IP_REQUIRED is SET",
+   "DS_IP_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_KDC_REQUIRED_tfs = {
+   "DS_KDC_REQUIRED is SET",
+   "DS_KDC_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_TIMESERV_REQUIRED_tfs = {
+   "DS_TIMESERV_REQUIRED is SET",
+   "DS_TIMESERV_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_WRITABLE_REQUIRED_tfs = {
+   "DS_WRITABLE_REQUIRED is SET",
+   "DS_WRITABLE_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_GOOD_TIMESERV_PREFERRED_tfs = {
+   "DS_GOOD_TIMESERV_PREFERRED is SET",
+   "DS_GOOD_TIMESERV_PREFERRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_AVOID_SELF_tfs = {
+   "DS_AVOID_SELF is SET",
+   "DS_AVOID_SELF is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_ONLY_LDAP_NEEDED_tfs = {
+   "DS_ONLY_LDAP_NEEDED is SET",
+   "DS_ONLY_LDAP_NEEDED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_IS_FLAT_NAME_tfs = {
+   "DS_IS_FLAT_NAME is SET",
+   "DS_IS_FLAT_NAME is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_IS_DNS_NAME_tfs = {
+   "DS_IS_DNS_NAME is SET",
+   "DS_IS_DNS_NAME is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_TRY_NEXTCLOSEST_SITE_tfs = {
+   "DS_TRY_NEXTCLOSEST_SITE is SET",
+   "DS_TRY_NEXTCLOSEST_SITE is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_6_REQUIRED_tfs = {
+   "DS_DIRECTORY_SERVICE_6_REQUIRED is SET",
+   "DS_DIRECTORY_SERVICE_6_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_WEB_SERVICE_REQUIRED_tfs = {
+   "DS_WEB_SERVICE_REQUIRED is SET",
+   "DS_WEB_SERVICE_REQUIRED is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_RETURN_DNS_NAME_tfs = {
+   "DS_RETURN_DNS_NAME is SET",
+   "DS_RETURN_DNS_NAME is NOT SET",
+};
+static const true_false_string netr_DsRGetDCName_flags_DS_RETURN_FLAT_NAME_tfs = {
+   "DS_RETURN_FLAT_NAME is SET",
+   "DS_RETURN_FLAT_NAME is NOT SET",
+};
+const value_string netlogon_netr_DsRGetDCNameInfo_AddressType_vals[] = {
+       { DS_ADDRESS_TYPE_INET, "DS_ADDRESS_TYPE_INET" },
+       { DS_ADDRESS_TYPE_NETBIOS, "DS_ADDRESS_TYPE_NETBIOS" },
+{ 0, NULL }
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_PDC_tfs = {
+   "DS_SERVER_PDC is SET",
+   "DS_SERVER_PDC is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_GC_tfs = {
+   "DS_SERVER_GC is SET",
+   "DS_SERVER_GC is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_LDAP_tfs = {
+   "DS_SERVER_LDAP is SET",
+   "DS_SERVER_LDAP is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_DS_tfs = {
+   "DS_SERVER_DS is SET",
+   "DS_SERVER_DS is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_KDC_tfs = {
+   "DS_SERVER_KDC is SET",
+   "DS_SERVER_KDC is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_TIMESERV_tfs = {
+   "DS_SERVER_TIMESERV is SET",
+   "DS_SERVER_TIMESERV is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_CLOSEST_tfs = {
+   "DS_SERVER_CLOSEST is SET",
+   "DS_SERVER_CLOSEST is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_WRITABLE_tfs = {
+   "DS_SERVER_WRITABLE is SET",
+   "DS_SERVER_WRITABLE is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_GOOD_TIMESERV_tfs = {
+   "DS_SERVER_GOOD_TIMESERV is SET",
+   "DS_SERVER_GOOD_TIMESERV is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_NDNC_tfs = {
+   "DS_SERVER_NDNC is SET",
+   "DS_SERVER_NDNC is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_SELECT_SECRET_DOMAIN_6_tfs = {
+   "DS_SERVER_SELECT_SECRET_DOMAIN_6 is SET",
+   "DS_SERVER_SELECT_SECRET_DOMAIN_6 is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_FULL_SECRET_DOMAIN_6_tfs = {
+   "DS_SERVER_FULL_SECRET_DOMAIN_6 is SET",
+   "DS_SERVER_FULL_SECRET_DOMAIN_6 is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_SERVER_WEBSERV_tfs = {
+   "DS_SERVER_WEBSERV is SET",
+   "DS_SERVER_WEBSERV is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_DNS_CONTROLLER_tfs = {
+   "DS_DNS_CONTROLLER is SET",
+   "DS_DNS_CONTROLLER is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_DNS_DOMAIN_tfs = {
+   "DS_DNS_DOMAIN is SET",
+   "DS_DNS_DOMAIN is NOT SET",
+};
+static const true_false_string netr_DsR_DcFlags_DS_DNS_FOREST_ROOT_tfs = {
+   "DS_DNS_FOREST_ROOT is SET",
+   "DS_DNS_FOREST_ROOT is NOT SET",
+};
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_forest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_forest_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_client_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameInfo_client_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_Capabilities_server_capabilities(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_IN_FOREST_tfs = {
+   "NETR_TRUST_FLAG_IN_FOREST is SET",
+   "NETR_TRUST_FLAG_IN_FOREST is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_OUTBOUND_tfs = {
+   "NETR_TRUST_FLAG_OUTBOUND is SET",
+   "NETR_TRUST_FLAG_OUTBOUND is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_TREEROOT_tfs = {
+   "NETR_TRUST_FLAG_TREEROOT is SET",
+   "NETR_TRUST_FLAG_TREEROOT is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_PRIMARY_tfs = {
+   "NETR_TRUST_FLAG_PRIMARY is SET",
+   "NETR_TRUST_FLAG_PRIMARY is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_NATIVE_tfs = {
+   "NETR_TRUST_FLAG_NATIVE is SET",
+   "NETR_TRUST_FLAG_NATIVE is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_INBOUND_tfs = {
+   "NETR_TRUST_FLAG_INBOUND is SET",
+   "NETR_TRUST_FLAG_INBOUND is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_MIT_KRB5_tfs = {
+   "NETR_TRUST_FLAG_MIT_KRB5 is SET",
+   "NETR_TRUST_FLAG_MIT_KRB5 is NOT SET",
+};
+static const true_false_string netr_TrustFlags_NETR_TRUST_FLAG_AES_tfs = {
+   "NETR_TRUST_FLAG_AES is SET",
+   "NETR_TRUST_FLAG_AES is NOT SET",
+};
+static const true_false_string netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS_tfs = {
+   "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS is SET",
+   "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS is NOT SET",
+};
+static const true_false_string netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_SPN_UPDATE_tfs = {
+   "NETR_WS_FLAG_HANDLES_SPN_UPDATE is SET",
+   "NETR_WS_FLAG_HANDLES_SPN_UPDATE is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE_tfs = {
+   "NETR_VER_SUITE_BACKOFFICE is SET",
+   "NETR_VER_SUITE_BACKOFFICE is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_BLADE_tfs = {
+   "NETR_VER_SUITE_BLADE is SET",
+   "NETR_VER_SUITE_BLADE is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_COMPUTE_SERVER_tfs = {
+   "NETR_VER_SUITE_COMPUTE_SERVER is SET",
+   "NETR_VER_SUITE_COMPUTE_SERVER is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_DATACENTER_tfs = {
+   "NETR_VER_SUITE_DATACENTER is SET",
+   "NETR_VER_SUITE_DATACENTER is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_ENTERPRISE_tfs = {
+   "NETR_VER_SUITE_ENTERPRISE is SET",
+   "NETR_VER_SUITE_ENTERPRISE is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_EMBEDDEDNT_tfs = {
+   "NETR_VER_SUITE_EMBEDDEDNT is SET",
+   "NETR_VER_SUITE_EMBEDDEDNT is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_PERSONAL_tfs = {
+   "NETR_VER_SUITE_PERSONAL is SET",
+   "NETR_VER_SUITE_PERSONAL is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS_tfs = {
+   "NETR_VER_SUITE_SINGLEUSERTS is SET",
+   "NETR_VER_SUITE_SINGLEUSERTS is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_tfs = {
+   "NETR_VER_SUITE_SMALLBUSINESS is SET",
+   "NETR_VER_SUITE_SMALLBUSINESS is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED_tfs = {
+   "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED is SET",
+   "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_STORAGE_SERVER_tfs = {
+   "NETR_VER_SUITE_STORAGE_SERVER is SET",
+   "NETR_VER_SUITE_STORAGE_SERVER is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_TERMINAL_tfs = {
+   "NETR_VER_SUITE_TERMINAL is SET",
+   "NETR_VER_SUITE_TERMINAL is NOT SET",
+};
+static const true_false_string netr_SuiteMask_NETR_VER_SUITE_WH_SERVER_tfs = {
+   "NETR_VER_SUITE_WH_SERVER is SET",
+   "NETR_VER_SUITE_WH_SERVER is NOT SET",
+};
+static const true_false_string netr_ProductType_NETR_VER_NT_DOMAIN_CONTROLLER_tfs = {
+   "NETR_VER_NT_DOMAIN_CONTROLLER is SET",
+   "NETR_VER_NT_DOMAIN_CONTROLLER is NOT SET",
+};
+static const true_false_string netr_ProductType_NETR_VER_NT_SERVER_tfs = {
+   "NETR_VER_NT_SERVER is SET",
+   "NETR_VER_NT_SERVER is NOT SET",
+};
+static const true_false_string netr_ProductType_NETR_VER_NT_WORKSTATION_tfs = {
+   "NETR_VER_NT_WORKSTATION is SET",
+   "NETR_VER_NT_WORKSTATION is NOT SET",
+};
+static int netlogon_dissect_element_netr_LsaPolicyInformation_policy_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LsaPolicyInformation_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LsaPolicyInformation_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LsaPolicyInformation_policy__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_OSVersionInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_BuildNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_PlatformId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_CSDVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_CSDVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_ServicePackMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_ServicePackMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_SuiteMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_ProductType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionInfoEx_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersion_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersion_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersion_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersion_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionContainer_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionContainer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionContainer_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OsVersionContainer_os_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_lsa_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dns_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dns_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_sitename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_os_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_os_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy_string3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy_string4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_workstation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy_long2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy_long3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInformation_dummy_long4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInfo_workstation_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInfo_workstation_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInfo_lsa_policy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_WorkstationInfo_lsa_policy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_parent_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_trust_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_trust_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_container_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_container_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_container_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_trust_extension_container_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dns_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dns_forestname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_trust_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_string2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_string3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_string4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_long1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_long2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_long3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_OneDomainInfo_dummy_long4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string netr_SupportedEncTypes_ENC_CRC32_tfs = {
+   "ENC_CRC32 is SET",
+   "ENC_CRC32 is NOT SET",
+};
+static const true_false_string netr_SupportedEncTypes_ENC_RSA_MD5_tfs = {
+   "ENC_RSA_MD5 is SET",
+   "ENC_RSA_MD5 is NOT SET",
+};
+static const true_false_string netr_SupportedEncTypes_ENC_RC4_HMAC_MD5_tfs = {
+   "ENC_RC4_HMAC_MD5 is SET",
+   "ENC_RC4_HMAC_MD5 is NOT SET",
+};
+static const true_false_string netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES128_tfs = {
+   "ENC_HMAC_SHA1_96_AES128 is SET",
+   "ENC_HMAC_SHA1_96_AES128 is NOT SET",
+};
+static const true_false_string netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES256_tfs = {
+   "ENC_HMAC_SHA1_96_AES256 is SET",
+   "ENC_HMAC_SHA1_96_AES256 is NOT SET",
+};
+static int netlogon_dissect_element_netr_DomainInformation_primary_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_trusted_domain_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_trusted_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_trusted_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_trusted_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_lsa_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_dns_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_dummy_string2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_dummy_string3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_dummy_string4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_workstation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_supported_enc_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_dummy_long3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInformation_dummy_long4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInfo_domain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInfo_domain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInfo_lsa_policy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainInfo_lsa_policy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_PASSWORD_VERSION_ReservedField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_CryptPassword_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddress_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddress_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddress_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddress_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_TrustType_vals[] = {
+       { NETR_TRUST_TYPE_DOWNLEVEL, "NETR_TRUST_TYPE_DOWNLEVEL" },
+       { NETR_TRUST_TYPE_UPLEVEL, "NETR_TRUST_TYPE_UPLEVEL" },
+       { NETR_TRUST_TYPE_MIT, "NETR_TRUST_TYPE_MIT" },
+       { NETR_TRUST_TYPE_DCE, "NETR_TRUST_TYPE_DCE" },
+{ 0, NULL }
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE_tfs = {
+   "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE is SET",
+   "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE is NOT SET",
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY_tfs = {
+   "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY is SET",
+   "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY is NOT SET",
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN_tfs = {
+   "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN is SET",
+   "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN is NOT SET",
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE_tfs = {
+   "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE is SET",
+   "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE is NOT SET",
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_tfs = {
+   "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION is SET",
+   "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION is NOT SET",
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_WITHIN_FOREST_tfs = {
+   "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST is SET",
+   "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST is NOT SET",
+};
+static const true_false_string netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL_tfs = {
+   "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL is SET",
+   "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL is NOT SET",
+};
+static int netlogon_dissect_element_netr_DomainTrust_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_trust_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_parent_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_trust_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_trust_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrust_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrustList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrustList_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrustList_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DomainTrustList_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_DcSitesCtr_num_sites(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_DcSitesCtr_sites(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_DcSitesCtr_sites_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_DcSitesCtr_sites__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_entry_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_TrustInfo_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string netlogon_netr_DnsType_vals[] = {
+       { NlDnsLdapAtSite, "NlDnsLdapAtSite" },
+       { NlDnsGcAtSite, "NlDnsGcAtSite" },
+       { NlDnsDsaCname, "NlDnsDsaCname" },
+       { NlDnsKdcAtSite, "NlDnsKdcAtSite" },
+       { NlDnsDcAtSite, "NlDnsDcAtSite" },
+       { NlDnsRfc1510KdcAtSite, "NlDnsRfc1510KdcAtSite" },
+       { NlDnsGenericGcAtSite, "NlDnsGenericGcAtSite" },
+{ 0, NULL }
+};
+const value_string netlogon_netr_DnsDomainInfoType_vals[] = {
+       { NlDnsInfoTypeNone, "NlDnsInfoTypeNone" },
+       { NlDnsDomainName, "NlDnsDomainName" },
+       { NlDnsDomainNameAlias, "NlDnsDomainNameAlias" },
+       { NlDnsForestName, "NlDnsForestName" },
+       { NlDnsForestNameAlias, "NlDnsForestNameAlias" },
+       { NlDnsNdncDomainName, "NlDnsNdncDomainName" },
+       { NlDnsRecordName, "NlDnsRecordName" },
+{ 0, NULL }
+};
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_weight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_dns_register(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogon_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonUasLogoff_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_logon_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_validation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_validation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_authoritative(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogon_authoritative_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogoff_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerReqChallenge_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_new_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet_new_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_database_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_sequence_num_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseDeltas_preferredmaximumlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_database_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_sync_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_sync_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync_preferredmaximumlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_uas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_buffersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_count_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_count_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_recordid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountDeltas_recordid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_reference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_buffersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_count_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_count_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_next_reference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_next_reference_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_recordid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_AccountSync_recordid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_domainname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_dcname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_dcname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetDcName_dcname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl_function_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_domainname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_dcname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_dcname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetAnyDCName_dcname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_function_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_database_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_restart_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_sync_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_sync_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseSync2_preferredmaximumlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_change_log_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_change_log_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_change_log_entry_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_function_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonControl2Ex_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_trusted_domains_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_trusted_domains_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_site_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCName_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_query_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_capabilities(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetCapabilities_capabilities_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetTrustRid_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetTrustRid_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetTrustRid_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetTrustRid_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetTrustRid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetTrustRid_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerAuthenticate3_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetSiteName_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetSiteName_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetSiteName_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetSiteName_site_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetSiteName_site__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonGetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_new_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordSet2_new_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerPasswordGet_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_client_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_client_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetDCNameEx2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_logon_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_validation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_validation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_authoritative(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_authoritative_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonEx_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trust_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trusts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trusts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dsa_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dns_host(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dns_host_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_password2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerTrustPasswordsGet_password2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_authoritative(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_authoritative_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_new_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_new_owf_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_old_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_old_owf_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_samr_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_samr_AcctFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_samr_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_samr_GroupAttrs);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_DeltaEnum8Bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_SamDatabaseID8Bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *account_name; */
+/* IDL:        uint32 priv; */
+/* IDL:        uint32 auth_flags; */
+/* IDL:        uint32 logon_count; */
+/* IDL:        uint32 bad_pw_count; */
+/* IDL:        time_t last_logon; */
+/* IDL:        time_t last_logoff; */
+/* IDL:        time_t logoff_time; */
+/* IDL:        time_t kickoff_time; */
+/* IDL:        uint32 password_age; */
+/* IDL:        time_t pw_can_change; */
+/* IDL:        time_t pw_must_change; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *computer; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *script_path; */
+/* IDL:        uint32 unknown; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_UasInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_UasInfo_account_name_, NDR_POINTER_UNIQUE, "Pointer to Account Name (uint16)",hf_netlogon_netr_UasInfo_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_UasInfo_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_priv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasInfo_priv, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_auth_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasInfo_auth_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasInfo_logon_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_bad_pw_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasInfo_bad_pw_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_UasInfo_last_logon, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_UasInfo_last_logoff, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_UasInfo_logoff_time, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_kickoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_UasInfo_kickoff_time, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasInfo_password_age, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_pw_can_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_UasInfo_pw_can_change, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_pw_must_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_UasInfo_pw_must_change, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_computer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_UasInfo_computer_, NDR_POINTER_UNIQUE, "Pointer to Computer (uint16)",hf_netlogon_netr_UasInfo_computer);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_computer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_UasInfo_computer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_UasInfo_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_UasInfo_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_UasInfo_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_script_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_UasInfo_script_path_, NDR_POINTER_UNIQUE, "Pointer to Script Path (uint16)",hf_netlogon_netr_UasInfo_script_path);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_script_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_UasInfo_script_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasInfo_unknown, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_UasInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_UasInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_UasInfo_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_priv(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_auth_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_bad_pw_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_last_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_last_logoff(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_logoff_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_kickoff_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_password_age(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_pw_can_change(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_pw_must_change(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_computer(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_script_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasInfo_unknown(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 duration; */
+/* IDL:        uint16 logon_count; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_UasLogoffInfo_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasLogoffInfo_duration, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UasLogoffInfo_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UasLogoffInfo_logon_count, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_UasLogoffInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_UasLogoffInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_UasLogoffInfo_duration(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UasLogoffInfo_logon_count(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        dlong lockout_duration; */
+/* IDL:        udlong reset_count; */
+/* IDL:        uint32 bad_attempt_lockout; */
+/* IDL:        uint32 dummy; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_AcctLockStr_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AcctLockStr_lockout_duration, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AcctLockStr_reset_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AcctLockStr_reset_count, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AcctLockStr_bad_attempt_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AcctLockStr_bad_attempt_lockout, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AcctLockStr_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AcctLockStr_dummy, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_AcctLockStr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_AcctLockStr);
+       }
+       
+       offset = netlogon_dissect_element_netr_AcctLockStr_lockout_duration(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_AcctLockStr_reset_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_AcctLockStr_bad_attempt_lockout(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_AcctLockStr_dummy(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        MSV1_0_CLEARTEXT_PASSWORD_ALLOWED =  0x00000002 , */
+/* IDL:        MSV1_0_UPDATE_LOGON_STATISTICS =  0x00000004 , */
+/* IDL:        MSV1_0_RETURN_USER_PARAMETERS =  0x00000008 , */
+/* IDL:        MSV1_0_DONT_TRY_GUEST_ACCOUNT =  0x00000010 , */
+/* IDL:        MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT =  0x00000020 , */
+/* IDL:        MSV1_0_RETURN_PASSWORD_EXPIRY =  0x00000040 , */
+/* IDL:        MSV1_0_USE_CLIENT_CHALLENGE =  0x00000080 , */
+/* IDL:        MSV1_0_TRY_GUEST_ACCOUNT_ONLY =  0x00000100 , */
+/* IDL:        MSV1_0_RETURN_PROFILE_PATH =  0x00000200 , */
+/* IDL:        MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY =  0x00000400 , */
+/* IDL:        MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT =  0x00000800 , */
+/* IDL:        MSV1_0_DISABLE_PERSONAL_FALLBACK =  0x00001000 , */
+/* IDL:        MSV1_0_ALLOW_FORCE_GUEST =  0x00002000 , */
+/* IDL:        MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED =  0x00004000 , */
+/* IDL:        MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY =  0x00008000 , */
+/* IDL:        MSV1_0_ALLOW_MSVCHAPV2 =  0x00010000 , */
+/* IDL:        MSV1_0_S4U2SELF =  0x00020000 , */
+/* IDL:        MSV1_0_CHECK_LOGONHOURS_FOR_S4U =  0x00040000 , */
+/* IDL:        MSV1_0_SUBAUTHENTICATION_DLL_EX =  0x00100000 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_LogonParameterControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_LogonParameterControl);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_UPDATE_LOGON_STATISTICS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "MSV1_0_UPDATE_LOGON_STATISTICS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_USER_PARAMETERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "MSV1_0_RETURN_USER_PARAMETERS");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_DONT_TRY_GUEST_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "MSV1_0_DONT_TRY_GUEST_ACCOUNT");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_PASSWORD_EXPIRY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "MSV1_0_RETURN_PASSWORD_EXPIRY");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_USE_CLIENT_CHALLENGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "MSV1_0_USE_CLIENT_CHALLENGE");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_TRY_GUEST_ACCOUNT_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "MSV1_0_TRY_GUEST_ACCOUNT_ONLY");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_PROFILE_PATH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "MSV1_0_RETURN_PROFILE_PATH");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_DISABLE_PERSONAL_FALLBACK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "MSV1_0_DISABLE_PERSONAL_FALLBACK");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_FORCE_GUEST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "MSV1_0_ALLOW_FORCE_GUEST");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_MSVCHAPV2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "MSV1_0_ALLOW_MSVCHAPV2");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_S4U2SELF, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "MSV1_0_S4U2SELF");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_CHECK_LOGONHOURS_FOR_S4U, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "MSV1_0_CHECK_LOGONHOURS_FOR_S4U");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_LogonParameterControl_MSV1_0_SUBAUTHENTICATION_DLL_EX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "MSV1_0_SUBAUTHENTICATION_DLL_EX");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String domain_name; */
+/* IDL:        netr_LogonParameterControl parameter_control; */
+/* IDL:        uint32 logon_id_low; */
+/* IDL:        uint32 logon_id_high; */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String workstation; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_IdentityInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_IdentityInfo_domain_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_IdentityInfo_parameter_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_LogonParameterControl(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_IdentityInfo_parameter_control, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_IdentityInfo_logon_id_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_IdentityInfo_logon_id_low, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_IdentityInfo_logon_id_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_IdentityInfo_logon_id_high, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_IdentityInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_IdentityInfo_account_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_IdentityInfo_workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_IdentityInfo_workstation,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_IdentityInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_IdentityInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_IdentityInfo_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_IdentityInfo_parameter_control(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_IdentityInfo_logon_id_low(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_IdentityInfo_logon_id_high(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_IdentityInfo_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_IdentityInfo_workstation(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_IdentityInfo identity_info; */
+/* IDL:        samr_Password lmpassword; */
+/* IDL:        samr_Password ntpassword; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_PasswordInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_IdentityInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PasswordInfo_identity_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordInfo_lmpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PasswordInfo_lmpassword,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordInfo_ntpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PasswordInfo_ntpassword,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_PasswordInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_PasswordInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_PasswordInfo_identity_info(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordInfo_lmpassword(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordInfo_ntpassword(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        [value(length)] uint16 size; */
+/* IDL:        [unique(1)] [length_is(length)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_ChallengeResponse_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChallengeResponse_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChallengeResponse_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChallengeResponse_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChallengeResponse_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ChallengeResponse_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_netlogon_netr_ChallengeResponse_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChallengeResponse_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ChallengeResponse_data__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChallengeResponse_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChallengeResponse_data, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_ChallengeResponse);
+       }
+       
+       offset = netlogon_dissect_element_netr_ChallengeResponse_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChallengeResponse_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChallengeResponse_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_IdentityInfo identity_info; */
+/* IDL:        uint8 challenge[8]; */
+/* IDL:        netr_ChallengeResponse nt; */
+/* IDL:        netr_ChallengeResponse lm; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_NetworkInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_IdentityInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_NetworkInfo_identity_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetworkInfo_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = netlogon_dissect_element_netr_NetworkInfo_challenge_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetworkInfo_challenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NetworkInfo_challenge, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetworkInfo_nt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_ChallengeResponse(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_NetworkInfo_nt,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetworkInfo_lm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_ChallengeResponse(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_NetworkInfo_lm,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_NetworkInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_NetworkInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_NetworkInfo_identity_info(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NetworkInfo_challenge(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NetworkInfo_nt(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NetworkInfo_lm(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_IdentityInfo identity_info; */
+/* IDL:        lsa_String package_name; */
+/* IDL:        uint32 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_GenericInfo_identity_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_IdentityInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_GenericInfo_identity_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo_package_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_GenericInfo_package_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GenericInfo_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_netlogon_netr_GenericInfo_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo_data__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GenericInfo_data, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_GenericInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_GenericInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_GenericInfo_identity_info(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_GenericInfo_package_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_GenericInfo_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_GenericInfo_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NetlogonInteractiveInformation=1, */
+/* IDL:        NetlogonNetworkInformation=2, */
+/* IDL:        NetlogonServiceInformation=3, */
+/* IDL:        NetlogonGenericInformation=4, */
+/* IDL:        NetlogonInteractiveTransitiveInformation=5, */
+/* IDL:        NetlogonNetworkTransitiveInformation=6, */
+/* IDL:        NetlogonServiceTransitiveInformation=7, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_LogonInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [public(1)] [switch_type(netr_LogonInfoClass)] union { */
+/* IDL: [case(NetlogonInteractiveInformation)] [unique(1)] [case(NetlogonInteractiveInformation)] netr_PasswordInfo *password; */
+/* IDL: [case(NetlogonNetworkInformation)] [unique(1)] [case(NetlogonNetworkInformation)] netr_NetworkInfo *network; */
+/* IDL: [case(NetlogonServiceInformation)] [unique(1)] [case(NetlogonServiceInformation)] netr_PasswordInfo *password; */
+/* IDL: [case(NetlogonGenericInformation)] [unique(1)] [case(NetlogonGenericInformation)] netr_GenericInfo *generic; */
+/* IDL: [case(NetlogonInteractiveTransitiveInformation)] [unique(1)] [case(NetlogonInteractiveTransitiveInformation)] netr_PasswordInfo *password; */
+/* IDL: [case(NetlogonNetworkTransitiveInformation)] [unique(1)] [case(NetlogonNetworkTransitiveInformation)] netr_NetworkInfo *network; */
+/* IDL: [case(NetlogonServiceTransitiveInformation)] [unique(1)] [case(NetlogonServiceTransitiveInformation)] netr_PasswordInfo *password; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_password_, NDR_POINTER_UNIQUE, "Pointer to Password (netr_PasswordInfo)",hf_netlogon_netr_LogonLevel_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_PasswordInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_network(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_network_, NDR_POINTER_UNIQUE, "Pointer to Network (netr_NetworkInfo)",hf_netlogon_netr_LogonLevel_network);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_network_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_NetworkInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_network,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_password_, NDR_POINTER_UNIQUE, "Pointer to Password (netr_PasswordInfo)",hf_netlogon_netr_LogonLevel_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_PasswordInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_generic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_generic_, NDR_POINTER_UNIQUE, "Pointer to Generic (netr_GenericInfo)",hf_netlogon_netr_LogonLevel_generic);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_generic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_GenericInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_generic,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_password_, NDR_POINTER_UNIQUE, "Pointer to Password (netr_PasswordInfo)",hf_netlogon_netr_LogonLevel_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_PasswordInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_network(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_network_, NDR_POINTER_UNIQUE, "Pointer to Network (netr_NetworkInfo)",hf_netlogon_netr_LogonLevel_network);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_network_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_NetworkInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_network,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonLevel_password_, NDR_POINTER_UNIQUE, "Pointer to Password (netr_PasswordInfo)",hf_netlogon_netr_LogonLevel_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonLevel_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_PasswordInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonLevel_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_LogonLevel");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_LogonLevel);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case NetlogonInteractiveInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_password(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonNetworkInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_network(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonServiceInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_password(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonGenericInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_generic(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonInteractiveTransitiveInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_password(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonNetworkTransitiveInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_network(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonServiceTransitiveInformation:
+                       offset = netlogon_dissect_element_netr_LogonLevel_password(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint8 key[16]; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_UserSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = netlogon_dissect_element_netr_UserSessionKey_key_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UserSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UserSessionKey_key, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_UserSessionKey);
+       }
+       
+       offset = netlogon_dissect_element_netr_UserSessionKey_key(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 key[8]; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_LMSessionKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = netlogon_dissect_element_netr_LMSessionKey_key_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LMSessionKey_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LMSessionKey_key, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_LMSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_LMSessionKey);
+       }
+       
+       offset = netlogon_dissect_element_netr_LMSessionKey_key(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETLOGON_GUEST =  0x00000001 , */
+/* IDL:        NETLOGON_NOENCRYPTION =  0x00000002 , */
+/* IDL:        NETLOGON_CACHED_ACCOUNT =  0x00000004 , */
+/* IDL:        NETLOGON_USED_LM_PASSWORD =  0x00000008 , */
+/* IDL:        NETLOGON_EXTRA_SIDS =  0x00000020 , */
+/* IDL:        NETLOGON_SUBAUTH_SESSION_KEY =  0x00000040 , */
+/* IDL:        NETLOGON_SERVER_TRUST_ACCOUNT =  0x00000080 , */
+/* IDL:        NETLOGON_NTLMV2_ENABLED =  0x00000100 , */
+/* IDL:        NETLOGON_RESOURCE_GROUPS =  0x00000200 , */
+/* IDL:        NETLOGON_PROFILE_PATH_RETURNED =  0x00000400 , */
+/* IDL:        NETLOGON_GRACE_LOGON =  0x01000000 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_UserFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_UserFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_GUEST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETLOGON_GUEST");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_NOENCRYPTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETLOGON_NOENCRYPTION");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_CACHED_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NETLOGON_CACHED_ACCOUNT");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_USED_LM_PASSWORD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NETLOGON_USED_LM_PASSWORD");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_EXTRA_SIDS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NETLOGON_EXTRA_SIDS");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_SUBAUTH_SESSION_KEY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "NETLOGON_SUBAUTH_SESSION_KEY");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_SERVER_TRUST_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "NETLOGON_SERVER_TRUST_ACCOUNT");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_NTLMV2_ENABLED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "NETLOGON_NTLMV2_ENABLED");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_RESOURCE_GROUPS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "NETLOGON_RESOURCE_GROUPS");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_PROFILE_PATH_RETURNED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "NETLOGON_PROFILE_PATH_RETURNED");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_UserFlags_NETLOGON_GRACE_LOGON, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "NETLOGON_GRACE_LOGON");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME logon_time; */
+/* IDL:        NTTIME logoff_time; */
+/* IDL:        NTTIME kickoff_time; */
+/* IDL:        NTTIME last_password_change; */
+/* IDL:        NTTIME allow_password_change; */
+/* IDL:        NTTIME force_password_change; */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL:        lsa_String logon_script; */
+/* IDL:        lsa_String profile_path; */
+/* IDL:        lsa_String home_directory; */
+/* IDL:        lsa_String home_drive; */
+/* IDL:        uint16 logon_count; */
+/* IDL:        uint16 bad_password_count; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 primary_gid; */
+/* IDL:        samr_RidWithAttributeArray groups; */
+/* IDL:        netr_UserFlags user_flags; */
+/* IDL:        netr_UserSessionKey key; */
+/* IDL:        lsa_StringLarge logon_server; */
+/* IDL:        lsa_StringLarge logon_domain; */
+/* IDL:        [unique(1)] dom_sid2 *domain_sid; */
+/* IDL:        netr_LMSessionKey LMSessKey; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL:        uint32 sub_auth_status; */
+/* IDL:        NTTIME last_successful_logon; */
+/* IDL:        NTTIME last_failed_logon; */
+/* IDL:        uint32 failed_logon_count; */
+/* IDL:        uint32 reserved; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_logon_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_logon_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_logoff_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_kickoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_kickoff_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_last_password_change);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_allow_password_change);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_force_password_change);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_account_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_full_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_logon_script,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_profile_path,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_home_directory,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_home_drive,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_logon_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_bad_password_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_primary_gid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_RidWithAttributeArray(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_groups,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_UserFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_user_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UserSessionKey(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_key,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_logon_server,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_logon_domain,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_SamBaseInfo_domain_sid_, NDR_POINTER_UNIQUE, "Pointer to Domain Sid (dom_sid2)",hf_netlogon_netr_SamBaseInfo_domain_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_domain_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_LMSessKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_LMSessionKey(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamBaseInfo_LMSessKey,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_samr_AcctFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_sub_auth_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_sub_auth_status, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_last_successful_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_last_successful_logon);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_last_failed_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_last_failed_logon);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_failed_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_failed_logon_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamBaseInfo_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamBaseInfo_reserved, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_SamBaseInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_SamBaseInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_SamBaseInfo_logon_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_logoff_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_kickoff_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_allow_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_force_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_logon_script(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_profile_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_home_drive(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_bad_password_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_primary_gid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_groups(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_user_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_key(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_logon_server(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_logon_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_domain_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_LMSessKey(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_sub_auth_status(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_last_successful_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_last_failed_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_failed_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamBaseInfo_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_SamBaseInfo base; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_SamInfo2_base(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SamBaseInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo2_base,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_SamInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_SamInfo2);
+       }
+       
+       offset = netlogon_dissect_element_netr_SamInfo2_base(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL:        samr_GroupAttrs attributes; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_SidAttr_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_SidAttr_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_SidAttr_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SidAttr_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SidAttr_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SidAttr_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_samr_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SidAttr_attributes, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_SidAttr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_SidAttr);
+       }
+       
+       offset = netlogon_dissect_element_netr_SidAttr_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SidAttr_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_SamBaseInfo base; */
+/* IDL:        uint32 sidcount; */
+/* IDL:        [unique(1)] [size_is(sidcount)] netr_SidAttr *sids; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_SamInfo3_base(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SamBaseInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo3_base,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo3_sidcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamInfo3_sidcount, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo3_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_SamInfo3_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (netr_SidAttr)",hf_netlogon_netr_SamInfo3_sids);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo3_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_SamInfo3_sids__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo3_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SidAttr(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo3_sids,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_SamInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_SamInfo3);
+       }
+       
+       offset = netlogon_dissect_element_netr_SamInfo3_base(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo3_sidcount(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo3_sids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_SamBaseInfo base; */
+/* IDL:        uint32 sidcount; */
+/* IDL:        [unique(1)] [size_is(sidcount)] netr_SidAttr *sids; */
+/* IDL:        lsa_String dns_domainname; */
+/* IDL:        lsa_String principle; */
+/* IDL:        uint32 unknown4[20]; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_SamInfo6_base(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SamBaseInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo6_base,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_sidcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamInfo6_sidcount, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_SamInfo6_sids_, NDR_POINTER_UNIQUE, "Pointer to Sids (netr_SidAttr)",hf_netlogon_netr_SamInfo6_sids);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_SamInfo6_sids__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_sids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SidAttr(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo6_sids,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_dns_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo6_dns_domainname,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_principle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_SamInfo6_principle,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 20; i++)
+               offset = netlogon_dissect_element_netr_SamInfo6_unknown4_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_SamInfo6_unknown4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_SamInfo6_unknown4, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_SamInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_SamInfo6);
+       }
+       
+       offset = netlogon_dissect_element_netr_SamInfo6_base(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo6_sidcount(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo6_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo6_dns_domainname(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo6_principle(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_SamInfo6_unknown4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 pac_size; */
+/* IDL:        [unique(1)] [size_is(pac_size)] uint8 *pac; */
+/* IDL:        lsa_String logon_domain; */
+/* IDL:        lsa_String logon_server; */
+/* IDL:        lsa_String principal_name; */
+/* IDL:        uint32 auth_size; */
+/* IDL:        [unique(1)] [size_is(auth_size)] uint8 *auth; */
+/* IDL:        netr_UserSessionKey user_session_key; */
+/* IDL:        uint32 expansionroom[10]; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_PacInfo_pac_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_pac_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_pac_, NDR_POINTER_UNIQUE, "Pointer to Pac (uint8)",hf_netlogon_netr_PacInfo_pac);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_pac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_pac__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_pac__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_pac, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_logon_domain,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_logon_server,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_principal_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_principal_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_auth_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_auth_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_auth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_auth_, NDR_POINTER_UNIQUE, "Pointer to Auth (uint8)",hf_netlogon_netr_PacInfo_auth);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_auth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_PacInfo_auth__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_auth__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_auth, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_user_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UserSessionKey(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_user_session_key,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_expansionroom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 10; i++)
+               offset = netlogon_dissect_element_netr_PacInfo_expansionroom_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_expansionroom_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PacInfo_expansionroom, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PacInfo_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_PacInfo_unknown4,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_PacInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_PacInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_PacInfo_pac_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_pac(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_logon_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_logon_server(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_principal_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_auth_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_auth(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_user_session_key(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_expansionroom(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PacInfo_unknown4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_GenericInfo2_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GenericInfo2_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo2_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_netlogon_netr_GenericInfo2_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GenericInfo2_data__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GenericInfo2_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GenericInfo2_data, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_GenericInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_GenericInfo2);
+       }
+       
+       offset = netlogon_dissect_element_netr_GenericInfo2_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_GenericInfo2_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NetlogonValidationUasInfo=1, */
+/* IDL:        NetlogonValidationSamInfo=2, */
+/* IDL:        NetlogonValidationSamInfo2=3, */
+/* IDL:        NetlogonValidationGenericInfo2=5, */
+/* IDL:        NetlogonValidationSamInfo4=6, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_ValidationInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [public(1)] [switch_type(uint16)] union { */
+/* IDL: [case(NetlogonValidationSamInfo)] [unique(1)] [case(NetlogonValidationSamInfo)] netr_SamInfo2 *sam2; */
+/* IDL: [case(NetlogonValidationSamInfo2)] [unique(1)] [case(NetlogonValidationSamInfo2)] netr_SamInfo3 *sam3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] netr_PacInfo *pac; */
+/* IDL: [case(NetlogonValidationGenericInfo2)] [unique(1)] [case(NetlogonValidationGenericInfo2)] netr_GenericInfo2 *generic; */
+/* IDL: [case(NetlogonValidationSamInfo4)] [unique(1)] [case(NetlogonValidationSamInfo4)] netr_SamInfo6 *sam6; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_Validation_sam2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Validation_sam2_, NDR_POINTER_UNIQUE, "Pointer to Sam2 (netr_SamInfo2)",hf_netlogon_netr_Validation_sam2);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_sam2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SamInfo2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_Validation_sam2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_sam3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Validation_sam3_, NDR_POINTER_UNIQUE, "Pointer to Sam3 (netr_SamInfo3)",hf_netlogon_netr_Validation_sam3);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_sam3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SamInfo3(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_Validation_sam3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_pac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Validation_pac_, NDR_POINTER_UNIQUE, "Pointer to Pac (netr_PacInfo)",hf_netlogon_netr_Validation_pac);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_pac_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_PacInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_Validation_pac,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_generic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Validation_generic_, NDR_POINTER_UNIQUE, "Pointer to Generic (netr_GenericInfo2)",hf_netlogon_netr_Validation_generic);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_generic_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_GenericInfo2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_Validation_generic,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_sam6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Validation_sam6_, NDR_POINTER_UNIQUE, "Pointer to Sam6 (netr_SamInfo6)",hf_netlogon_netr_Validation_sam6);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Validation_sam6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_SamInfo6(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_Validation_sam6,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_Validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_Validation");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_Validation);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case NetlogonValidationSamInfo:
+                       offset = netlogon_dissect_element_netr_Validation_sam2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonValidationSamInfo2:
+                       offset = netlogon_dissect_element_netr_Validation_sam3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = netlogon_dissect_element_netr_Validation_pac(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonValidationGenericInfo2:
+                       offset = netlogon_dissect_element_netr_Validation_generic(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NetlogonValidationSamInfo4:
+                       offset = netlogon_dissect_element_netr_Validation_sam6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint8 data[8]; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_Credential_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = netlogon_dissect_element_netr_Credential_data_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Credential_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_Credential_data, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_Credential);
+       }
+       
+       offset = netlogon_dissect_element_netr_Credential_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_Credential cred; */
+/* IDL:        time_t timestamp; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_Authenticator_cred(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_Authenticator_cred,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Authenticator_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_time_t(tvb, offset, pinfo,tree, drep, hf_netlogon_netr_Authenticator_timestamp, NULL);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_Authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_Authenticator);
+       }
+       
+       offset = netlogon_dissect_element_netr_Authenticator_cred(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_Authenticator_timestamp(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_SchannelType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_SamDatabaseID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *account_name; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_DELETE_USER_account_name_, NDR_POINTER_UNIQUE, "Pointer to Account Name (uint16)",hf_netlogon_netr_DELTA_DELETE_USER_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DELTA_DELETE_USER_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DELETE_USER_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DELETE_USER_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DELETE_USER_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DELETE_USER_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DELETE_USER_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DELETE_USER_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DELETE_USER_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DELETE_USER_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_DELETE_USER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_DELETE_USER);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DELETE_USER_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        [value(length)] uint16 size; */
+/* IDL:        uint32 flags; */
+/* IDL:        samr_Password pwd; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_USER_KEY16_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_KEY16_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_KEY16_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_KEY16_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_KEY16_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_KEY16_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_KEY16_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_USER_KEY16_pwd,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_USER_KEY16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_USER_KEY16);
+       }
+       
+       offset = netlogon_dissect_element_netr_USER_KEY16_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_KEY16_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_KEY16_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_KEY16_pwd(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 nt_length; */
+/* IDL:        [value(nt_length)] uint16 nt_size; */
+/* IDL:        uint32 nt_flags; */
+/* IDL:        uint16 lm_length; */
+/* IDL:        [value(lm_length)] uint16 lm_size; */
+/* IDL:        uint32 lm_flags; */
+/* IDL:        uint8 nt_history[nt_length]; */
+/* IDL:        uint8 lm_history[lm_length]; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_nt_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_nt_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_nt_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_nt_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_nt_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_nt_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_lm_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_lm_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_lm_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_lm_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_lm_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_lm_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_nt_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_nt_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_nt_history, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_lm_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_PasswordHistory_lm_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_PasswordHistory_lm_history, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_PasswordHistory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_PasswordHistory);
+       }
+       
+       offset = netlogon_dissect_element_netr_PasswordHistory_nt_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_nt_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_nt_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_lm_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_lm_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_lm_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_nt_history(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_PasswordHistory_lm_history(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_USER_KEY16 lmpassword; */
+/* IDL:        netr_USER_KEY16 ntpassword; */
+/* IDL:        netr_PasswordHistory history; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_USER_KEYS2_lmpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_USER_KEY16(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_USER_KEYS2_lmpassword,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_KEYS2_ntpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_USER_KEY16(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_USER_KEYS2_ntpassword,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_KEYS2_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_PasswordHistory(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_USER_KEYS2_history,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_USER_KEYS2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_USER_KEYS2);
+       }
+       
+       offset = netlogon_dissect_element_netr_USER_KEYS2_lmpassword(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_KEYS2_ntpassword(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_KEYS2_history(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_USER_KEYS2 keys2; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_USER_KEY_UNION_keys2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_USER_KEYS2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_USER_KEY_UNION_keys2,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_USER_KEY_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_USER_KEY_UNION);
+       }
+       
+       offset = netlogon_dissect_element_netr_USER_KEY_UNION_keys2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 version; */
+/* IDL:        netr_USER_KEY_UNION keys; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_USER_KEYS_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_KEYS_version, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_KEYS_keys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_USER_KEY_UNION(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_USER_KEYS_keys,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_USER_KEYS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_USER_KEYS);
+       }
+       
+       offset = netlogon_dissect_element_netr_USER_KEYS_version(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_KEYS_keys(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 SensitiveDataFlag; */
+/* IDL:        uint32 DataLength; */
+/* IDL:        [unique(1)] [flag(LIBNDR_PRINT_ARRAY_HEX)] [size_is(DataLength)] uint8 *SensitiveData; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveDataFlag(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveDataFlag, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_PRIVATE_INFO_DataLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_PRIVATE_INFO_DataLength, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData_, NDR_POINTER_UNIQUE, "Pointer to Sensitivedata (uint8)",hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_USER_PRIVATE_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_USER_PRIVATE_INFO);
+       }
+       
+       offset = netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveDataFlag(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_PRIVATE_INFO_DataLength(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_USER_PRIVATE_INFO_SensitiveData(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 primary_gid; */
+/* IDL:        lsa_String home_directory; */
+/* IDL:        lsa_String home_drive; */
+/* IDL:        lsa_String logon_script; */
+/* IDL:        lsa_String description; */
+/* IDL:        lsa_String workstations; */
+/* IDL:        NTTIME last_logon; */
+/* IDL:        NTTIME last_logoff; */
+/* IDL:        samr_LogonHours logon_hours; */
+/* IDL:        uint16 bad_password_count; */
+/* IDL:        uint16 logon_count; */
+/* IDL:        NTTIME last_password_change; */
+/* IDL:        NTTIME acct_expiry; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL:        samr_Password lmpassword; */
+/* IDL:        samr_Password ntpassword; */
+/* IDL:        uint8 nt_password_present; */
+/* IDL:        uint8 lm_password_present; */
+/* IDL:        uint8 password_expired; */
+/* IDL:        lsa_String comment; */
+/* IDL:        lsa_BinaryString parameters; */
+/* IDL:        uint16 country_code; */
+/* IDL:        uint16 code_page; */
+/* IDL:        netr_USER_PRIVATE_INFO user_private_info; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String profile_path; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_account_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_full_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_primary_gid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_home_directory,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_home_drive,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_logon_script,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_description,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_workstations,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_last_logon);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_last_logoff);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_LogonHours(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_logon_hours,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_bad_password_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_logon_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_last_password_change);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_acct_expiry);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_samr_AcctFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_lmpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_lmpassword,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_ntpassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_ntpassword,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_nt_password_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_nt_password_present, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_lm_password_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_lm_password_present, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_password_expired, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_comment,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_parameters,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_country_code, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_code_page, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_user_private_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_USER_PRIVATE_INFO(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_user_private_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_profile_path,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_USER_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_USER_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_USER_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_USER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_USER);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_USER_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_primary_gid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_home_drive(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_logon_script(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_description(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_workstations(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_last_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_last_logoff(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_logon_hours(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_bad_password_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_acct_expiry(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_lmpassword(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_ntpassword(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_nt_password_present(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_lm_password_present(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_password_expired(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_country_code(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_code_page(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_user_private_info(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_profile_path(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_USER_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String domain_name; */
+/* IDL:        lsa_String oem_information; */
+/* IDL:        dlong force_logoff_time; */
+/* IDL:        uint16 min_password_length; */
+/* IDL:        uint16 password_history_length; */
+/* IDL:        dlong max_password_age; */
+/* IDL:        dlong min_password_age; */
+/* IDL:        udlong sequence_num; */
+/* IDL:        NTTIME domain_create_time; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_BinaryString account_lockout; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 logon_to_chgpass; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_domain_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_oem_information,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_force_logoff_time, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_min_password_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_password_history_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_max_password_age, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_min_password_age, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_sequence_num, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_domain_create_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_account_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_account_lockout,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_DOMAIN_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_logon_to_chgpass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_logon_to_chgpass, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_DOMAIN_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_DOMAIN_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_DOMAIN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_DOMAIN);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_oem_information(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_force_logoff_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_min_password_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_password_history_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_max_password_age(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_min_password_age(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_sequence_num(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_domain_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_account_lockout(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_logon_to_chgpass(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_DOMAIN_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String group_name; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 attributes; */
+/* IDL:        lsa_String description; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_group_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_attributes, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_description,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_GROUP_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_GROUP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_GROUP);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_group_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_description(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String OldName; */
+/* IDL:        lsa_String NewName; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_OldName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_RENAME_OldName,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_NewName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_RENAME_NewName,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_RENAME_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_RENAME_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_RENAME_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_RENAME_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_RENAME_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_RENAME_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_RENAME_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_RENAME_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_RENAME_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_RENAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_RENAME);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_OldName(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_NewName(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_RENAME_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [size_is(num_rids)] uint32 *rids; */
+/* IDL:        [unique(1)] [size_is(num_rids)] uint32 *attribs; */
+/* IDL:        uint32 num_rids; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        uint32 unknown2; */
+/* IDL:        uint32 unknown3; */
+/* IDL:        uint32 unknown4; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (uint32)",hf_netlogon_netr_DELTA_GROUP_MEMBER_rids);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_rids, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs_, NDR_POINTER_UNIQUE, "Pointer to Attribs (uint32)",hf_netlogon_netr_DELTA_GROUP_MEMBER_attribs);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_attribs, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_num_rids, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown1, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown2, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown3, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown4, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_GROUP_MEMBER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_GROUP_MEMBER);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_rids(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_attribs(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_num_rids(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_GROUP_MEMBER_unknown4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String alias_name; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String description; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_alias_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_description,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_ALIAS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_ALIAS);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_alias_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_description(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_SidArray sids; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        uint32 unknown2; */
+/* IDL:        uint32 unknown3; */
+/* IDL:        uint32 unknown4; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ALIAS_MEMBER_sids,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown1, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown2, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown3, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown4, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_ALIAS_MEMBER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_ALIAS_MEMBER);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_sids(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ALIAS_MEMBER_unknown4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 pagedpoollimit; */
+/* IDL:        uint32 nonpagedpoollimit; */
+/* IDL:        uint32 minimumworkingsetsize; */
+/* IDL:        uint32 maximumworkingsetsize; */
+/* IDL:        uint32 pagefilelimit; */
+/* IDL:        NTTIME timelimit; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_QUOTA_LIMITS_pagedpoollimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_QUOTA_LIMITS_pagedpoollimit, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_QUOTA_LIMITS_nonpagedpoollimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_QUOTA_LIMITS_nonpagedpoollimit, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_QUOTA_LIMITS_minimumworkingsetsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_QUOTA_LIMITS_minimumworkingsetsize, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_QUOTA_LIMITS_maximumworkingsetsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_QUOTA_LIMITS_maximumworkingsetsize, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_QUOTA_LIMITS_pagefilelimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_QUOTA_LIMITS_pagefilelimit, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_QUOTA_LIMITS_timelimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_QUOTA_LIMITS_timelimit);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_QUOTA_LIMITS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_QUOTA_LIMITS);
+       }
+       
+       offset = netlogon_dissect_element_netr_QUOTA_LIMITS_pagedpoollimit(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_QUOTA_LIMITS_nonpagedpoollimit(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_QUOTA_LIMITS_minimumworkingsetsize(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_QUOTA_LIMITS_maximumworkingsetsize(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_QUOTA_LIMITS_pagefilelimit(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_QUOTA_LIMITS_timelimit(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxlogsize; */
+/* IDL:        NTTIME auditretentionperiod; */
+/* IDL:        uint8 auditingmode; */
+/* IDL:        uint32 maxauditeventcount; */
+/* IDL:        [unique(1)] [size_is(maxauditeventcount+1)] uint32 *eventauditoptions; */
+/* IDL:        lsa_String primary_domain_name; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL:        netr_QUOTA_LIMITS quota_limits; */
+/* IDL:        udlong sequence_num; */
+/* IDL:        NTTIME db_create_time; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_maxlogsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_maxlogsize, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_auditretentionperiod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_auditretentionperiod);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_auditingmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_auditingmode, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_maxauditeventcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_maxauditeventcount, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions_, NDR_POINTER_UNIQUE, "Pointer to Eventauditoptions (uint32)",hf_netlogon_netr_DELTA_POLICY_eventauditoptions);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_eventauditoptions, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_primary_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_primary_domain_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_POLICY_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DELTA_POLICY_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_quota_limits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_QUOTA_LIMITS(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_quota_limits,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_sequence_num, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_db_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_db_create_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_POLICY_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_POLICY_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_POLICY_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_POLICY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_POLICY);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_maxlogsize(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_auditretentionperiod(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_auditingmode(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_maxauditeventcount(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_eventauditoptions(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_primary_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_quota_limits(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_sequence_num(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_db_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_POLICY_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String domain_name; */
+/* IDL:        uint32 num_controllers; */
+/* IDL:        [unique(1)] [size_is(num_controllers)] lsa_String *controller_names; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 posix_offset; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_domain_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_num_controllers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_num_controllers, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names_, NDR_POINTER_UNIQUE, "Pointer to Controller Names (lsa_String)",hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_controller_names);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_controller_names,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_posix_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_posix_offset, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_TRUSTED_DOMAIN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_TRUSTED_DOMAIN);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_num_controllers(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_controller_names(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_posix_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_TRUSTED_DOMAIN_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 privilege_entries; */
+/* IDL:        uint32 privilege_control; */
+/* IDL:        [unique(1)] [size_is(privilege_entries)] uint32 *privilege_attrib; */
+/* IDL:        [unique(1)] [size_is(privilege_entries)] lsa_String *privilege_name; */
+/* IDL:        netr_QUOTA_LIMITS quotalimits; */
+/* IDL:        uint32 system_flags; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_privilege_entries, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_privilege_control, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib_, NDR_POINTER_UNIQUE, "Pointer to Privilege Attrib (uint32)",hf_netlogon_netr_DELTA_ACCOUNT_privilege_attrib);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_privilege_attrib, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name_, NDR_POINTER_UNIQUE, "Pointer to Privilege Name (lsa_String)",hf_netlogon_netr_DELTA_ACCOUNT_privilege_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_privilege_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_quotalimits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_QUOTA_LIMITS(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_quotalimits,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_system_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_system_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ACCOUNT_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ACCOUNT_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_ACCOUNT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_ACCOUNT);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_entries(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_control(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_attrib(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_privilege_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_quotalimits(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_system_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ACCOUNT_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 len; */
+/* IDL:        uint32 maxlen; */
+/* IDL:        [unique(1)] [length_is(len)] [size_is(maxlen)] uint8 *cipher_data; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_CIPHER_VALUE_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CIPHER_VALUE_len, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CIPHER_VALUE_maxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CIPHER_VALUE_maxlen, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data_, NDR_POINTER_UNIQUE, "Pointer to Cipher Data (uint8)",hf_netlogon_netr_CIPHER_VALUE_cipher_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CIPHER_VALUE_cipher_data, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_CIPHER_VALUE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_CIPHER_VALUE);
+       }
+       
+       offset = netlogon_dissect_element_netr_CIPHER_VALUE_len(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_CIPHER_VALUE_maxlen(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_CIPHER_VALUE_cipher_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_CIPHER_VALUE current_cipher; */
+/* IDL:        NTTIME current_cipher_set_time; */
+/* IDL:        netr_CIPHER_VALUE old_cipher; */
+/* IDL:        NTTIME old_cipher_set_time; */
+/* IDL:        uint32 SecurityInformation; */
+/* IDL:        sec_desc_buf sdbuf; */
+/* IDL:        lsa_String unknown1; */
+/* IDL:        lsa_String unknown2; */
+/* IDL:        lsa_String unknown3; */
+/* IDL:        lsa_String unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL:        uint32 unknown6; */
+/* IDL:        uint32 unknown7; */
+/* IDL:        uint32 unknown8; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_current_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_CIPHER_VALUE(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_current_cipher,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_current_cipher_set_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_current_cipher_set_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_old_cipher(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_CIPHER_VALUE(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_old_cipher,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_old_cipher_set_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_old_cipher_set_time);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_SecurityInformation, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_sdbuf,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_unknown1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_unknown2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_unknown3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_SECRET_unknown4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_unknown5, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_unknown6, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_unknown7, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_SECRET_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_SECRET_unknown8, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_SECRET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_SECRET);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_current_cipher(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_current_cipher_set_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_old_cipher(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_old_cipher_set_time(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_SecurityInformation(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_sdbuf(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_SECRET_unknown8(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NETR_DELTA_DOMAIN=1, */
+/* IDL:        NETR_DELTA_GROUP=2, */
+/* IDL:        NETR_DELTA_DELETE_GROUP=3, */
+/* IDL:        NETR_DELTA_RENAME_GROUP=4, */
+/* IDL:        NETR_DELTA_USER=5, */
+/* IDL:        NETR_DELTA_DELETE_USER=6, */
+/* IDL:        NETR_DELTA_RENAME_USER=7, */
+/* IDL:        NETR_DELTA_GROUP_MEMBER=8, */
+/* IDL:        NETR_DELTA_ALIAS=9, */
+/* IDL:        NETR_DELTA_DELETE_ALIAS=10, */
+/* IDL:        NETR_DELTA_RENAME_ALIAS=11, */
+/* IDL:        NETR_DELTA_ALIAS_MEMBER=12, */
+/* IDL:        NETR_DELTA_POLICY=13, */
+/* IDL:        NETR_DELTA_TRUSTED_DOMAIN=14, */
+/* IDL:        NETR_DELTA_DELETE_TRUST=15, */
+/* IDL:        NETR_DELTA_ACCOUNT=16, */
+/* IDL:        NETR_DELTA_DELETE_ACCOUNT=17, */
+/* IDL:        NETR_DELTA_SECRET=18, */
+/* IDL:        NETR_DELTA_DELETE_SECRET=19, */
+/* IDL:        NETR_DELTA_DELETE_GROUP2=20, */
+/* IDL:        NETR_DELTA_DELETE_USER2=21, */
+/* IDL:        NETR_DELTA_MODIFY_COUNT=22, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_DeltaEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(netr_DeltaEnum)] union { */
+/* IDL: [case(NETR_DELTA_DOMAIN)] [unique(1)] [case(NETR_DELTA_DOMAIN)] netr_DELTA_DOMAIN *domain; */
+/* IDL: [case(NETR_DELTA_GROUP)] [unique(1)] [case(NETR_DELTA_GROUP)] netr_DELTA_GROUP *group; */
+/* IDL: [case(NETR_DELTA_DELETE_GROUP)] [case(NETR_DELTA_DELETE_GROUP)] EMPTY ; */
+/* IDL: [case(NETR_DELTA_RENAME_GROUP)] [unique(1)] [case(NETR_DELTA_RENAME_GROUP)] netr_DELTA_RENAME *rename_group; */
+/* IDL: [case(NETR_DELTA_USER)] [unique(1)] [case(NETR_DELTA_USER)] netr_DELTA_USER *user; */
+/* IDL: [case(NETR_DELTA_DELETE_USER)] [case(NETR_DELTA_DELETE_USER)] EMPTY ; */
+/* IDL: [case(NETR_DELTA_RENAME_USER)] [unique(1)] [case(NETR_DELTA_RENAME_USER)] netr_DELTA_RENAME *rename_user; */
+/* IDL: [case(NETR_DELTA_GROUP_MEMBER)] [unique(1)] [case(NETR_DELTA_GROUP_MEMBER)] netr_DELTA_GROUP_MEMBER *group_member; */
+/* IDL: [case(NETR_DELTA_ALIAS)] [unique(1)] [case(NETR_DELTA_ALIAS)] netr_DELTA_ALIAS *alias; */
+/* IDL: [case(NETR_DELTA_DELETE_ALIAS)] [case(NETR_DELTA_DELETE_ALIAS)] EMPTY ; */
+/* IDL: [case(NETR_DELTA_RENAME_ALIAS)] [unique(1)] [case(NETR_DELTA_RENAME_ALIAS)] netr_DELTA_RENAME *rename_alias; */
+/* IDL: [case(NETR_DELTA_ALIAS_MEMBER)] [unique(1)] [case(NETR_DELTA_ALIAS_MEMBER)] netr_DELTA_ALIAS_MEMBER *alias_member; */
+/* IDL: [case(NETR_DELTA_POLICY)] [unique(1)] [case(NETR_DELTA_POLICY)] netr_DELTA_POLICY *policy; */
+/* IDL: [case(NETR_DELTA_TRUSTED_DOMAIN)] [unique(1)] [case(NETR_DELTA_TRUSTED_DOMAIN)] netr_DELTA_TRUSTED_DOMAIN *trusted_domain; */
+/* IDL: [case(NETR_DELTA_DELETE_TRUST)] [case(NETR_DELTA_DELETE_TRUST)] EMPTY ; */
+/* IDL: [case(NETR_DELTA_ACCOUNT)] [unique(1)] [case(NETR_DELTA_ACCOUNT)] netr_DELTA_ACCOUNT *account; */
+/* IDL: [case(NETR_DELTA_DELETE_ACCOUNT)] [case(NETR_DELTA_DELETE_ACCOUNT)] EMPTY ; */
+/* IDL: [case(NETR_DELTA_SECRET)] [unique(1)] [case(NETR_DELTA_SECRET)] netr_DELTA_SECRET *secret; */
+/* IDL: [case(NETR_DELTA_DELETE_SECRET)] [case(NETR_DELTA_DELETE_SECRET)] EMPTY ; */
+/* IDL: [case(NETR_DELTA_DELETE_GROUP2)] [unique(1)] [case(NETR_DELTA_DELETE_GROUP2)] netr_DELTA_DELETE_USER *delete_group; */
+/* IDL: [case(NETR_DELTA_DELETE_USER2)] [unique(1)] [case(NETR_DELTA_DELETE_USER2)] netr_DELTA_DELETE_USER *delete_user; */
+/* IDL: [case(NETR_DELTA_MODIFY_COUNT)] [unique(1)] [case(NETR_DELTA_MODIFY_COUNT)] udlong *modified_count; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (netr_DELTA_DOMAIN)",hf_netlogon_netr_DELTA_UNION_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_DOMAIN(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_domain,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_group_, NDR_POINTER_UNIQUE, "Pointer to Group (netr_DELTA_GROUP)",hf_netlogon_netr_DELTA_UNION_group);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_GROUP(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_group,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_rename_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_rename_group_, NDR_POINTER_UNIQUE, "Pointer to Rename Group (netr_DELTA_RENAME)",hf_netlogon_netr_DELTA_UNION_rename_group);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_rename_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_RENAME(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_rename_group,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_user_, NDR_POINTER_UNIQUE, "Pointer to User (netr_DELTA_USER)",hf_netlogon_netr_DELTA_UNION_user);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_USER(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_user,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_rename_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_rename_user_, NDR_POINTER_UNIQUE, "Pointer to Rename User (netr_DELTA_RENAME)",hf_netlogon_netr_DELTA_UNION_rename_user);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_rename_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_RENAME(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_rename_user,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_group_member(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_group_member_, NDR_POINTER_UNIQUE, "Pointer to Group Member (netr_DELTA_GROUP_MEMBER)",hf_netlogon_netr_DELTA_UNION_group_member);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_group_member_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_GROUP_MEMBER(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_group_member,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_alias_, NDR_POINTER_UNIQUE, "Pointer to Alias (netr_DELTA_ALIAS)",hf_netlogon_netr_DELTA_UNION_alias);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_alias_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ALIAS(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_alias,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_rename_alias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_rename_alias_, NDR_POINTER_UNIQUE, "Pointer to Rename Alias (netr_DELTA_RENAME)",hf_netlogon_netr_DELTA_UNION_rename_alias);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_rename_alias_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_RENAME(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_rename_alias,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_alias_member(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_alias_member_, NDR_POINTER_UNIQUE, "Pointer to Alias Member (netr_DELTA_ALIAS_MEMBER)",hf_netlogon_netr_DELTA_UNION_alias_member);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_alias_member_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ALIAS_MEMBER(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_alias_member,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_policy_, NDR_POINTER_UNIQUE, "Pointer to Policy (netr_DELTA_POLICY)",hf_netlogon_netr_DELTA_UNION_policy);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_POLICY(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_policy,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_trusted_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_trusted_domain_, NDR_POINTER_UNIQUE, "Pointer to Trusted Domain (netr_DELTA_TRUSTED_DOMAIN)",hf_netlogon_netr_DELTA_UNION_trusted_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_trusted_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_TRUSTED_DOMAIN(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_trusted_domain,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_account_, NDR_POINTER_UNIQUE, "Pointer to Account (netr_DELTA_ACCOUNT)",hf_netlogon_netr_DELTA_UNION_account);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ACCOUNT(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_account,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_secret(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_secret_, NDR_POINTER_UNIQUE, "Pointer to Secret (netr_DELTA_SECRET)",hf_netlogon_netr_DELTA_UNION_secret);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_secret_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_SECRET(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_secret,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_delete_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_delete_group_, NDR_POINTER_UNIQUE, "Pointer to Delete Group (netr_DELTA_DELETE_USER)",hf_netlogon_netr_DELTA_UNION_delete_group);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_delete_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_DELETE_USER(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_delete_group,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_delete_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_delete_user_, NDR_POINTER_UNIQUE, "Pointer to Delete User (netr_DELTA_DELETE_USER)",hf_netlogon_netr_DELTA_UNION_delete_user);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_delete_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_DELETE_USER(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_UNION_delete_user,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_modified_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_UNION_modified_count_, NDR_POINTER_UNIQUE, "Pointer to Modified Count (udlong)",hf_netlogon_netr_DELTA_UNION_modified_count);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_UNION_modified_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_UNION_modified_count, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DELTA_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_DELTA_UNION");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_UNION);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case NETR_DELTA_DOMAIN:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_GROUP:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_group(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_GROUP:
+               break;
+
+               case NETR_DELTA_RENAME_GROUP:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_rename_group(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_USER:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_user(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_USER:
+               break;
+
+               case NETR_DELTA_RENAME_USER:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_rename_user(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_GROUP_MEMBER:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_group_member(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_ALIAS:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_alias(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_ALIAS:
+               break;
+
+               case NETR_DELTA_RENAME_ALIAS:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_rename_alias(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_ALIAS_MEMBER:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_alias_member(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_POLICY:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_policy(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_TRUSTED_DOMAIN:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_trusted_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_TRUST:
+               break;
+
+               case NETR_DELTA_ACCOUNT:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_account(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_ACCOUNT:
+               break;
+
+               case NETR_DELTA_SECRET:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_secret(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_SECRET:
+               break;
+
+               case NETR_DELTA_DELETE_GROUP2:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_delete_group(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_USER2:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_delete_user(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_MODIFY_COUNT:
+                       offset = netlogon_dissect_element_netr_DELTA_UNION_modified_count(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: [switch_type(netr_DeltaEnum)] union { */
+/* IDL: [case(NETR_DELTA_DOMAIN)] [case(NETR_DELTA_DOMAIN)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_GROUP)] [case(NETR_DELTA_GROUP)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_DELETE_GROUP)] [case(NETR_DELTA_DELETE_GROUP)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_RENAME_GROUP)] [case(NETR_DELTA_RENAME_GROUP)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_USER)] [case(NETR_DELTA_USER)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_DELETE_USER)] [case(NETR_DELTA_DELETE_USER)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_RENAME_USER)] [case(NETR_DELTA_RENAME_USER)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_GROUP_MEMBER)] [case(NETR_DELTA_GROUP_MEMBER)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_ALIAS)] [case(NETR_DELTA_ALIAS)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_DELETE_ALIAS)] [case(NETR_DELTA_DELETE_ALIAS)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_RENAME_ALIAS)] [case(NETR_DELTA_RENAME_ALIAS)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_ALIAS_MEMBER)] [case(NETR_DELTA_ALIAS_MEMBER)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_POLICY)] [unique(1)] [case(NETR_DELTA_POLICY)] dom_sid2 *sid; */
+/* IDL: [case(NETR_DELTA_TRUSTED_DOMAIN)] [unique(1)] [case(NETR_DELTA_TRUSTED_DOMAIN)] dom_sid2 *sid; */
+/* IDL: [case(NETR_DELTA_DELETE_TRUST)] [unique(1)] [case(NETR_DELTA_DELETE_TRUST)] dom_sid2 *sid; */
+/* IDL: [case(NETR_DELTA_ACCOUNT)] [unique(1)] [case(NETR_DELTA_ACCOUNT)] dom_sid2 *sid; */
+/* IDL: [case(NETR_DELTA_DELETE_ACCOUNT)] [unique(1)] [case(NETR_DELTA_DELETE_ACCOUNT)] dom_sid2 *sid; */
+/* IDL: [case(NETR_DELTA_SECRET)] [unique(1)] [charset(UTF16)] [case(NETR_DELTA_SECRET)] uint16 *name; */
+/* IDL: [case(NETR_DELTA_DELETE_SECRET)] [unique(1)] [charset(UTF16)] [case(NETR_DELTA_DELETE_SECRET)] uint16 *name; */
+/* IDL: [case(NETR_DELTA_DELETE_GROUP2)] [case(NETR_DELTA_DELETE_GROUP2)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_DELETE_USER2)] [case(NETR_DELTA_DELETE_USER2)] uint32 rid; */
+/* IDL: [case(NETR_DELTA_MODIFY_COUNT)] [case(NETR_DELTA_MODIFY_COUNT)] EMPTY ; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DELTA_ID_UNION_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ID_UNION_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DELTA_ID_UNION_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ID_UNION_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DELTA_ID_UNION_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ID_UNION_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DELTA_ID_UNION_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ID_UNION_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DELTA_ID_UNION_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ID_UNION_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_netlogon_netr_DELTA_ID_UNION_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DELTA_ID_UNION_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ID_UNION_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_netlogon_netr_DELTA_ID_UNION_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DELTA_ID_UNION_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ID_UNION_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DELTA_ID_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_DELTA_ID_UNION");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_ID_UNION);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case NETR_DELTA_DOMAIN:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_GROUP:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_GROUP:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_RENAME_GROUP:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_USER:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_USER:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_RENAME_USER:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_GROUP_MEMBER:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_ALIAS:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_ALIAS:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_RENAME_ALIAS:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_ALIAS_MEMBER:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_POLICY:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_TRUSTED_DOMAIN:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_TRUST:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_ACCOUNT:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_ACCOUNT:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_sid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_SECRET:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_SECRET:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_GROUP2:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_DELETE_USER2:
+                       offset = netlogon_dissect_element_netr_DELTA_ID_UNION_rid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_DELTA_MODIFY_COUNT:
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        netr_DeltaEnum delta_type; */
+/* IDL:        [switch_is(delta_type)] netr_DELTA_ID_UNION delta_id_union; */
+/* IDL:        [switch_is(delta_type)] netr_DELTA_UNION delta_union; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_delta_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *delta_type)
+{
+       offset = netlogon_dissect_enum_netr_DeltaEnum(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ENUM_delta_type, delta_type);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_delta_id_union(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *delta_type)
+{
+       offset = netlogon_dissect_netr_DELTA_ID_UNION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ENUM_delta_id_union, *delta_type);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_delta_union(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *delta_type)
+{
+       offset = netlogon_dissect_netr_DELTA_UNION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ENUM_delta_union, *delta_type);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 delta_type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_ENUM);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_ENUM_delta_type(tvb, offset, pinfo, tree, drep, &delta_type);
+
+       offset = netlogon_dissect_element_netr_DELTA_ENUM_delta_id_union(tvb, offset, pinfo, tree, drep, &delta_type);
+
+       offset = netlogon_dissect_element_netr_DELTA_ENUM_delta_union(tvb, offset, pinfo, tree, drep, &delta_type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_deltas; */
+/* IDL:        [unique(1)] [size_is(num_deltas)] netr_DELTA_ENUM *delta_enum; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_num_deltas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DELTA_ENUM_ARRAY_num_deltas, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum_, NDR_POINTER_UNIQUE, "Pointer to Delta Enum (netr_DELTA_ENUM)",hf_netlogon_netr_DELTA_ENUM_ARRAY_delta_enum);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ENUM(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DELTA_ENUM_ARRAY_delta_enum,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DELTA_ENUM_ARRAY);
+       }
+       
+       offset = netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_num_deltas(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DELTA_ENUM_ARRAY_delta_enum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 computer_name[16]; */
+/* IDL:        uint32 timecreated; */
+/* IDL:        uint32 serial_number; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_UAS_INFO_0_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UAS_INFO_0_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UAS_INFO_0_computer_name, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UAS_INFO_0_timecreated(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UAS_INFO_0_timecreated, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_UAS_INFO_0_serial_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_UAS_INFO_0_serial_number, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_UAS_INFO_0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_UAS_INFO_0);
+       }
+       
+       offset = netlogon_dissect_element_netr_UAS_INFO_0_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UAS_INFO_0_timecreated(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_UAS_INFO_0_serial_number(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB blob; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_AccountBuffer_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountBuffer_blob, 1);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_AccountBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_AccountBuffer);
+       }
+       
+       offset = netlogon_dissect_element_netr_AccountBuffer_blob(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETLOGON_REPLICATION_NEEDED =  0x00000001 , */
+/* IDL:        NETLOGON_REPLICATION_IN_PROGRESS =  0x00000002 , */
+/* IDL:        NETLOGON_FULL_SYNC_REPLICATION =  0x00000004 , */
+/* IDL:        NETLOGON_REDO_NEEDED =  0x00000008 , */
+/* IDL:        NETLOGON_HAS_IP =  0x00000010 , */
+/* IDL:        NETLOGON_HAS_TIMESERV =  0x00000020 , */
+/* IDL:        NETLOGON_DNS_UPDATE_FAILURE =  0x00000040 , */
+/* IDL:        NETLOGON_VERIFY_STATUS_RETURNED =  0x00000080 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_InfoFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_InfoFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_REPLICATION_NEEDED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETLOGON_REPLICATION_NEEDED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_REPLICATION_IN_PROGRESS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETLOGON_REPLICATION_IN_PROGRESS");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_FULL_SYNC_REPLICATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NETLOGON_FULL_SYNC_REPLICATION");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_REDO_NEEDED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NETLOGON_REDO_NEEDED");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_HAS_IP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NETLOGON_HAS_IP");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_HAS_TIMESERV, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NETLOGON_HAS_TIMESERV");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_DNS_UPDATE_FAILURE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "NETLOGON_DNS_UPDATE_FAILURE");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_InfoFlags_NETLOGON_VERIFY_STATUS_RETURNED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "NETLOGON_VERIFY_STATUS_RETURNED");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_InfoFlags flags; */
+/* IDL:        WERROR pdc_connection_status; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_InfoFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_1_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_1_pdc_connection_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_1_pdc_connection_status, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_NETLOGON_INFO_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_NETLOGON_INFO_1);
+       }
+       
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_1_pdc_connection_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_InfoFlags flags; */
+/* IDL:        WERROR pdc_connection_status; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *trusted_dc_name; */
+/* IDL:        WERROR tc_connection_status; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_InfoFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_2_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_2_pdc_connection_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_2_pdc_connection_status, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_2_trusted_dc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NETLOGON_INFO_2_trusted_dc_name_, NDR_POINTER_UNIQUE, "Pointer to Trusted Dc Name (uint16)",hf_netlogon_netr_NETLOGON_INFO_2_trusted_dc_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_2_trusted_dc_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_NETLOGON_INFO_2_trusted_dc_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_2_tc_connection_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_2_tc_connection_status, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_NETLOGON_INFO_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_NETLOGON_INFO_2);
+       }
+       
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_2_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_2_pdc_connection_status(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_2_trusted_dc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_2_tc_connection_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_InfoFlags flags; */
+/* IDL:        uint32 logon_attempts; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        uint32 unknown2; */
+/* IDL:        uint32 unknown3; */
+/* IDL:        uint32 unknown4; */
+/* IDL:        uint32 unknown5; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_InfoFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_logon_attempts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_logon_attempts, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_unknown1, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_unknown2, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_unknown3, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_unknown4, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_NETLOGON_INFO_3_unknown5, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_NETLOGON_INFO_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_NETLOGON_INFO_3);
+       }
+       
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_logon_attempts(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_3_unknown5(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *trusted_dc_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *trusted_domain_name; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_dc_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_dc_name_, NDR_POINTER_UNIQUE, "Pointer to Trusted Dc Name (uint16)",hf_netlogon_netr_NETLOGON_INFO_4_trusted_dc_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_dc_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_NETLOGON_INFO_4_trusted_dc_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Trusted Domain Name (uint16)",hf_netlogon_netr_NETLOGON_INFO_4_trusted_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_NETLOGON_INFO_4_trusted_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_NETLOGON_INFO_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_NETLOGON_INFO_4);
+       }
+       
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_dc_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_NETLOGON_INFO_4_trusted_domain_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] netr_NETLOGON_INFO_1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] netr_NETLOGON_INFO_2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] netr_NETLOGON_INFO_3 *info3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] netr_NETLOGON_INFO_4 *info4; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (netr_NETLOGON_INFO_1)",hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info1);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_NETLOGON_INFO_1(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info1,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (netr_NETLOGON_INFO_2)",hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info2);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_NETLOGON_INFO_2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (netr_NETLOGON_INFO_3)",hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info3);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_NETLOGON_INFO_3(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (netr_NETLOGON_INFO_4)",hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info4);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_NETLOGON_INFO_4(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_CONTROL_QUERY_INFORMATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_CONTROL_QUERY_INFORMATION");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_CONTROL_QUERY_INFORMATION);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = netlogon_dissect_element_netr_CONTROL_QUERY_INFORMATION_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        NETLOGON_CONTROL_QUERY=0x00000001, */
+/* IDL:        NETLOGON_CONTROL_REPLICATE=0x00000002, */
+/* IDL:        NETLOGON_CONTROL_SYNCHRONIZE=0x00000003, */
+/* IDL:        NETLOGON_CONTROL_PDC_REPLICATE=0x00000004, */
+/* IDL:        NETLOGON_CONTROL_REDISCOVER=0x00000005, */
+/* IDL:        NETLOGON_CONTROL_TC_QUERY=0x00000006, */
+/* IDL:        NETLOGON_CONTROL_TRANSPORT_NOTIFY=0x00000007, */
+/* IDL:        NETLOGON_CONTROL_FIND_USER=0x00000008, */
+/* IDL:        NETLOGON_CONTROL_CHANGE_PASSWORD=0x00000009, */
+/* IDL:        NETLOGON_CONTROL_TC_VERIFY=0x0000000A, */
+/* IDL:        NETLOGON_CONTROL_FORCE_DNS_REG=0x0000000B, */
+/* IDL:        NETLOGON_CONTROL_QUERY_DNS_REG=0x0000000C, */
+/* IDL:        NETLOGON_CONTROL_BACKUP_CHANGE_LOG=0x0000FFFC, */
+/* IDL:        NETLOGON_CONTROL_TRUNCATE_LOG=0x0000FFFD, */
+/* IDL:        NETLOGON_CONTROL_SET_DBFLAG=0x0000FFFE, */
+/* IDL:        NETLOGON_CONTROL_BREAKPOINT=0x0000FFFF, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_LogonControlCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(NETLOGON_CONTROL_REDISCOVER)] [unique(1)] [charset(UTF16)] [case(NETLOGON_CONTROL_REDISCOVER)] uint16 *domain; */
+/* IDL: [case(NETLOGON_CONTROL_TC_QUERY)] [unique(1)] [charset(UTF16)] [case(NETLOGON_CONTROL_TC_QUERY)] uint16 *domain; */
+/* IDL: [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY)] [unique(1)] [charset(UTF16)] [case(NETLOGON_CONTROL_TRANSPORT_NOTIFY)] uint16 *domain; */
+/* IDL: [case(NETLOGON_CONTROL_CHANGE_PASSWORD)] [unique(1)] [charset(UTF16)] [case(NETLOGON_CONTROL_CHANGE_PASSWORD)] uint16 *domain; */
+/* IDL: [case(NETLOGON_CONTROL_TC_VERIFY)] [unique(1)] [charset(UTF16)] [case(NETLOGON_CONTROL_TC_VERIFY)] uint16 *domain; */
+/* IDL: [case(NETLOGON_CONTROL_FIND_USER)] [unique(1)] [charset(UTF16)] [case(NETLOGON_CONTROL_FIND_USER)] uint16 *user; */
+/* IDL: [case(NETLOGON_CONTROL_SET_DBFLAG)] [case(NETLOGON_CONTROL_SET_DBFLAG)] uint32 debug_level; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_netlogon_netr_CONTROL_DATA_INFORMATION_user);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_CONTROL_DATA_INFORMATION_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_debug_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CONTROL_DATA_INFORMATION_debug_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_CONTROL_DATA_INFORMATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_CONTROL_DATA_INFORMATION");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_CONTROL_DATA_INFORMATION);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case NETLOGON_CONTROL_REDISCOVER:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_CONTROL_TC_QUERY:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_CONTROL_CHANGE_PASSWORD:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_CONTROL_TC_VERIFY:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_domain(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_CONTROL_FIND_USER:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_user(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETLOGON_CONTROL_SET_DBFLAG:
+                       offset = netlogon_dissect_element_netr_CONTROL_DATA_INFORMATION_debug_level(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        NETLOGON_NEG_ACCOUNT_LOCKOUT =  0x00000001 , */
+/* IDL:        NETLOGON_NEG_PERSISTENT_SAMREPL =  0x00000002 , */
+/* IDL:        NETLOGON_NEG_ARCFOUR =  0x00000004 , */
+/* IDL:        NETLOGON_NEG_PROMOTION_COUNT =  0x00000008 , */
+/* IDL:        NETLOGON_NEG_CHANGELOG_BDC =  0x00000010 , */
+/* IDL:        NETLOGON_NEG_FULL_SYNC_REPL =  0x00000020 , */
+/* IDL:        NETLOGON_NEG_MULTIPLE_SIDS =  0x00000040 , */
+/* IDL:        NETLOGON_NEG_REDO =  0x00000080 , */
+/* IDL:        NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL =  0x00000100 , */
+/* IDL:        NETLOGON_NEG_SEND_PASSWORD_INFO_PDC =  0x00000200 , */
+/* IDL:        NETLOGON_NEG_GENERIC_PASSTHROUGH =  0x00000400 , */
+/* IDL:        NETLOGON_NEG_CONCURRENT_RPC =  0x00000800 , */
+/* IDL:        NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL =  0x00001000 , */
+/* IDL:        NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL =  0x00002000 , */
+/* IDL:        NETLOGON_NEG_STRONG_KEYS =  0x00004000 , */
+/* IDL:        NETLOGON_NEG_TRANSITIVE_TRUSTS =  0x00008000 , */
+/* IDL:        NETLOGON_NEG_DNS_DOMAIN_TRUSTS =  0x00010000 , */
+/* IDL:        NETLOGON_NEG_PASSWORD_SET2 =  0x00020000 , */
+/* IDL:        NETLOGON_NEG_GETDOMAININFO =  0x00040000 , */
+/* IDL:        NETLOGON_NEG_CROSS_FOREST_TRUSTS =  0x00080000 , */
+/* IDL:        NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION =  0x00100000 , */
+/* IDL:        NETLOGON_NEG_RODC_PASSTHROUGH =  0x00200000 , */
+/* IDL:        NETLOGON_NEG_SUPPORTS_AES_SHA2 =  0x00400000 , */
+/* IDL:        NETLOGON_NEG_SUPPORTS_AES =  0x01000000 , */
+/* IDL:        NETLOGON_NEG_AUTHENTICATED_RPC_LSASS =  0x20000000 , */
+/* IDL:        NETLOGON_NEG_AUTHENTICATED_RPC =  0x40000000 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_NegotiateFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_ACCOUNT_LOCKOUT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETLOGON_NEG_ACCOUNT_LOCKOUT");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETLOGON_NEG_PERSISTENT_SAMREPL");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_ARCFOUR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NETLOGON_NEG_ARCFOUR");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PROMOTION_COUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NETLOGON_NEG_PROMOTION_COUNT");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CHANGELOG_BDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NETLOGON_NEG_CHANGELOG_BDC");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_FULL_SYNC_REPL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NETLOGON_NEG_FULL_SYNC_REPL");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_MULTIPLE_SIDS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "NETLOGON_NEG_MULTIPLE_SIDS");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_REDO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "NETLOGON_NEG_REDO");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_GENERIC_PASSTHROUGH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "NETLOGON_NEG_GENERIC_PASSTHROUGH");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CONCURRENT_RPC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "NETLOGON_NEG_CONCURRENT_RPC");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_STRONG_KEYS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_STRONG_KEYS");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_TRANSITIVE_TRUSTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_TRANSITIVE_TRUSTS");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_DNS_DOMAIN_TRUSTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_DNS_DOMAIN_TRUSTS");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_SET2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_PASSWORD_SET2");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_GETDOMAININFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_GETDOMAININFO");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CROSS_FOREST_TRUSTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_CROSS_FOREST_TRUSTS");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_RODC_PASSTHROUGH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_RODC_PASSTHROUGH");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_SHA2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_SUPPORTS_AES_SHA2");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_SUPPORTS_AES");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "NETLOGON_NEG_AUTHENTICATED_RPC");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SYNCSTATE_NORMAL_STATE=0, */
+/* IDL:        SYNCSTATE_DOMAIN_STATE=1, */
+/* IDL:        SYNCSTATE_GROUP_STATE=2, */
+/* IDL:        SYNCSTATE_UAS_BUILT_IN_GROUP_STATE=3, */
+/* IDL:        SYNCSTATE_USER_STATE=4, */
+/* IDL:        SYNCSTATE_GROUP_MEMBER_STATE=5, */
+/* IDL:        SYNCSTATE_ALIAS_STATE=6, */
+/* IDL:        SYNCSTATE_ALIAS_MEMBER_STATE=7, */
+/* IDL:        SYNCSTATE_SAM_DONE_STATE=8, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_SyncStateEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED =  0x0001 , */
+/* IDL:        NETR_CHANGELOG_CHANGED_PASSWORD =  0x0002 , */
+/* IDL:        NETR_CHANGELOG_SID_INCLUDED =  0x0004 , */
+/* IDL:        NETR_CHANGELOG_NAME_INCLUDED =  0x0008 , */
+/* IDL:        NETR_CHANGELOG_FIRST_PROMOTION_OBJ =  0x0010 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_ChangeLogFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint16 flags;
+       ALIGN_TO_2_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_ChangeLogFlags);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, tvb, offset-2, 2, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_CHANGED_PASSWORD, tvb, offset-2, 2, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "NETR_CHANGELOG_CHANGED_PASSWORD");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_SID_INCLUDED, tvb, offset-2, 2, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "NETR_CHANGELOG_SID_INCLUDED");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_NAME_INCLUDED, tvb, offset-2, 2, flags);
+       if (flags&( 0x0008 )){
+               proto_item_append_text(item, "NETR_CHANGELOG_NAME_INCLUDED");
+               if (flags & (~( 0x0008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_FIRST_PROMOTION_OBJ, tvb, offset-2, 2, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "NETR_CHANGELOG_FIRST_PROMOTION_OBJ");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(NETR_CHANGELOG_SID_INCLUDED)] [case(NETR_CHANGELOG_SID_INCLUDED)] dom_sid object_sid; */
+/* IDL: [case(NETR_CHANGELOG_NAME_INCLUDED)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(NETR_CHANGELOG_NAME_INCLUDED)] string object_name; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_ChangeLogObject_object_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ChangeLogObject_object_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogObject_object_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogObject_object_name , 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ChangeLogObject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_ChangeLogObject");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_ChangeLogObject);
+       }
+
+       switch(level) {
+               case NETR_CHANGELOG_SID_INCLUDED:
+                       offset = netlogon_dissect_element_netr_ChangeLogObject_object_sid(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NETR_CHANGELOG_NAME_INCLUDED:
+                       offset = netlogon_dissect_element_netr_ChangeLogObject_object_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 serial_number1; */
+/* IDL:        uint32 serial_number2; */
+/* IDL:        uint32 object_rid; */
+/* IDL:        netr_ChangeLogFlags flags; */
+/* IDL:        netr_SamDatabaseID8Bit db_index; */
+/* IDL:        netr_DeltaEnum8Bit delta_type; */
+/* IDL:        [switch_is(flags&(NETR_CHANGELOG_SID_INCLUDED|NETR_CHANGELOG_NAME_INCLUDED))] netr_ChangeLogObject object; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_serial_number1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_serial_number1, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_serial_number2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_serial_number2, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_object_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_object_rid, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *flags)
+{
+       offset = netlogon_dissect_bitmap_netr_ChangeLogFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_flags, flags);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_db_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SamDatabaseID8Bit(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_db_index, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_delta_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_DeltaEnum8Bit(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_delta_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ChangeLogEntry_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = netlogon_dissect_netr_ChangeLogObject(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ChangeLogEntry_object, *);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_ChangeLogEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+        flags;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_ChangeLogEntry);
+       }
+       
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_serial_number1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_serial_number2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_object_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_flags(tvb, offset, pinfo, tree, drep, &flags);
+
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_db_index(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_delta_type(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_ChangeLogEntry_object(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_Blob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_Blob_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Blob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Blob_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_netlogon_netr_Blob_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Blob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_Blob_data__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_Blob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_Blob_data, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_Blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_Blob);
+       }
+       
+       offset = netlogon_dissect_element_netr_Blob_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_Blob_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DS_FORCE_REDISCOVERY =  0x00000001 , */
+/* IDL:        DS_DIRECTORY_SERVICE_REQUIRED =  0x00000010 , */
+/* IDL:        DS_DIRECTORY_SERVICE_PREFERRED =  0x00000020 , */
+/* IDL:        DS_GC_SERVER_REQUIRED =  0x00000040 , */
+/* IDL:        DS_PDC_REQUIRED =  0x00000080 , */
+/* IDL:        DS_BACKGROUND_ONLY =  0x00000100 , */
+/* IDL:        DS_IP_REQUIRED =  0x00000200 , */
+/* IDL:        DS_KDC_REQUIRED =  0x00000400 , */
+/* IDL:        DS_TIMESERV_REQUIRED =  0x00000800 , */
+/* IDL:        DS_WRITABLE_REQUIRED =  0x00001000 , */
+/* IDL:        DS_GOOD_TIMESERV_PREFERRED =  0x00002000 , */
+/* IDL:        DS_AVOID_SELF =  0x00004000 , */
+/* IDL:        DS_ONLY_LDAP_NEEDED =  0x00008000 , */
+/* IDL:        DS_IS_FLAT_NAME =  0x00010000 , */
+/* IDL:        DS_IS_DNS_NAME =  0x00020000 , */
+/* IDL:        DS_TRY_NEXTCLOSEST_SITE =  0x00040000 , */
+/* IDL:        DS_DIRECTORY_SERVICE_6_REQUIRED =  0x00080000 , */
+/* IDL:        DS_WEB_SERVICE_REQUIRED =  0x00100000 , */
+/* IDL:        DS_RETURN_DNS_NAME =  0x40000000 , */
+/* IDL:        DS_RETURN_FLAT_NAME =  0x80000000 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_DsRGetDCName_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_DsRGetDCName_flags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_FORCE_REDISCOVERY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DS_FORCE_REDISCOVERY");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DS_DIRECTORY_SERVICE_REQUIRED");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_PREFERRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DS_DIRECTORY_SERVICE_PREFERRED");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_GC_SERVER_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "DS_GC_SERVER_REQUIRED");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_PDC_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "DS_PDC_REQUIRED");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_BACKGROUND_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "DS_BACKGROUND_ONLY");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_IP_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "DS_IP_REQUIRED");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_KDC_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "DS_KDC_REQUIRED");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_TIMESERV_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "DS_TIMESERV_REQUIRED");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_WRITABLE_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "DS_WRITABLE_REQUIRED");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_GOOD_TIMESERV_PREFERRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "DS_GOOD_TIMESERV_PREFERRED");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_AVOID_SELF, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "DS_AVOID_SELF");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_ONLY_LDAP_NEEDED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "DS_ONLY_LDAP_NEEDED");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_IS_FLAT_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "DS_IS_FLAT_NAME");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_IS_DNS_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "DS_IS_DNS_NAME");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_TRY_NEXTCLOSEST_SITE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "DS_TRY_NEXTCLOSEST_SITE");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_6_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "DS_DIRECTORY_SERVICE_6_REQUIRED");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_WEB_SERVICE_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "DS_WEB_SERVICE_REQUIRED");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_RETURN_DNS_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "DS_RETURN_DNS_NAME");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsRGetDCName_flags_DS_RETURN_FLAT_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "DS_RETURN_FLAT_NAME");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DS_ADDRESS_TYPE_INET=1, */
+/* IDL:        DS_ADDRESS_TYPE_NETBIOS=2, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_DsRGetDCNameInfo_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DS_SERVER_PDC =  0x00000001 , */
+/* IDL:        DS_SERVER_GC =  0x00000004 , */
+/* IDL:        DS_SERVER_LDAP =  0x00000008 , */
+/* IDL:        DS_SERVER_DS =  0x00000010 , */
+/* IDL:        DS_SERVER_KDC =  0x00000020 , */
+/* IDL:        DS_SERVER_TIMESERV =  0x00000040 , */
+/* IDL:        DS_SERVER_CLOSEST =  0x00000080 , */
+/* IDL:        DS_SERVER_WRITABLE =  0x00000100 , */
+/* IDL:        DS_SERVER_GOOD_TIMESERV =  0x00000200 , */
+/* IDL:        DS_SERVER_NDNC =  0x00000400 , */
+/* IDL:        DS_SERVER_SELECT_SECRET_DOMAIN_6 =  0x00000800 , */
+/* IDL:        DS_SERVER_FULL_SECRET_DOMAIN_6 =  0x00001000 , */
+/* IDL:        DS_SERVER_WEBSERV =  0x00002000 , */
+/* IDL:        DS_DNS_CONTROLLER =  0x20000000 , */
+/* IDL:        DS_DNS_DOMAIN =  0x40000000 , */
+/* IDL:        DS_DNS_FOREST_ROOT =  0x80000000 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_DsR_DcFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_DsR_DcFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_PDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DS_SERVER_PDC");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_GC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DS_SERVER_GC");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_LDAP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DS_SERVER_LDAP");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_DS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DS_SERVER_DS");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_KDC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DS_SERVER_KDC");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_TIMESERV, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "DS_SERVER_TIMESERV");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_CLOSEST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "DS_SERVER_CLOSEST");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_WRITABLE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "DS_SERVER_WRITABLE");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_GOOD_TIMESERV, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "DS_SERVER_GOOD_TIMESERV");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_NDNC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "DS_SERVER_NDNC");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_SELECT_SECRET_DOMAIN_6, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "DS_SERVER_SELECT_SECRET_DOMAIN_6");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_FULL_SECRET_DOMAIN_6, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "DS_SERVER_FULL_SECRET_DOMAIN_6");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_SERVER_WEBSERV, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "DS_SERVER_WEBSERV");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_DNS_CONTROLLER, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "DS_DNS_CONTROLLER");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_DNS_DOMAIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "DS_DNS_DOMAIN");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_DsR_DcFlags_DS_DNS_FOREST_ROOT, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "DS_DNS_FOREST_ROOT");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dc_unc; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dc_address; */
+/* IDL:        netr_DsRGetDCNameInfo_AddressType dc_address_type; */
+/* IDL:        GUID domain_guid; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *forest_name; */
+/* IDL:        netr_DsR_DcFlags dc_flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dc_site_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client_site_name; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_unc_, NDR_POINTER_UNIQUE, "Pointer to Dc Unc (uint16)",hf_netlogon_netr_DsRGetDCNameInfo_dc_unc);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameInfo_dc_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address_, NDR_POINTER_UNIQUE, "Pointer to Dc Address (uint16)",hf_netlogon_netr_DsRGetDCNameInfo_dc_address);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameInfo_dc_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_DsRGetDCNameInfo_AddressType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameInfo_dc_address_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameInfo_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_netlogon_netr_DsRGetDCNameInfo_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameInfo_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_forest_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameInfo_forest_name_, NDR_POINTER_UNIQUE, "Pointer to Forest Name (uint16)",hf_netlogon_netr_DsRGetDCNameInfo_forest_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_forest_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameInfo_forest_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_DsR_DcFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameInfo_dc_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_site_name_, NDR_POINTER_UNIQUE, "Pointer to Dc Site Name (uint16)",hf_netlogon_netr_DsRGetDCNameInfo_dc_site_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameInfo_dc_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_client_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameInfo_client_site_name_, NDR_POINTER_UNIQUE, "Pointer to Client Site Name (uint16)",hf_netlogon_netr_DsRGetDCNameInfo_client_site_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameInfo_client_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameInfo_client_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DsRGetDCNameInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DsRGetDCNameInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_unc(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_address_type(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_forest_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_dc_site_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRGetDCNameInfo_client_site_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] netr_NegotiateFlags server_capabilities; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_Capabilities_server_capabilities(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_NegotiateFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_Capabilities_server_capabilities, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_Capabilities(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_Capabilities");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_Capabilities);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = netlogon_dissect_element_netr_Capabilities_server_capabilities(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        NETR_TRUST_FLAG_IN_FOREST =  0x00000001 , */
+/* IDL:        NETR_TRUST_FLAG_OUTBOUND =  0x00000002 , */
+/* IDL:        NETR_TRUST_FLAG_TREEROOT =  0x00000004 , */
+/* IDL:        NETR_TRUST_FLAG_PRIMARY =  0x00000008 , */
+/* IDL:        NETR_TRUST_FLAG_NATIVE =  0x00000010 , */
+/* IDL:        NETR_TRUST_FLAG_INBOUND =  0x00000020 , */
+/* IDL:        NETR_TRUST_FLAG_MIT_KRB5 =  0x00000080 , */
+/* IDL:        NETR_TRUST_FLAG_AES =  0x00000100 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_TrustFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_TrustFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_IN_FOREST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_IN_FOREST");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_OUTBOUND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_OUTBOUND");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_TREEROOT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_TREEROOT");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_PRIMARY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_PRIMARY");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_NATIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_NATIVE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_INBOUND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_INBOUND");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_MIT_KRB5, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_MIT_KRB5");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_AES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "NETR_TRUST_FLAG_AES");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS =  0x00000001 , */
+/* IDL:        NETR_WS_FLAG_HANDLES_SPN_UPDATE =  0x00000002 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_WorkstationFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_WorkstationFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_SPN_UPDATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETR_WS_FLAG_HANDLES_SPN_UPDATE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETR_VER_SUITE_BACKOFFICE =  0x0004 , */
+/* IDL:        NETR_VER_SUITE_BLADE =  0x0400 , */
+/* IDL:        NETR_VER_SUITE_COMPUTE_SERVER =  0x4000 , */
+/* IDL:        NETR_VER_SUITE_DATACENTER =  0x0080 , */
+/* IDL:        NETR_VER_SUITE_ENTERPRISE =  0x0002 , */
+/* IDL:        NETR_VER_SUITE_EMBEDDEDNT =  0x0040 , */
+/* IDL:        NETR_VER_SUITE_PERSONAL =  0x0200 , */
+/* IDL:        NETR_VER_SUITE_SINGLEUSERTS =  0x0100 , */
+/* IDL:        NETR_VER_SUITE_SMALLBUSINESS =  0x0001 , */
+/* IDL:        NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED =  0x0020 , */
+/* IDL:        NETR_VER_SUITE_STORAGE_SERVER =  0x2000 , */
+/* IDL:        NETR_VER_SUITE_TERMINAL =  0x0010 , */
+/* IDL:        NETR_VER_SUITE_WH_SERVER =  0x8000 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_SuiteMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint16 flags;
+       ALIGN_TO_2_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 2, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_SuiteMask);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_BACKOFFICE");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BLADE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0400 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_BLADE");
+               if (flags & (~( 0x0400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0400 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_COMPUTE_SERVER, tvb, offset-2, 2, flags);
+       if (flags&( 0x4000 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_COMPUTE_SERVER");
+               if (flags & (~( 0x4000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x4000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_DATACENTER, tvb, offset-2, 2, flags);
+       if (flags&( 0x0080 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_DATACENTER");
+               if (flags & (~( 0x0080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0080 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_ENTERPRISE, tvb, offset-2, 2, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_ENTERPRISE");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_EMBEDDEDNT, tvb, offset-2, 2, flags);
+       if (flags&( 0x0040 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_EMBEDDEDNT");
+               if (flags & (~( 0x0040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0040 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_PERSONAL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0200 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_PERSONAL");
+               if (flags & (~( 0x0200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0200 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS, tvb, offset-2, 2, flags);
+       if (flags&( 0x0100 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_SINGLEUSERTS");
+               if (flags & (~( 0x0100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0100 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS, tvb, offset-2, 2, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_SMALLBUSINESS");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED, tvb, offset-2, 2, flags);
+       if (flags&( 0x0020 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED");
+               if (flags & (~( 0x0020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_STORAGE_SERVER, tvb, offset-2, 2, flags);
+       if (flags&( 0x2000 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_STORAGE_SERVER");
+               if (flags & (~( 0x2000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x2000 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_TERMINAL, tvb, offset-2, 2, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_TERMINAL");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_WH_SERVER, tvb, offset-2, 2, flags);
+       if (flags&( 0x8000 )){
+               proto_item_append_text(item, "NETR_VER_SUITE_WH_SERVER");
+               if (flags & (~( 0x8000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x8000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETR_VER_NT_DOMAIN_CONTROLLER =  0x02 , */
+/* IDL:        NETR_VER_NT_SERVER =  0x03 , */
+/* IDL:        NETR_VER_NT_WORKSTATION =  0x01 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_ProductType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint8 flags;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 1, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_ProductType);
+       }
+
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ProductType_NETR_VER_NT_DOMAIN_CONTROLLER, tvb, offset-1, 1, flags);
+       if (flags&( 0x02 )){
+               proto_item_append_text(item, "NETR_VER_NT_DOMAIN_CONTROLLER");
+               if (flags & (~( 0x02 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ProductType_NETR_VER_NT_SERVER, tvb, offset-1, 1, flags);
+       if (flags&( 0x03 )){
+               proto_item_append_text(item, "NETR_VER_NT_SERVER");
+               if (flags & (~( 0x03 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x03 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_ProductType_NETR_VER_NT_WORKSTATION, tvb, offset-1, 1, flags);
+       if (flags&( 0x01 )){
+               proto_item_append_text(item, "NETR_VER_NT_WORKSTATION");
+               if (flags & (~( 0x01 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 policy_size; */
+/* IDL:        [unique(1)] [size_is(policy_size)] uint8 *policy; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_LsaPolicyInformation_policy_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LsaPolicyInformation_policy_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LsaPolicyInformation_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LsaPolicyInformation_policy_, NDR_POINTER_UNIQUE, "Pointer to Policy (uint8)",hf_netlogon_netr_LsaPolicyInformation_policy);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LsaPolicyInformation_policy_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LsaPolicyInformation_policy__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LsaPolicyInformation_policy__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LsaPolicyInformation_policy, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_LsaPolicyInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_LsaPolicyInformation);
+       }
+       
+       offset = netlogon_dissect_element_netr_LsaPolicyInformation_policy_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_LsaPolicyInformation_policy(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(284)] uint32 OSVersionInfoSize; */
+/* IDL:        uint32 MajorVersion; */
+/* IDL:        uint32 MinorVersion; */
+/* IDL:        uint32 BuildNumber; */
+/* IDL:        uint32 PlatformId; */
+/* IDL:        [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string CSDVersion; */
+/* IDL:        uint16 ServicePackMajor; */
+/* IDL:        uint16 ServicePackMinor; */
+/* IDL:        netr_SuiteMask SuiteMask; */
+/* IDL:        netr_ProductType ProductType; */
+/* IDL:        uint8 Reserved; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_OSVersionInfoSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_OSVersionInfoSize, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_MajorVersion, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_MinorVersion, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_BuildNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_BuildNumber, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_PlatformId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_PlatformId, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_CSDVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_CSDVersion_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               netlogon_dissect_element_netr_OsVersionInfoEx_CSDVersion_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_CSDVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_CSDVersion , 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_ServicePackMajor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_ServicePackMajor, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_ServicePackMinor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_ServicePackMinor, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_SuiteMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_SuiteMask(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_SuiteMask, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_ProductType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_ProductType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_ProductType, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionInfoEx_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionInfoEx_Reserved, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_OsVersionInfoEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_OsVersionInfoEx);
+       }
+       
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_OSVersionInfoSize(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_MajorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_MinorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_BuildNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_PlatformId(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_CSDVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_ServicePackMajor(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_ServicePackMinor(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_SuiteMask(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_ProductType(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionInfoEx_Reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(142)] uint32 length; */
+/* IDL:        [value(0)] uint32 dummy; */
+/* IDL:        [value(142)] uint32 size; */
+/* IDL:        netr_OsVersionInfoEx os; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_OsVersion_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersion_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersion_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersion_dummy, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersion_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersion_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersion_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_OsVersionInfoEx(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OsVersion_os,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_OsVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_OsVersion);
+       }
+       
+       offset = netlogon_dissect_element_netr_OsVersion_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersion_dummy(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersion_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersion_os(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(os==NULL?0:284)] uint16 length; */
+/* IDL:        [value(os==NULL?0:284)] uint16 size; */
+/* IDL:        [unique(1)] netr_OsVersion *os; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_OsVersionContainer_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionContainer_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionContainer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OsVersionContainer_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionContainer_os(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_OsVersionContainer_os_, NDR_POINTER_UNIQUE, "Pointer to Os (netr_OsVersion)",hf_netlogon_netr_OsVersionContainer_os);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OsVersionContainer_os_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_OsVersion(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OsVersionContainer_os,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_OsVersionContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_OsVersionContainer);
+       }
+       
+       offset = netlogon_dissect_element_netr_OsVersionContainer_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionContainer_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OsVersionContainer_os(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_LsaPolicyInformation lsa_policy; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_hostname; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *sitename; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dummy1; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dummy2; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dummy3; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dummy4; */
+/* IDL:        netr_OsVersionContainer os_version; */
+/* IDL:        lsa_String os_name; */
+/* IDL:        lsa_String dummy_string3; */
+/* IDL:        lsa_String dummy_string4; */
+/* IDL:        netr_WorkstationFlags workstation_flags; */
+/* IDL:        uint32 dummy_long2; */
+/* IDL:        uint32 dummy_long3; */
+/* IDL:        uint32 dummy_long4; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_lsa_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_LsaPolicyInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInformation_lsa_policy,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dns_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInformation_dns_hostname_, NDR_POINTER_UNIQUE, "Pointer to Dns Hostname (uint16)",hf_netlogon_netr_WorkstationInformation_dns_hostname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dns_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_WorkstationInformation_dns_hostname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInformation_sitename_, NDR_POINTER_UNIQUE, "Pointer to Sitename (uint16)",hf_netlogon_netr_WorkstationInformation_sitename);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_sitename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_WorkstationInformation_sitename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInformation_dummy1_, NDR_POINTER_UNIQUE, "Pointer to Dummy1 (uint16)",hf_netlogon_netr_WorkstationInformation_dummy1);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_WorkstationInformation_dummy1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInformation_dummy2_, NDR_POINTER_UNIQUE, "Pointer to Dummy2 (uint16)",hf_netlogon_netr_WorkstationInformation_dummy2);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_WorkstationInformation_dummy2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInformation_dummy3_, NDR_POINTER_UNIQUE, "Pointer to Dummy3 (uint16)",hf_netlogon_netr_WorkstationInformation_dummy3);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_WorkstationInformation_dummy3, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInformation_dummy4_, NDR_POINTER_UNIQUE, "Pointer to Dummy4 (uint16)",hf_netlogon_netr_WorkstationInformation_dummy4);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_WorkstationInformation_dummy4, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_os_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_OsVersionContainer(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInformation_os_version,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_os_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInformation_os_name,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy_string3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInformation_dummy_string3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy_string4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInformation_dummy_string4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_workstation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_WorkstationFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_WorkstationInformation_workstation_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy_long2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_WorkstationInformation_dummy_long2, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy_long3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_WorkstationInformation_dummy_long3, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInformation_dummy_long4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_WorkstationInformation_dummy_long4, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_WorkstationInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_WorkstationInformation);
+       }
+       
+       offset = netlogon_dissect_element_netr_WorkstationInformation_lsa_policy(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dns_hostname(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_sitename(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_os_version(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_os_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy_string3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy_string4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_workstation_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy_long2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy_long3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_WorkstationInformation_dummy_long4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] netr_WorkstationInformation *workstation_info; */
+/* IDL: [case(2)] [unique(1)] [case(2)] netr_WorkstationInformation *lsa_policy_info; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_WorkstationInfo_workstation_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInfo_workstation_info_, NDR_POINTER_UNIQUE, "Pointer to Workstation Info (netr_WorkstationInformation)",hf_netlogon_netr_WorkstationInfo_workstation_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInfo_workstation_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_WorkstationInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInfo_workstation_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInfo_lsa_policy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_WorkstationInfo_lsa_policy_info_, NDR_POINTER_UNIQUE, "Pointer to Lsa Policy Info (netr_WorkstationInformation)",hf_netlogon_netr_WorkstationInfo_lsa_policy_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_WorkstationInfo_lsa_policy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_WorkstationInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_WorkstationInfo_lsa_policy_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_WorkstationInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_WorkstationInfo");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_WorkstationInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = netlogon_dissect_element_netr_WorkstationInfo_workstation_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = netlogon_dissect_element_netr_WorkstationInfo_lsa_policy_info(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(8)] uint32 length; */
+/* IDL:        [value(0)] uint32 dummy; */
+/* IDL:        [value(8)] uint32 size; */
+/* IDL:        netr_TrustFlags flags; */
+/* IDL:        uint32 parent_index; */
+/* IDL:        uint32 trust_type; */
+/* IDL:        uint32 trust_attributes; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_trust_extension_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_dummy, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_TrustFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_parent_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_parent_index, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_trust_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_trust_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_trust_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_trust_attributes, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_trust_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_trust_extension);
+       }
+       
+       offset = netlogon_dissect_element_netr_trust_extension_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_dummy(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_parent_index(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_trust_type(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_trust_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 length; */
+/* IDL:        [value(length)] uint16 size; */
+/* IDL:        [unique(1)] netr_trust_extension *info; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_trust_extension_container_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_container_length, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_container_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_trust_extension_container_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_container_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_trust_extension_container_info_, NDR_POINTER_UNIQUE, "Pointer to Info (netr_trust_extension)",hf_netlogon_netr_trust_extension_container_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_trust_extension_container_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_trust_extension(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_trust_extension_container_info,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_trust_extension_container(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_trust_extension_container);
+       }
+       
+       offset = netlogon_dissect_element_netr_trust_extension_container_length(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_container_size(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_trust_extension_container_info(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_StringLarge domainname; */
+/* IDL:        lsa_StringLarge dns_domainname; */
+/* IDL:        lsa_StringLarge dns_forestname; */
+/* IDL:        GUID domain_guid; */
+/* IDL:        [unique(1)] dom_sid2 *domain_sid; */
+/* IDL:        netr_trust_extension_container trust_extension; */
+/* IDL:        lsa_StringLarge dummy_string2; */
+/* IDL:        lsa_StringLarge dummy_string3; */
+/* IDL:        lsa_StringLarge dummy_string4; */
+/* IDL:        uint32 dummy_long1; */
+/* IDL:        uint32 dummy_long2; */
+/* IDL:        uint32 dummy_long3; */
+/* IDL:        uint32 dummy_long4; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_domainname,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dns_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_dns_domainname,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dns_forestname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_dns_forestname,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OneDomainInfo_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_domain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_OneDomainInfo_domain_sid_, NDR_POINTER_UNIQUE, "Pointer to Domain Sid (dom_sid2)",hf_netlogon_netr_OneDomainInfo_domain_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_domain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_domain_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_trust_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_trust_extension_container(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_trust_extension,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_string2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_dummy_string2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_string3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_dummy_string3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_string4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_OneDomainInfo_dummy_string4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_long1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OneDomainInfo_dummy_long1, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_long2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OneDomainInfo_dummy_long2, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_long3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OneDomainInfo_dummy_long3, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_OneDomainInfo_dummy_long4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_OneDomainInfo_dummy_long4, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_OneDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_OneDomainInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_OneDomainInfo_domainname(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dns_domainname(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dns_forestname(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_domain_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_domain_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_trust_extension(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_string2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_string3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_string4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_long1(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_long2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_long3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_OneDomainInfo_dummy_long4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        ENC_CRC32 =  0x00000001 , */
+/* IDL:        ENC_RSA_MD5 =  0x00000002 , */
+/* IDL:        ENC_RC4_HMAC_MD5 =  0x00000004 , */
+/* IDL:        ENC_HMAC_SHA1_96_AES128 =  0x00000008 , */
+/* IDL:        ENC_HMAC_SHA1_96_AES256 =  0x00000010 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_SupportedEncTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_SupportedEncTypes);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SupportedEncTypes_ENC_CRC32, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "ENC_CRC32");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SupportedEncTypes_ENC_RSA_MD5, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "ENC_RSA_MD5");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SupportedEncTypes_ENC_RC4_HMAC_MD5, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "ENC_RC4_HMAC_MD5");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES128, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "ENC_HMAC_SHA1_96_AES128");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES256, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "ENC_HMAC_SHA1_96_AES256");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_OneDomainInfo primary_domain; */
+/* IDL:        uint32 trusted_domain_count; */
+/* IDL:        [unique(1)] [size_is(trusted_domain_count)] netr_OneDomainInfo *trusted_domains; */
+/* IDL:        netr_LsaPolicyInformation lsa_policy; */
+/* IDL:        lsa_StringLarge dns_hostname; */
+/* IDL:        lsa_StringLarge dummy_string2; */
+/* IDL:        lsa_StringLarge dummy_string3; */
+/* IDL:        lsa_StringLarge dummy_string4; */
+/* IDL:        netr_WorkstationFlags workstation_flags; */
+/* IDL:        netr_SupportedEncTypes supported_enc_types; */
+/* IDL:        uint32 dummy_long3; */
+/* IDL:        uint32 dummy_long4; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DomainInformation_primary_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_OneDomainInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_primary_domain,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_trusted_domain_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainInformation_trusted_domain_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_trusted_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainInformation_trusted_domains_, NDR_POINTER_UNIQUE, "Pointer to Trusted Domains (netr_OneDomainInfo)",hf_netlogon_netr_DomainInformation_trusted_domains);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_trusted_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainInformation_trusted_domains__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_trusted_domains__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_OneDomainInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_trusted_domains,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_lsa_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_LsaPolicyInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_lsa_policy,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_dns_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_dns_hostname,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_dummy_string2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_dummy_string2,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_dummy_string3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_dummy_string3,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_dummy_string4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInformation_dummy_string4,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_workstation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_WorkstationFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainInformation_workstation_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_supported_enc_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_SupportedEncTypes(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainInformation_supported_enc_types, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_dummy_long3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainInformation_dummy_long3, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInformation_dummy_long4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainInformation_dummy_long4, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DomainInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DomainInformation);
+       }
+       
+       offset = netlogon_dissect_element_netr_DomainInformation_primary_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_trusted_domain_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_trusted_domains(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_lsa_policy(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_dns_hostname(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_dummy_string2(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_dummy_string3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_dummy_string4(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_workstation_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_supported_enc_types(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_dummy_long3(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainInformation_dummy_long4(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] netr_DomainInformation *domain_info; */
+/* IDL: [case(2)] [unique(1)] [case(2)] netr_LsaPolicyInformation *lsa_policy_info; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DomainInfo_domain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainInfo_domain_info_, NDR_POINTER_UNIQUE, "Pointer to Domain Info (netr_DomainInformation)",hf_netlogon_netr_DomainInfo_domain_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInfo_domain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DomainInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInfo_domain_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInfo_lsa_policy_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainInfo_lsa_policy_info_, NDR_POINTER_UNIQUE, "Pointer to Lsa Policy Info (netr_LsaPolicyInformation)",hf_netlogon_netr_DomainInfo_lsa_policy_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainInfo_lsa_policy_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_LsaPolicyInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainInfo_lsa_policy_info,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "netr_DomainInfo");
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DomainInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = netlogon_dissect_element_netr_DomainInfo_domain_info(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = netlogon_dissect_element_netr_DomainInfo_lsa_policy_info(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 ReservedField; */
+/* IDL:        uint32 PasswordVersionNumber; */
+/* IDL:        uint32 PasswordVersionPresent; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_NL_PASSWORD_VERSION_ReservedField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_PASSWORD_VERSION_ReservedField, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_PASSWORD_VERSION_PasswordVersionNumber, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_PASSWORD_VERSION_PasswordVersionPresent, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_NL_PASSWORD_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_NL_PASSWORD_VERSION);
+       }
+       
+       offset = netlogon_dissect_element_NL_PASSWORD_VERSION_ReservedField(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_PASSWORD_VERSION_PasswordVersionPresent(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 data[512]; */
+/* IDL:        uint32 length; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 512; i++)
+               offset = netlogon_dissect_element_netr_CryptPassword_data_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CryptPassword_data, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_CryptPassword_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_CryptPassword_length, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_CryptPassword);
+       }
+       
+       offset = netlogon_dissect_element_netr_CryptPassword_data(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_CryptPassword_length(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_String *sitename; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddressToSitenamesWCtr_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename_, NDR_POINTER_UNIQUE, "Pointer to Sitename (lsa_String)",hf_netlogon_netr_DsRAddressToSitenamesWCtr_sitename);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesWCtr_sitename,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DsRAddressToSitenamesWCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DsRAddressToSitenamesWCtr);
+       }
+       
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesWCtr_sitename(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [size_is(size)] uint8 *buffer; */
+/* IDL:        uint32 size; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DsRAddress_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddress_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_netlogon_netr_DsRAddress_buffer);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddress_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddress_buffer__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddress_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddress_buffer, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddress_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddress_size, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DsRAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DsRAddress);
+       }
+       
+       offset = netlogon_dissect_element_netr_DsRAddress_buffer(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRAddress_size(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NETR_TRUST_TYPE_DOWNLEVEL=1, */
+/* IDL:        NETR_TRUST_TYPE_UPLEVEL=2, */
+/* IDL:        NETR_TRUST_TYPE_MIT=3, */
+/* IDL:        NETR_TRUST_TYPE_DCE=4, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_TrustType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE =  0x00000001 , */
+/* IDL:        NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY =  0x00000002 , */
+/* IDL:        NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN =  0x00000004 , */
+/* IDL:        NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE =  0x00000008 , */
+/* IDL:        NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION =  0x00000010 , */
+/* IDL:        NETR_TRUST_ATTRIBUTE_WITHIN_FOREST =  0x00000020 , */
+/* IDL:        NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL =  0x00000040 , */
+/* IDL: } */
+
+int
+netlogon_dissect_bitmap_netr_TrustAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_netlogon_netr_TrustAttributes);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *netbios_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_name; */
+/* IDL:        netr_TrustFlags trust_flags; */
+/* IDL:        uint32 parent_index; */
+/* IDL:        netr_TrustType trust_type; */
+/* IDL:        netr_TrustAttributes trust_attributes; */
+/* IDL:        [unique(1)] dom_sid2 *sid; */
+/* IDL:        GUID guid; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DomainTrust_netbios_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainTrust_netbios_name_, NDR_POINTER_UNIQUE, "Pointer to Netbios Name (uint16)",hf_netlogon_netr_DomainTrust_netbios_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_netbios_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DomainTrust_netbios_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_dns_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainTrust_dns_name_, NDR_POINTER_UNIQUE, "Pointer to Dns Name (uint16)",hf_netlogon_netr_DomainTrust_dns_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_dns_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DomainTrust_dns_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_trust_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_TrustFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainTrust_trust_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_parent_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainTrust_parent_index, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_trust_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_TrustType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainTrust_trust_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_trust_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_TrustAttributes(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainTrust_trust_attributes, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainTrust_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_netlogon_netr_DomainTrust_sid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainTrust_sid,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrust_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainTrust_guid, NULL);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DomainTrust(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DomainTrust);
+       }
+       
+       offset = netlogon_dissect_element_netr_DomainTrust_netbios_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_dns_name(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_trust_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_parent_index(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_trust_type(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_trust_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_sid(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrust_guid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] netr_DomainTrust *array; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DomainTrustList_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DomainTrustList_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrustList_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainTrustList_array_, NDR_POINTER_UNIQUE, "Pointer to Array (netr_DomainTrust)",hf_netlogon_netr_DomainTrustList_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrustList_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DomainTrustList_array__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DomainTrustList_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DomainTrust(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DomainTrustList_array,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DomainTrustList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DomainTrustList);
+       }
+       
+       offset = netlogon_dissect_element_netr_DomainTrustList_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DomainTrustList_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_String *sitename; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_String *subnetname; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddressToSitenamesExWCtr_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename_, NDR_POINTER_UNIQUE, "Pointer to Sitename (lsa_String)",hf_netlogon_netr_DsRAddressToSitenamesExWCtr_sitename);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesExWCtr_sitename,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname_, NDR_POINTER_UNIQUE, "Pointer to Subnetname (lsa_String)",hf_netlogon_netr_DsRAddressToSitenamesExWCtr_subnetname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesExWCtr_subnetname,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_DsRAddressToSitenamesExWCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_DsRAddressToSitenamesExWCtr);
+       }
+       
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_sitename(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExWCtr_subnetname(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_sites; */
+/* IDL:        [unique(1)] [size_is(num_sites)] lsa_String *sites; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_DcSitesCtr_num_sites(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_DcSitesCtr_num_sites, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_DcSitesCtr_sites(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_DcSitesCtr_sites_, NDR_POINTER_UNIQUE, "Pointer to Sites (lsa_String)",hf_netlogon_DcSitesCtr_sites);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_DcSitesCtr_sites_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_DcSitesCtr_sites__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_DcSitesCtr_sites__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_DcSitesCtr_sites,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_DcSitesCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_DcSitesCtr);
+       }
+       
+       offset = netlogon_dissect_element_DcSitesCtr_num_sites(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_DcSitesCtr_sites(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] uint32 *data; */
+/* IDL:        uint32 entry_count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_String *entries; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_netr_TrustInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_TrustInfo_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_TrustInfo_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint32)",hf_netlogon_netr_TrustInfo_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_TrustInfo_data__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_TrustInfo_data, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_entry_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_TrustInfo_entry_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_TrustInfo_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (lsa_String)",hf_netlogon_netr_TrustInfo_entries);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_TrustInfo_entries__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_TrustInfo_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_TrustInfo_entries,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_netr_TrustInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_netr_TrustInfo);
+       }
+       
+       offset = netlogon_dissect_element_netr_TrustInfo_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_TrustInfo_data(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_TrustInfo_entry_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_netr_TrustInfo_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NlDnsLdapAtSite=22, */
+/* IDL:        NlDnsGcAtSite=25, */
+/* IDL:        NlDnsDsaCname=28, */
+/* IDL:        NlDnsKdcAtSite=30, */
+/* IDL:        NlDnsDcAtSite=32, */
+/* IDL:        NlDnsRfc1510KdcAtSite=34, */
+/* IDL:        NlDnsGenericGcAtSite=36, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_DnsType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NlDnsInfoTypeNone=0, */
+/* IDL:        NlDnsDomainName=1, */
+/* IDL:        NlDnsDomainNameAlias=2, */
+/* IDL:        NlDnsForestName=3, */
+/* IDL:        NlDnsForestNameAlias=4, */
+/* IDL:        NlDnsNdncDomainName=5, */
+/* IDL:        NlDnsRecordName=6, */
+/* IDL: } */
+
+int
+netlogon_dissect_enum_netr_DnsDomainInfoType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        netr_DnsType type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *dns_domain_info; */
+/* IDL:        netr_DnsDomainInfoType dns_domain_info_type; */
+/* IDL:        uint32 priority; */
+/* IDL:        uint32 weight; */
+/* IDL:        uint32 port; */
+/* IDL:        uint32 dns_register; */
+/* IDL:        uint32 status; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_DnsType(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info_, NDR_POINTER_UNIQUE, "Pointer to Dns Domain Info (uint16)",hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_DnsDomainInfoType(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_priority, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_weight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_weight, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_port(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_port, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_dns_register(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_dns_register, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_status, 0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_NL_DNS_NAME_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_NL_DNS_NAME_INFO);
+       }
+       
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_type(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_dns_domain_info_type(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_weight(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_port(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_dns_register(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] NL_DNS_NAME_INFO *names; */
+/* IDL: } */
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_NL_DNS_NAME_INFO_ARRAY_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names_, NDR_POINTER_UNIQUE, "Pointer to Names (NL_DNS_NAME_INFO)",hf_netlogon_NL_DNS_NAME_INFO_ARRAY_names);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_NL_DNS_NAME_INFO(tvb,offset,pinfo,tree,drep,hf_netlogon_NL_DNS_NAME_INFO_ARRAY_names,0);
+
+       return offset;
+}
+
+int
+netlogon_dissect_struct_NL_DNS_NAME_INFO_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_netlogon_NL_DNS_NAME_INFO_ARRAY);
+       }
+       
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_count(tvb, offset, pinfo, tree, drep);
+
+       offset = netlogon_dissect_element_NL_DNS_NAME_INFO_ARRAY_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogon_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonUasLogon_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonUasLogon_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogon_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_LogonUasLogon_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonUasLogon_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogon_workstation_, NDR_POINTER_REF, "Pointer to Workstation (uint16)",hf_netlogon_netr_LogonUasLogon_workstation);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonUasLogon_workstation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogon_info_, NDR_POINTER_REF, "Pointer to Info (netr_UasInfo)",hf_netlogon_netr_LogonUasLogon_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogon_info__, NDR_POINTER_UNIQUE, "Pointer to Info (netr_UasInfo)",hf_netlogon_netr_LogonUasLogon_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogon_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UasInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonUasLogon_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_LogonUasLogon( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *workstation, */
+/* IDL: [out] [ref] netr_UasInfo **info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonUasLogon_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonUasLogon";
+       offset = netlogon_dissect_element_netr_LogonUasLogon_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonUasLogon_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonUasLogon";
+       offset = netlogon_dissect_element_netr_LogonUasLogon_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonUasLogon_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonUasLogon_workstation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogoff_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonUasLogoff_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonUasLogoff_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogoff_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_LogonUasLogoff_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonUasLogoff_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogoff_workstation_, NDR_POINTER_REF, "Pointer to Workstation (uint16)",hf_netlogon_netr_LogonUasLogoff_workstation);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonUasLogoff_workstation, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonUasLogoff_info_, NDR_POINTER_REF, "Pointer to Info (netr_UasLogoffInfo)",hf_netlogon_netr_LogonUasLogoff_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonUasLogoff_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UasLogoffInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonUasLogoff_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_LogonUasLogoff( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *workstation, */
+/* IDL: [out] [ref] netr_UasLogoffInfo *info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonUasLogoff_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonUasLogoff";
+       offset = netlogon_dissect_element_netr_LogonUasLogoff_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonUasLogoff_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonUasLogoff";
+       offset = netlogon_dissect_element_netr_LogonUasLogoff_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonUasLogoff_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonUasLogoff_workstation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonSamLogon_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogon_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_LogonSamLogon_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogon_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_credential_, NDR_POINTER_UNIQUE, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_LogonSamLogon_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonSamLogon_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_return_authenticator_, NDR_POINTER_UNIQUE, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_LogonSamLogon_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonSamLogon_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonInfoClass(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogon_logon_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_logon_, NDR_POINTER_REF, "Pointer to Logon (netr_LogonLevel)",hf_netlogon_netr_LogonSamLogon_logon);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_logon_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_LogonLevel(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogon_logon, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_validation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogon_validation_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_validation_, NDR_POINTER_REF, "Pointer to Validation (netr_Validation)",hf_netlogon_netr_LogonSamLogon_validation);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_validation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_Validation(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogon_validation, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_authoritative(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogon_authoritative_, NDR_POINTER_REF, "Pointer to Authoritative (uint8)",hf_netlogon_netr_LogonSamLogon_authoritative);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogon_authoritative_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogon_authoritative, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_LogonSamLogon( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [unique(1)] [in] netr_Authenticator *credential, */
+/* IDL: [out] [unique(1)] [in] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_LogonInfoClass logon_level, */
+/* IDL: [ref] [in] [switch_is(logon_level)] netr_LogonLevel *logon, */
+/* IDL: [in] uint16 validation_level, */
+/* IDL: [out] [ref] [switch_is(validation_level)] netr_Validation *validation, */
+/* IDL: [out] [ref] uint8 *authoritative */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonSamLogon_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogon";
+       offset = netlogon_dissect_element_netr_LogonSamLogon_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogon_validation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogon_authoritative(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonSamLogon_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogon";
+       offset = netlogon_dissect_element_netr_LogonSamLogon_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogon_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogon_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogon_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogon_logon_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogon_logon(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogon_validation_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogoff_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonSamLogoff_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogoff_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogoff_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_LogonSamLogoff_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogoff_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogoff_credential_, NDR_POINTER_UNIQUE, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_LogonSamLogoff_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonSamLogoff_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator_, NDR_POINTER_UNIQUE, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_LogonSamLogoff_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonSamLogoff_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonInfoClass(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogoff_logon_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogoff_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_LogonLevel(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogoff_logon, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_LogonSamLogoff( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [unique(1)] [in] netr_Authenticator *credential, */
+/* IDL: [out] [unique(1)] [in] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_LogonInfoClass logon_level, */
+/* IDL: [in] [switch_is(logon_level)] netr_LogonLevel logon */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonSamLogoff_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogoff";
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonSamLogoff_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogoff";
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_logon_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogoff_logon(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerReqChallenge_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerReqChallenge_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerReqChallenge_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerReqChallenge_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerReqChallenge_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerReqChallenge_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerReqChallenge_credentials_, NDR_POINTER_REF, "Pointer to Credentials (netr_Credential)",hf_netlogon_netr_ServerReqChallenge_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerReqChallenge_credentials,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerReqChallenge_return_credentials_, NDR_POINTER_REF, "Pointer to Return Credentials (netr_Credential)",hf_netlogon_netr_ServerReqChallenge_return_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerReqChallenge_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerReqChallenge_return_credentials,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerReqChallenge( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Credential *credentials, */
+/* IDL: [out] [ref] netr_Credential *return_credentials */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerReqChallenge_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerReqChallenge";
+       offset = netlogon_dissect_element_netr_ServerReqChallenge_return_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerReqChallenge_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerReqChallenge";
+       offset = netlogon_dissect_element_netr_ServerReqChallenge_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerReqChallenge_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerReqChallenge_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerAuthenticate_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerAuthenticate_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerAuthenticate_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerAuthenticate_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate_credentials_, NDR_POINTER_REF, "Pointer to Credentials (netr_Credential)",hf_netlogon_netr_ServerAuthenticate_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerAuthenticate_credentials,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate_return_credentials_, NDR_POINTER_REF, "Pointer to Return Credentials (netr_Credential)",hf_netlogon_netr_ServerAuthenticate_return_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerAuthenticate_return_credentials,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerAuthenticate( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Credential *credentials, */
+/* IDL: [out] [ref] netr_Credential *return_credentials */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerAuthenticate_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerAuthenticate";
+       offset = netlogon_dissect_element_netr_ServerAuthenticate_return_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerAuthenticate_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerAuthenticate";
+       offset = netlogon_dissect_element_netr_ServerAuthenticate_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerPasswordSet_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordSet_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerPasswordSet_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordSet_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerPasswordSet_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerPasswordSet_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordSet_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_ServerPasswordSet_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordSet_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_ServerPasswordSet_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordSet_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_new_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet_new_password_, NDR_POINTER_REF, "Pointer to New Password (samr_Password)",hf_netlogon_netr_ServerPasswordSet_new_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet_new_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordSet_new_password,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerPasswordSet( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] [ref] samr_Password *new_password */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerPasswordSet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerPasswordSet";
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerPasswordSet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerPasswordSet";
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet_new_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_logon_server_, NDR_POINTER_REF, "Pointer to Logon Server (uint16)",hf_netlogon_netr_DatabaseDeltas_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseDeltas_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_computername_, NDR_POINTER_REF, "Pointer to Computername (uint16)",hf_netlogon_netr_DatabaseDeltas_computername);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseDeltas_computername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_DatabaseDeltas_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseDeltas_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_DatabaseDeltas_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseDeltas_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_database_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SamDatabaseID(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseDeltas_database_id, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_sequence_num_, NDR_POINTER_REF, "Pointer to Sequence Num (udlong)",hf_netlogon_netr_DatabaseDeltas_sequence_num);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_sequence_num_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseDeltas_sequence_num, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array_, NDR_POINTER_REF, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseDeltas_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array__, NDR_POINTER_UNIQUE, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseDeltas_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseDeltas_delta_enum_array,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseDeltas_preferredmaximumlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseDeltas_preferredmaximumlength, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_DatabaseDeltas( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computername, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_SamDatabaseID database_id, */
+/* IDL: [out] [in] [ref] udlong *sequence_num, */
+/* IDL: [out] [ref] netr_DELTA_ENUM_ARRAY **delta_enum_array, */
+/* IDL: [in] uint32 preferredmaximumlength */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DatabaseDeltas_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DatabaseDeltas";
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_sequence_num(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_delta_enum_array(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DatabaseDeltas_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DatabaseDeltas";
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_computername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_database_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_sequence_num(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseDeltas_preferredmaximumlength(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_logon_server_, NDR_POINTER_REF, "Pointer to Logon Server (uint16)",hf_netlogon_netr_DatabaseSync_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseSync_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_computername_, NDR_POINTER_REF, "Pointer to Computername (uint16)",hf_netlogon_netr_DatabaseSync_computername);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseSync_computername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_DatabaseSync_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseSync_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_DatabaseSync_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseSync_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_database_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SamDatabaseID(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync_database_id, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_sync_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_sync_context_, NDR_POINTER_REF, "Pointer to Sync Context (uint32)",hf_netlogon_netr_DatabaseSync_sync_context);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_sync_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync_sync_context, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_delta_enum_array_, NDR_POINTER_REF, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseSync_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync_delta_enum_array__, NDR_POINTER_UNIQUE, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseSync_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseSync_delta_enum_array,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync_preferredmaximumlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync_preferredmaximumlength, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_DatabaseSync( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computername, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_SamDatabaseID database_id, */
+/* IDL: [out] [in] [ref] uint32 *sync_context, */
+/* IDL: [out] [ref] netr_DELTA_ENUM_ARRAY **delta_enum_array, */
+/* IDL: [in] uint32 preferredmaximumlength */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DatabaseSync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DatabaseSync";
+       offset = netlogon_dissect_element_netr_DatabaseSync_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseSync_sync_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseSync_delta_enum_array(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DatabaseSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DatabaseSync";
+       offset = netlogon_dissect_element_netr_DatabaseSync_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync_computername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync_database_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync_sync_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync_preferredmaximumlength(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_netlogon_netr_AccountDeltas_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_AccountDeltas_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_computername_, NDR_POINTER_REF, "Pointer to Computername (uint16)",hf_netlogon_netr_AccountDeltas_computername);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_AccountDeltas_computername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountDeltas_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_AccountDeltas_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountDeltas_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_uas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UAS_INFO_0(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountDeltas_uas,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountDeltas_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountDeltas_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_buffersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountDeltas_buffersize, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_buffer_, NDR_POINTER_REF, "Pointer to Buffer (netr_AccountBuffer)",hf_netlogon_netr_AccountDeltas_buffer);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountDeltas_buffer_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               netlogon_dissect_element_netr_AccountDeltas_buffer__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_AccountBuffer(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountDeltas_buffer,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_count_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_count_returned_, NDR_POINTER_REF, "Pointer to Count Returned (uint32)",hf_netlogon_netr_AccountDeltas_count_returned);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_count_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountDeltas_count_returned, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_total_entries_, NDR_POINTER_REF, "Pointer to Total Entries (uint32)",hf_netlogon_netr_AccountDeltas_total_entries);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountDeltas_total_entries, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_recordid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountDeltas_recordid_, NDR_POINTER_REF, "Pointer to Recordid (netr_UAS_INFO_0)",hf_netlogon_netr_AccountDeltas_recordid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountDeltas_recordid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UAS_INFO_0(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountDeltas_recordid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_AccountDeltas( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computername, */
+/* IDL: [in] netr_Authenticator credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_UAS_INFO_0 uas, */
+/* IDL: [in] uint32 count, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 buffersize, */
+/* IDL: [out] [ref] [subcontext(4)] netr_AccountBuffer *buffer, */
+/* IDL: [out] [ref] uint32 *count_returned, */
+/* IDL: [out] [ref] uint32 *total_entries, */
+/* IDL: [out] [ref] netr_UAS_INFO_0 *recordid */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_AccountDeltas_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_AccountDeltas";
+       offset = netlogon_dissect_element_netr_AccountDeltas_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountDeltas_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountDeltas_count_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountDeltas_total_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountDeltas_recordid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_AccountDeltas_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_AccountDeltas";
+       offset = netlogon_dissect_element_netr_AccountDeltas_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_computername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_uas(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountDeltas_buffersize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_netlogon_netr_AccountSync_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_AccountSync_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_computername_, NDR_POINTER_REF, "Pointer to Computername (uint16)",hf_netlogon_netr_AccountSync_computername);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_AccountSync_computername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountSync_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_AccountSync_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountSync_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_reference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_reference, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_buffersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_buffersize, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_buffer_, NDR_POINTER_REF, "Pointer to Buffer (netr_AccountBuffer)",hf_netlogon_netr_AccountSync_buffer);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_buffer_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               netlogon_dissect_element_netr_AccountSync_buffer__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_AccountBuffer(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountSync_buffer,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_count_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_count_returned_, NDR_POINTER_REF, "Pointer to Count Returned (uint32)",hf_netlogon_netr_AccountSync_count_returned);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_count_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_count_returned, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_total_entries_, NDR_POINTER_REF, "Pointer to Total Entries (uint32)",hf_netlogon_netr_AccountSync_total_entries);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_total_entries, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_next_reference(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_next_reference_, NDR_POINTER_REF, "Pointer to Next Reference (uint32)",hf_netlogon_netr_AccountSync_next_reference);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_next_reference_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_AccountSync_next_reference, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_recordid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_AccountSync_recordid_, NDR_POINTER_REF, "Pointer to Recordid (netr_UAS_INFO_0)",hf_netlogon_netr_AccountSync_recordid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_AccountSync_recordid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_UAS_INFO_0(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_AccountSync_recordid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_AccountSync( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computername, */
+/* IDL: [in] netr_Authenticator credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] uint32 reference, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 buffersize, */
+/* IDL: [out] [ref] [subcontext(4)] netr_AccountBuffer *buffer, */
+/* IDL: [out] [ref] uint32 *count_returned, */
+/* IDL: [out] [ref] uint32 *total_entries, */
+/* IDL: [out] [ref] uint32 *next_reference, */
+/* IDL: [out] [in] [ref] netr_UAS_INFO_0 *recordid */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_AccountSync_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_AccountSync";
+       offset = netlogon_dissect_element_netr_AccountSync_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountSync_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountSync_count_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountSync_total_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountSync_next_reference(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_AccountSync_recordid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_AccountSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_AccountSync";
+       offset = netlogon_dissect_element_netr_AccountSync_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_computername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_reference(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_buffersize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_AccountSync_recordid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetDcName_logon_server_, NDR_POINTER_REF, "Pointer to Logon Server (uint16)",hf_netlogon_netr_GetDcName_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetDcName_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetDcName_domainname_, NDR_POINTER_UNIQUE, "Pointer to Domainname (uint16)",hf_netlogon_netr_GetDcName_domainname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_domainname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetDcName_domainname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_dcname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetDcName_dcname_, NDR_POINTER_REF, "Pointer to Dcname (uint16)",hf_netlogon_netr_GetDcName_dcname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_dcname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetDcName_dcname__, NDR_POINTER_UNIQUE, "Pointer to Dcname (uint16)",hf_netlogon_netr_GetDcName_dcname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetDcName_dcname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetDcName_dcname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_GetDcName( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domainname, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **dcname */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_GetDcName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_GetDcName";
+       offset = netlogon_dissect_element_netr_GetDcName_dcname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_GetDcName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_GetDcName";
+       offset = netlogon_dissect_element_netr_GetDcName_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_GetDcName_domainname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_netlogon_netr_LogonControl_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonControl_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl_function_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonControlCode(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl_function_code, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl_query_, NDR_POINTER_REF, "Pointer to Query (netr_CONTROL_QUERY_INFORMATION)",hf_netlogon_netr_LogonControl_query);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_CONTROL_QUERY_INFORMATION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl_query, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_LogonControl( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [in] netr_LogonControlCode function_code, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonControl_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonControl";
+       offset = netlogon_dissect_element_netr_LogonControl_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonControl_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonControl";
+       offset = netlogon_dissect_element_netr_LogonControl_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl_function_code(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetAnyDCName_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_netlogon_netr_GetAnyDCName_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetAnyDCName_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_domainname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetAnyDCName_domainname_, NDR_POINTER_UNIQUE, "Pointer to Domainname (uint16)",hf_netlogon_netr_GetAnyDCName_domainname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_domainname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetAnyDCName_domainname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_dcname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetAnyDCName_dcname_, NDR_POINTER_REF, "Pointer to Dcname (uint16)",hf_netlogon_netr_GetAnyDCName_dcname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_dcname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetAnyDCName_dcname__, NDR_POINTER_UNIQUE, "Pointer to Dcname (uint16)",hf_netlogon_netr_GetAnyDCName_dcname);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetAnyDCName_dcname__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetAnyDCName_dcname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_GetAnyDCName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domainname, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **dcname */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_GetAnyDCName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_GetAnyDCName";
+       offset = netlogon_dissect_element_netr_GetAnyDCName_dcname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_GetAnyDCName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_GetAnyDCName";
+       offset = netlogon_dissect_element_netr_GetAnyDCName_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_GetAnyDCName_domainname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl2_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_netlogon_netr_LogonControl2_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonControl2_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_function_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonControlCode(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2_function_code, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl2_data_, NDR_POINTER_REF, "Pointer to Data (netr_CONTROL_DATA_INFORMATION)",hf_netlogon_netr_LogonControl2_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_CONTROL_DATA_INFORMATION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2_data, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl2_query_, NDR_POINTER_REF, "Pointer to Query (netr_CONTROL_QUERY_INFORMATION)",hf_netlogon_netr_LogonControl2_query);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_CONTROL_QUERY_INFORMATION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2_query, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_LogonControl2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [in] netr_LogonControlCode function_code, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(function_code)] netr_CONTROL_DATA_INFORMATION *data, */
+/* IDL: [out] [ref] [switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonControl2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonControl2";
+       offset = netlogon_dissect_element_netr_LogonControl2_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonControl2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonControl2";
+       offset = netlogon_dissect_element_netr_LogonControl2_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl2_function_code(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl2_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerAuthenticate2_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate2_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerAuthenticate2_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate2_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerAuthenticate2_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate2_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerAuthenticate2_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate2_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate2_credentials_, NDR_POINTER_REF, "Pointer to Credentials (netr_Credential)",hf_netlogon_netr_ServerAuthenticate2_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerAuthenticate2_credentials,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate2_return_credentials_, NDR_POINTER_REF, "Pointer to Return Credentials (netr_Credential)",hf_netlogon_netr_ServerAuthenticate2_return_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerAuthenticate2_return_credentials,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags_, NDR_POINTER_REF, "Pointer to Negotiate Flags (netr_NegotiateFlags)",hf_netlogon_netr_ServerAuthenticate2_negotiate_flags);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_NegotiateFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerAuthenticate2_negotiate_flags, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerAuthenticate2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Credential *credentials, */
+/* IDL: [out] [ref] netr_Credential *return_credentials, */
+/* IDL: [out] [in] [ref] netr_NegotiateFlags *negotiate_flags */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerAuthenticate2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerAuthenticate2";
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_return_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerAuthenticate2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerAuthenticate2";
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate2_negotiate_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_logon_server_, NDR_POINTER_REF, "Pointer to Logon Server (uint16)",hf_netlogon_netr_DatabaseSync2_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseSync2_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_computername_, NDR_POINTER_REF, "Pointer to Computername (uint16)",hf_netlogon_netr_DatabaseSync2_computername);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseSync2_computername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_DatabaseSync2_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseSync2_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_DatabaseSync2_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseSync2_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_database_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SamDatabaseID(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync2_database_id, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_restart_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_SyncStateEnum(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync2_restart_state, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_sync_context(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_sync_context_, NDR_POINTER_REF, "Pointer to Sync Context (uint32)",hf_netlogon_netr_DatabaseSync2_sync_context);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_sync_context_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync2_sync_context, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array_, NDR_POINTER_REF, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseSync2_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array__, NDR_POINTER_UNIQUE, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseSync2_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseSync2_delta_enum_array,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseSync2_preferredmaximumlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseSync2_preferredmaximumlength, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_DatabaseSync2( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computername, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_SamDatabaseID database_id, */
+/* IDL: [in] SyncStateEnum restart_state, */
+/* IDL: [out] [in] [ref] uint32 *sync_context, */
+/* IDL: [out] [ref] netr_DELTA_ENUM_ARRAY **delta_enum_array, */
+/* IDL: [in] uint32 preferredmaximumlength */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DatabaseSync2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DatabaseSync2";
+       offset = netlogon_dissect_element_netr_DatabaseSync2_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseSync2_sync_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseSync2_delta_enum_array(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DatabaseSync2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DatabaseSync2";
+       offset = netlogon_dissect_element_netr_DatabaseSync2_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_computername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_database_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_restart_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_sync_context(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseSync2_preferredmaximumlength(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseRedo_logon_server_, NDR_POINTER_REF, "Pointer to Logon Server (uint16)",hf_netlogon_netr_DatabaseRedo_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseRedo_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_computername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseRedo_computername_, NDR_POINTER_REF, "Pointer to Computername (uint16)",hf_netlogon_netr_DatabaseRedo_computername);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_computername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DatabaseRedo_computername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseRedo_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_DatabaseRedo_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseRedo_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseRedo_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_DatabaseRedo_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseRedo_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_change_log_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseRedo_change_log_entry_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               netlogon_dissect_element_netr_DatabaseRedo_change_log_entry_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_change_log_entry_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_ChangeLogEntry(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseRedo_change_log_entry,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_change_log_entry_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DatabaseRedo_change_log_entry_size, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array_, NDR_POINTER_REF, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseRedo_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array__, NDR_POINTER_UNIQUE, "Pointer to Delta Enum Array (netr_DELTA_ENUM_ARRAY)",hf_netlogon_netr_DatabaseRedo_delta_enum_array);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DatabaseRedo_delta_enum_array,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_DatabaseRedo( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computername, */
+/* IDL: [ref] [in] netr_Authenticator *credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [subcontext(4)] [in] netr_ChangeLogEntry change_log_entry, */
+/* IDL: [value(ndr_size_netr_ChangeLogEntry(&change_log_entry,ndr->flags))] [in] uint32 change_log_entry_size, */
+/* IDL: [out] [ref] netr_DELTA_ENUM_ARRAY **delta_enum_array */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DatabaseRedo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DatabaseRedo";
+       offset = netlogon_dissect_element_netr_DatabaseRedo_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DatabaseRedo_delta_enum_array(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DatabaseRedo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DatabaseRedo";
+       offset = netlogon_dissect_element_netr_DatabaseRedo_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseRedo_computername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseRedo_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseRedo_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseRedo_change_log_entry(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DatabaseRedo_change_log_entry_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl2Ex_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_netlogon_netr_LogonControl2Ex_logon_server);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonControl2Ex_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_function_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonControlCode(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2Ex_function_code, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2Ex_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl2Ex_data_, NDR_POINTER_REF, "Pointer to Data (netr_CONTROL_DATA_INFORMATION)",hf_netlogon_netr_LogonControl2Ex_data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_CONTROL_DATA_INFORMATION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2Ex_data, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonControl2Ex_query_, NDR_POINTER_REF, "Pointer to Query (netr_CONTROL_QUERY_INFORMATION)",hf_netlogon_netr_LogonControl2Ex_query);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonControl2Ex_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_CONTROL_QUERY_INFORMATION(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonControl2Ex_query, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_LogonControl2Ex( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *logon_server, */
+/* IDL: [in] netr_LogonControlCode function_code, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(function_code)] netr_CONTROL_DATA_INFORMATION *data, */
+/* IDL: [out] [ref] [switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonControl2Ex_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonControl2Ex";
+       offset = netlogon_dissect_element_netr_LogonControl2Ex_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonControl2Ex_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonControl2Ex";
+       offset = netlogon_dissect_element_netr_LogonControl2Ex_logon_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl2Ex_function_code(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl2Ex_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonControl2Ex_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_NetrEnumerateTrustedDomains_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_NetrEnumerateTrustedDomains_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_trusted_domains_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_trusted_domains_blob_, NDR_POINTER_REF, "Pointer to Trusted Domains Blob (netr_Blob)",hf_netlogon_netr_NetrEnumerateTrustedDomains_trusted_domains_blob);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_trusted_domains_blob_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Blob(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_NetrEnumerateTrustedDomains_trusted_domains_blob,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_NetrEnumerateTrustedDomains( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [ref] netr_Blob *trusted_domains_blob */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NetrEnumerateTrustedDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NetrEnumerateTrustedDomains";
+       offset = netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_trusted_domains_blob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NetrEnumerateTrustedDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NetrEnumerateTrustedDomains";
+       offset = netlogon_dissect_element_netr_NetrEnumerateTrustedDomains_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCName_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_netlogon_netr_DsRGetDCName_server_unc);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCName_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCName_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_netlogon_netr_DsRGetDCName_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCName_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCName_domain_guid_, NDR_POINTER_UNIQUE, "Pointer to Domain Guid (GUID)",hf_netlogon_netr_DsRGetDCName_domain_guid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCName_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_site_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCName_site_guid_, NDR_POINTER_UNIQUE, "Pointer to Site Guid (GUID)",hf_netlogon_netr_DsRGetDCName_site_guid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_site_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCName_site_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_DsRGetDCName_flags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCName_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCName_info_, NDR_POINTER_REF, "Pointer to Info (netr_DsRGetDCNameInfo)",hf_netlogon_netr_DsRGetDCName_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCName_info__, NDR_POINTER_UNIQUE, "Pointer to Info (netr_DsRGetDCNameInfo)",hf_netlogon_netr_DsRGetDCName_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCName_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRGetDCNameInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRGetDCName_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRGetDCName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] GUID *domain_guid, */
+/* IDL: [unique(1)] [in] GUID *site_guid, */
+/* IDL: [in] netr_DsRGetDCName_flags flags, */
+/* IDL: [out] [ref] netr_DsRGetDCNameInfo **info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRGetDCName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRGetDCName";
+       offset = netlogon_dissect_element_netr_DsRGetDCName_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRGetDCName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRGetDCName";
+       offset = netlogon_dissect_element_netr_DsRGetDCName_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCName_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCName_domain_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCName_site_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCName_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetCapabilities_server_name_, NDR_POINTER_REF, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonGetCapabilities_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonGetCapabilities_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetCapabilities_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_LogonGetCapabilities_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonGetCapabilities_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetCapabilities_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_LogonGetCapabilities_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonGetCapabilities_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_LogonGetCapabilities_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonGetCapabilities_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_query_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonGetCapabilities_query_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_capabilities(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetCapabilities_capabilities_, NDR_POINTER_REF, "Pointer to Capabilities (netr_Capabilities)",hf_netlogon_netr_LogonGetCapabilities_capabilities);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetCapabilities_capabilities_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_Capabilities(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonGetCapabilities_capabilities, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_LogonGetCapabilities( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] uint32 query_level, */
+/* IDL: [out] [ref] [switch_is(query_level)] netr_Capabilities *capabilities */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonGetCapabilities_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonGetCapabilities";
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_capabilities(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonGetCapabilities_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonGetCapabilities";
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetCapabilities_query_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR netr_NETRLOGONSETSERVICEBITS( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NETRLOGONSETSERVICEBITS_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONSETSERVICEBITS";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NETRLOGONSETSERVICEBITS_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONSETSERVICEBITS";
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetTrustRid_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetTrustRid_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonGetTrustRid_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetTrustRid_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonGetTrustRid_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetTrustRid_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetTrustRid_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_netlogon_netr_LogonGetTrustRid_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetTrustRid_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonGetTrustRid_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetTrustRid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetTrustRid_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_netlogon_netr_LogonGetTrustRid_rid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetTrustRid_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonGetTrustRid_rid, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_LogonGetTrustRid( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [out] [ref] uint32 *rid */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonGetTrustRid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonGetTrustRid";
+       offset = netlogon_dissect_element_netr_LogonGetTrustRid_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonGetTrustRid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonGetTrustRid";
+       offset = netlogon_dissect_element_netr_LogonGetTrustRid_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetTrustRid_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR netr_NETRLOGONCOMPUTESERVERDIGEST( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NETRLOGONCOMPUTESERVERDIGEST_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONCOMPUTESERVERDIGEST";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NETRLOGONCOMPUTESERVERDIGEST_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONCOMPUTESERVERDIGEST";
+       return offset;
+}
+
+/* IDL: WERROR netr_NETRLOGONCOMPUTECLIENTDIGEST( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NETRLOGONCOMPUTECLIENTDIGEST_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONCOMPUTECLIENTDIGEST";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NETRLOGONCOMPUTECLIENTDIGEST_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONCOMPUTECLIENTDIGEST";
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerAuthenticate3_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate3_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerAuthenticate3_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate3_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerAuthenticate3_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerAuthenticate3_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerAuthenticate3_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_credentials_, NDR_POINTER_REF, "Pointer to Credentials (netr_Credential)",hf_netlogon_netr_ServerAuthenticate3_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerAuthenticate3_credentials,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_return_credentials(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_return_credentials_, NDR_POINTER_REF, "Pointer to Return Credentials (netr_Credential)",hf_netlogon_netr_ServerAuthenticate3_return_credentials);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_return_credentials_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerAuthenticate3_return_credentials,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags_, NDR_POINTER_REF, "Pointer to Negotiate Flags (netr_NegotiateFlags)",hf_netlogon_netr_ServerAuthenticate3_negotiate_flags);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_NegotiateFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerAuthenticate3_negotiate_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerAuthenticate3_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_netlogon_netr_ServerAuthenticate3_rid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerAuthenticate3_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerAuthenticate3_rid, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerAuthenticate3( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Credential *credentials, */
+/* IDL: [out] [ref] netr_Credential *return_credentials, */
+/* IDL: [out] [in] [ref] netr_NegotiateFlags *negotiate_flags, */
+/* IDL: [out] [ref] uint32 *rid */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerAuthenticate3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerAuthenticate3";
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_return_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerAuthenticate3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerAuthenticate3";
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_credentials(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerAuthenticate3_negotiate_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_netlogon_netr_DsRGetDCNameEx_server_unc);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_netlogon_netr_DsRGetDCNameEx_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx_domain_guid_, NDR_POINTER_UNIQUE, "Pointer to Domain Guid (GUID)",hf_netlogon_netr_DsRGetDCNameEx_domain_guid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameEx_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_netlogon_netr_DsRGetDCNameEx_site_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_DsRGetDCName_flags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameEx_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx_info_, NDR_POINTER_REF, "Pointer to Info (netr_DsRGetDCNameInfo)",hf_netlogon_netr_DsRGetDCNameEx_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx_info__, NDR_POINTER_UNIQUE, "Pointer to Info (netr_DsRGetDCNameInfo)",hf_netlogon_netr_DsRGetDCNameEx_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRGetDCNameInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRGetDCNameEx_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRGetDCNameEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] GUID *domain_guid, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *site_name, */
+/* IDL: [in] netr_DsRGetDCName_flags flags, */
+/* IDL: [out] [ref] netr_DsRGetDCNameInfo **info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRGetDCNameEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRGetDCNameEx";
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRGetDCNameEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRGetDCNameEx";
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx_domain_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx_site_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetSiteName_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetSiteName_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_DsRGetSiteName_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetSiteName_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetSiteName_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetSiteName_site(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetSiteName_site_, NDR_POINTER_REF, "Pointer to Site (uint16)",hf_netlogon_netr_DsRGetSiteName_site);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetSiteName_site_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetSiteName_site__, NDR_POINTER_UNIQUE, "Pointer to Site (uint16)",hf_netlogon_netr_DsRGetSiteName_site);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetSiteName_site__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetSiteName_site, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRGetSiteName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **site */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRGetSiteName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRGetSiteName";
+       offset = netlogon_dissect_element_netr_DsRGetSiteName_site(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRGetSiteName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRGetSiteName";
+       offset = netlogon_dissect_element_netr_DsRGetSiteName_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetDomainInfo_server_name_, NDR_POINTER_REF, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonGetDomainInfo_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonGetDomainInfo_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetDomainInfo_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_LogonGetDomainInfo_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonGetDomainInfo_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetDomainInfo_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_LogonGetDomainInfo_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonGetDomainInfo_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_LogonGetDomainInfo_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonGetDomainInfo_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonGetDomainInfo_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetDomainInfo_query_, NDR_POINTER_REF, "Pointer to Query (netr_WorkstationInfo)",hf_netlogon_netr_LogonGetDomainInfo_query);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_WorkstationInfo(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonGetDomainInfo_query, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonGetDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (netr_DomainInfo)",hf_netlogon_netr_LogonGetDomainInfo_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonGetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_DomainInfo(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonGetDomainInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_LogonGetDomainInfo( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [in] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] netr_WorkstationInfo *query, */
+/* IDL: [out] [ref] [switch_is(level)] netr_DomainInfo *info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonGetDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonGetDomainInfo";
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonGetDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonGetDomainInfo";
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonGetDomainInfo_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerPasswordSet2_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordSet2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet2_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerPasswordSet2_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordSet2_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerPasswordSet2_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet2_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerPasswordSet2_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordSet2_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet2_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_ServerPasswordSet2_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordSet2_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet2_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_ServerPasswordSet2_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordSet2_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_new_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordSet2_new_password_, NDR_POINTER_REF, "Pointer to New Password (netr_CryptPassword)",hf_netlogon_netr_ServerPasswordSet2_new_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordSet2_new_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_CryptPassword(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordSet2_new_password,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerPasswordSet2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] [ref] netr_CryptPassword *new_password */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerPasswordSet2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerPasswordSet2";
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerPasswordSet2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerPasswordSet2";
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordSet2_new_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordGet_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerPasswordGet_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordGet_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordGet_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerPasswordGet_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordGet_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerPasswordGet_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordGet_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerPasswordGet_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerPasswordGet_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordGet_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_ServerPasswordGet_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordGet_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordGet_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_ServerPasswordGet_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordGet_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerPasswordGet_password_, NDR_POINTER_REF, "Pointer to Password (samr_Password)",hf_netlogon_netr_ServerPasswordGet_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerPasswordGet_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerPasswordGet_password,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_ServerPasswordGet( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [out] [ref] samr_Password *password */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerPasswordGet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerPasswordGet";
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerPasswordGet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerPasswordGet";
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerPasswordGet_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR netr_NETRLOGONSENDTOSAM( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NETRLOGONSENDTOSAM_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONSENDTOSAM";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NETRLOGONSENDTOSAM_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONSENDTOSAM";
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesW_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsRAddressToSitenamesW_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRAddressToSitenamesW_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddressToSitenamesW_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses_, NDR_POINTER_REF, "Pointer to Addresses (netr_DsRAddress)",hf_netlogon_netr_DsRAddressToSitenamesW_addresses);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRAddress(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesW_addresses,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr_, NDR_POINTER_REF, "Pointer to Ctr (netr_DsRAddressToSitenamesWCtr)",hf_netlogon_netr_DsRAddressToSitenamesW_ctr);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr__, NDR_POINTER_UNIQUE, "Pointer to Ctr (netr_DsRAddressToSitenamesWCtr)",hf_netlogon_netr_DsRAddressToSitenamesW_ctr);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRAddressToSitenamesWCtr(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesW_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRAddressToSitenamesW( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] [range(0,32000)] uint32 count, */
+/* IDL: [ref] [in] [size_is(count)] netr_DsRAddress *addresses, */
+/* IDL: [out] [ref] netr_DsRAddressToSitenamesWCtr **ctr */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRAddressToSitenamesW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRAddressToSitenamesW";
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesW_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRAddressToSitenamesW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRAddressToSitenamesW";
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesW_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesW_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesW_addresses(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_netlogon_netr_DsRGetDCNameEx2_server_unc);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx2_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_client_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_client_account_, NDR_POINTER_UNIQUE, "Pointer to Client Account (uint16)",hf_netlogon_netr_DsRGetDCNameEx2_client_account);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_client_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx2_client_account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_samr_AcctFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameEx2_mask, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_netlogon_netr_DsRGetDCNameEx2_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx2_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_guid_, NDR_POINTER_UNIQUE, "Pointer to Domain Guid (GUID)",hf_netlogon_netr_DsRGetDCNameEx2_domain_guid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameEx2_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_netlogon_netr_DsRGetDCNameEx2_site_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetDCNameEx2_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_DsRGetDCName_flags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetDCNameEx2_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_info_, NDR_POINTER_REF, "Pointer to Info (netr_DsRGetDCNameInfo)",hf_netlogon_netr_DsRGetDCNameEx2_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetDCNameEx2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (netr_DsRGetDCNameInfo)",hf_netlogon_netr_DsRGetDCNameEx2_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetDCNameEx2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRGetDCNameInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRGetDCNameEx2_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRGetDCNameEx2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *client_account, */
+/* IDL: [in] samr_AcctFlags mask, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] GUID *domain_guid, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *site_name, */
+/* IDL: [in] netr_DsRGetDCName_flags flags, */
+/* IDL: [out] [ref] netr_DsRGetDCNameInfo **info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRGetDCNameEx2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRGetDCNameEx2";
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRGetDCNameEx2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRGetDCNameEx2";
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_client_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_domain_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_site_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetDCNameEx2_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN";
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list_, NDR_POINTER_REF, "Pointer to Dom Trust List (netr_DomainTrustList)",hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DomainTrustList(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_NetrEnumerateTrustedDomainsEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [ref] netr_DomainTrustList *dom_trust_list */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_NetrEnumerateTrustedDomainsEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_NetrEnumerateTrustedDomainsEx";
+       offset = netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_NetrEnumerateTrustedDomainsEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_NetrEnumerateTrustedDomainsEx";
+       offset = netlogon_dissect_element_netr_NetrEnumerateTrustedDomainsEx_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExW_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsRAddressToSitenamesExW_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRAddressToSitenamesExW_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRAddressToSitenamesExW_count, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses_, NDR_POINTER_REF, "Pointer to Addresses (netr_DsRAddress)",hf_netlogon_netr_DsRAddressToSitenamesExW_addresses);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses__);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRAddress(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesExW_addresses,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr_, NDR_POINTER_REF, "Pointer to Ctr (netr_DsRAddressToSitenamesExWCtr)",hf_netlogon_netr_DsRAddressToSitenamesExW_ctr);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr__, NDR_POINTER_UNIQUE, "Pointer to Ctr (netr_DsRAddressToSitenamesExWCtr)",hf_netlogon_netr_DsRAddressToSitenamesExW_ctr);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DsRAddressToSitenamesExWCtr(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRAddressToSitenamesExW_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRAddressToSitenamesExW( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] [range(0,32000)] uint32 count, */
+/* IDL: [ref] [in] [size_is(count)] netr_DsRAddress *addresses, */
+/* IDL: [out] [ref] netr_DsRAddressToSitenamesExWCtr **ctr */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRAddressToSitenamesExW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRAddressToSitenamesExW";
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExW_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRAddressToSitenamesExW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRAddressToSitenamesExW";
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExW_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExW_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRAddressToSitenamesExW_addresses(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsrGetDcSiteCoverageW_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrGetDcSiteCoverageW_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr_, NDR_POINTER_REF, "Pointer to Ctr (DcSitesCtr)",hf_netlogon_netr_DsrGetDcSiteCoverageW_ctr);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr__, NDR_POINTER_UNIQUE, "Pointer to Ctr (DcSitesCtr)",hf_netlogon_netr_DsrGetDcSiteCoverageW_ctr);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_DcSitesCtr(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsrGetDcSiteCoverageW_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsrGetDcSiteCoverageW( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [ref] DcSitesCtr **ctr */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsrGetDcSiteCoverageW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsrGetDcSiteCoverageW";
+       offset = netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsrGetDcSiteCoverageW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsrGetDcSiteCoverageW";
+       offset = netlogon_dissect_element_netr_DsrGetDcSiteCoverageW_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonEx_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonSamLogonEx_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogonEx_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonEx_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_LogonSamLogonEx_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogonEx_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonInfoClass(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonEx_logon_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonEx_logon_, NDR_POINTER_REF, "Pointer to Logon (netr_LogonLevel)",hf_netlogon_netr_LogonSamLogonEx_logon);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_logon_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_LogonLevel(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonEx_logon, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_validation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonEx_validation_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonEx_validation_, NDR_POINTER_REF, "Pointer to Validation (netr_Validation)",hf_netlogon_netr_LogonSamLogonEx_validation);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_validation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_Validation(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonEx_validation, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_authoritative(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonEx_authoritative_, NDR_POINTER_REF, "Pointer to Authoritative (uint8)",hf_netlogon_netr_LogonSamLogonEx_authoritative);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_authoritative_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonEx_authoritative, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonEx_flags_, NDR_POINTER_REF, "Pointer to Flags (uint32)",hf_netlogon_netr_LogonSamLogonEx_flags);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonEx_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonEx_flags, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_LogonSamLogonEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] netr_LogonInfoClass logon_level, */
+/* IDL: [ref] [in] [switch_is(logon_level)] netr_LogonLevel *logon, */
+/* IDL: [in] uint16 validation_level, */
+/* IDL: [out] [ref] [switch_is(validation_level)] netr_Validation *validation, */
+/* IDL: [out] [ref] uint8 *authoritative, */
+/* IDL: [out] [in] [ref] uint32 *flags */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonSamLogonEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogonEx";
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_validation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_authoritative(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonSamLogonEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogonEx";
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_logon_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_logon(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_validation_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsrEnumerateDomainTrusts_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrEnumerateDomainTrusts_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trust_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_bitmap_netr_TrustFlags(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsrEnumerateDomainTrusts_trust_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trusts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trusts_, NDR_POINTER_REF, "Pointer to Trusts (netr_DomainTrustList)",hf_netlogon_netr_DsrEnumerateDomainTrusts_trusts);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trusts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_DomainTrustList(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsrEnumerateDomainTrusts_trusts,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsrEnumerateDomainTrusts( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] netr_TrustFlags trust_flags, */
+/* IDL: [out] [ref] netr_DomainTrustList *trusts */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsrEnumerateDomainTrusts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsrEnumerateDomainTrusts";
+       offset = netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trusts(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsrEnumerateDomainTrusts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsrEnumerateDomainTrusts";
+       offset = netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrEnumerateDomainTrusts_trust_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsrDeregisterDNSHostRecords_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrDeregisterDNSHostRecords_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_guid_, NDR_POINTER_UNIQUE, "Pointer to Domain Guid (GUID)",hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain_guid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dsa_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dsa_guid_, NDR_POINTER_UNIQUE, "Pointer to Dsa Guid (GUID)",hf_netlogon_netr_DsrDeregisterDNSHostRecords_dsa_guid);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dsa_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsrDeregisterDNSHostRecords_dsa_guid, NULL);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dns_host(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dns_host_, NDR_POINTER_REF, "Pointer to Dns Host (uint16)",hf_netlogon_netr_DsrDeregisterDNSHostRecords_dns_host);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dns_host_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrDeregisterDNSHostRecords_dns_host, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsrDeregisterDNSHostRecords( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *domain, */
+/* IDL: [unique(1)] [in] GUID *domain_guid, */
+/* IDL: [unique(1)] [in] GUID *dsa_guid, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *dns_host */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsrDeregisterDNSHostRecords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsrDeregisterDNSHostRecords";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsrDeregisterDNSHostRecords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsrDeregisterDNSHostRecords";
+       offset = netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_domain_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dsa_guid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrDeregisterDNSHostRecords_dns_host(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerTrustPasswordsGet_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerTrustPasswordsGet_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerTrustPasswordsGet_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerTrustPasswordsGet_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerTrustPasswordsGet_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerTrustPasswordsGet_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerTrustPasswordsGet_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_ServerTrustPasswordsGet_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerTrustPasswordsGet_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_ServerTrustPasswordsGet_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerTrustPasswordsGet_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_password_, NDR_POINTER_REF, "Pointer to Password (samr_Password)",hf_netlogon_netr_ServerTrustPasswordsGet_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerTrustPasswordsGet_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_password2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerTrustPasswordsGet_password2_, NDR_POINTER_REF, "Pointer to Password2 (samr_Password)",hf_netlogon_netr_ServerTrustPasswordsGet_password2);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerTrustPasswordsGet_password2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerTrustPasswordsGet_password2,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerTrustPasswordsGet( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [out] [ref] samr_Password *password, */
+/* IDL: [out] [ref] samr_Password *password2 */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerTrustPasswordsGet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerTrustPasswordsGet";
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_password2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerTrustPasswordsGet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerTrustPasswordsGet";
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerTrustPasswordsGet_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetForestTrustInformation_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsRGetForestTrustInformation_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetForestTrustInformation_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_trusted_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetForestTrustInformation_trusted_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Trusted Domain Name (uint16)",hf_netlogon_netr_DsRGetForestTrustInformation_trusted_domain_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_trusted_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsRGetForestTrustInformation_trusted_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsRGetForestTrustInformation_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info_, NDR_POINTER_REF, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_netlogon_netr_DsRGetForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info__, NDR_POINTER_UNIQUE, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_netlogon_netr_DsRGetForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_ForestTrustInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsRGetForestTrustInformation_forest_trust_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR netr_DsRGetForestTrustInformation( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *trusted_domain_name, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] lsa_ForestTrustInformation **forest_trust_info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsRGetForestTrustInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsRGetForestTrustInformation";
+       offset = netlogon_dissect_element_netr_DsRGetForestTrustInformation_forest_trust_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsRGetForestTrustInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsRGetForestTrustInformation";
+       offset = netlogon_dissect_element_netr_DsRGetForestTrustInformation_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetForestTrustInformation_trusted_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsRGetForestTrustInformation_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetForestTrustInformation_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_GetForestTrustInformation_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetForestTrustInformation_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetForestTrustInformation_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_GetForestTrustInformation_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_GetForestTrustInformation_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetForestTrustInformation_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_GetForestTrustInformation_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_GetForestTrustInformation_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetForestTrustInformation_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_GetForestTrustInformation_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_GetForestTrustInformation_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_GetForestTrustInformation_flags, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info_, NDR_POINTER_REF, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_netlogon_netr_GetForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info__, NDR_POINTER_UNIQUE, "Pointer to Forest Trust Info (lsa_ForestTrustInformation)",hf_netlogon_netr_GetForestTrustInformation_forest_trust_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_lsa_ForestTrustInformation(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_GetForestTrustInformation_forest_trust_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_GetForestTrustInformation( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [in] uint32 flags, */
+/* IDL: [out] [ref] lsa_ForestTrustInformation **forest_trust_info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_GetForestTrustInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_GetForestTrustInformation";
+       offset = netlogon_dissect_element_netr_GetForestTrustInformation_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_GetForestTrustInformation_forest_trust_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_GetForestTrustInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_GetForestTrustInformation";
+       offset = netlogon_dissect_element_netr_GetForestTrustInformation_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_GetForestTrustInformation_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_GetForestTrustInformation_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_GetForestTrustInformation_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_LogonSamLogonWithFlags_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogonWithFlags_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (uint16)",hf_netlogon_netr_LogonSamLogonWithFlags_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_LogonSamLogonWithFlags_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_credential_, NDR_POINTER_UNIQUE, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_LogonSamLogonWithFlags_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonSamLogonWithFlags_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator_, NDR_POINTER_UNIQUE, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_LogonSamLogonWithFlags_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_LogonSamLogonWithFlags_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_LogonInfoClass(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonWithFlags_logon_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon_, NDR_POINTER_REF, "Pointer to Logon (netr_LogonLevel)",hf_netlogon_netr_LogonSamLogonWithFlags_logon);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_LogonLevel(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonWithFlags_logon, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonWithFlags_validation_level, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation_, NDR_POINTER_REF, "Pointer to Validation (netr_Validation)",hf_netlogon_netr_LogonSamLogonWithFlags_validation);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_netr_Validation(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonWithFlags_validation, *0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_authoritative(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_authoritative_, NDR_POINTER_REF, "Pointer to Authoritative (uint8)",hf_netlogon_netr_LogonSamLogonWithFlags_authoritative);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_authoritative_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonWithFlags_authoritative, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags_, NDR_POINTER_REF, "Pointer to Flags (uint32)",hf_netlogon_netr_LogonSamLogonWithFlags_flags);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_LogonSamLogonWithFlags_flags, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_LogonSamLogonWithFlags( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [unique(1)] [in] netr_Authenticator *credential, */
+/* IDL: [out] [unique(1)] [in] netr_Authenticator *return_authenticator, */
+/* IDL: [in] netr_LogonInfoClass logon_level, */
+/* IDL: [ref] [in] [switch_is(logon_level)] netr_LogonLevel *logon, */
+/* IDL: [in] uint16 validation_level, */
+/* IDL: [out] [ref] [switch_is(validation_level)] netr_Validation *validation, */
+/* IDL: [out] [ref] uint8 *authoritative, */
+/* IDL: [out] [in] [ref] uint32 *flags */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_LogonSamLogonWithFlags_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogonWithFlags";
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_authoritative(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_LogonSamLogonWithFlags_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_LogonSamLogonWithFlags";
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_logon(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_validation_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_LogonSamLogonWithFlags_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_ServerGetTrustInfo_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerGetTrustInfo_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_account_name_, NDR_POINTER_REF, "Pointer to Account Name (uint16)",hf_netlogon_netr_ServerGetTrustInfo_account_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerGetTrustInfo_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_enum_netr_SchannelType(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_ServerGetTrustInfo_secure_channel_type, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_ServerGetTrustInfo_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_ServerGetTrustInfo_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_ServerGetTrustInfo_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerGetTrustInfo_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_ServerGetTrustInfo_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerGetTrustInfo_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_new_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_new_owf_password_, NDR_POINTER_REF, "Pointer to New Owf Password (samr_Password)",hf_netlogon_netr_ServerGetTrustInfo_new_owf_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_new_owf_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerGetTrustInfo_new_owf_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_old_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_old_owf_password_, NDR_POINTER_REF, "Pointer to Old Owf Password (samr_Password)",hf_netlogon_netr_ServerGetTrustInfo_old_owf_password);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_old_owf_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_samr_Password(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerGetTrustInfo_old_owf_password,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info_, NDR_POINTER_REF, "Pointer to Trust Info (netr_TrustInfo)",hf_netlogon_netr_ServerGetTrustInfo_trust_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info__, NDR_POINTER_UNIQUE, "Pointer to Trust Info (netr_TrustInfo)",hf_netlogon_netr_ServerGetTrustInfo_trust_info);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_TrustInfo(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_ServerGetTrustInfo_trust_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_ServerGetTrustInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *account_name, */
+/* IDL: [in] netr_SchannelType secure_channel_type, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [out] [ref] samr_Password *new_owf_password, */
+/* IDL: [out] [ref] samr_Password *old_owf_password, */
+/* IDL: [out] [ref] netr_TrustInfo **trust_info */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_ServerGetTrustInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_ServerGetTrustInfo";
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_new_owf_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_old_owf_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_trust_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_ServerGetTrustInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_ServerGetTrustInfo";
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_secure_channel_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_ServerGetTrustInfo_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_Unused47( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_Unused47_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_Unused47";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_Unused47_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_Unused47";
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_server_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name_, NDR_POINTER_REF, "Pointer to Computer Name (uint16)",hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_credential_, NDR_POINTER_REF, "Pointer to Credential (netr_Authenticator)",hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_credential);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_credential_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_credential,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator_, NDR_POINTER_REF, "Pointer to Return Authenticator (netr_Authenticator)",hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_netr_Authenticator(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator,0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_site_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_site_name_, NDR_POINTER_UNIQUE, "Pointer to Site Name (uint16)",hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_site_name);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_site_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_site_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_ttl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_ttl, 0);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names_, NDR_POINTER_REF, "Pointer to Dns Names (NL_DNS_NAME_INFO_ARRAY)",hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names);
+
+       return offset;
+}
+
+static int
+netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = netlogon_dissect_struct_NL_DNS_NAME_INFO_ARRAY(tvb,offset,pinfo,tree,drep,hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS netr_DsrUpdateReadOnlyServerDnsRecords( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *computer_name, */
+/* IDL: [in] [ref] netr_Authenticator *credential, */
+/* IDL: [out] [ref] netr_Authenticator *return_authenticator, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *site_name, */
+/* IDL: [in] uint32 dns_ttl, */
+/* IDL: [out] [in] [ref] NL_DNS_NAME_INFO_ARRAY *dns_names */
+/* IDL: ); */
+
+static int
+netlogon_dissect_netr_DsrUpdateReadOnlyServerDnsRecords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="netr_DsrUpdateReadOnlyServerDnsRecords";
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_netlogon_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+netlogon_dissect_netr_DsrUpdateReadOnlyServerDnsRecords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="netr_DsrUpdateReadOnlyServerDnsRecords";
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_credential(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_site_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_ttl(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = netlogon_dissect_element_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector netlogon_dissectors[] = {
+       { 0, "netr_LogonUasLogon",
+          netlogon_dissect_netr_LogonUasLogon_request, netlogon_dissect_netr_LogonUasLogon_response},
+       { 1, "netr_LogonUasLogoff",
+          netlogon_dissect_netr_LogonUasLogoff_request, netlogon_dissect_netr_LogonUasLogoff_response},
+       { 2, "netr_LogonSamLogon",
+          netlogon_dissect_netr_LogonSamLogon_request, netlogon_dissect_netr_LogonSamLogon_response},
+       { 3, "netr_LogonSamLogoff",
+          netlogon_dissect_netr_LogonSamLogoff_request, netlogon_dissect_netr_LogonSamLogoff_response},
+       { 4, "netr_ServerReqChallenge",
+          netlogon_dissect_netr_ServerReqChallenge_request, netlogon_dissect_netr_ServerReqChallenge_response},
+       { 5, "netr_ServerAuthenticate",
+          netlogon_dissect_netr_ServerAuthenticate_request, netlogon_dissect_netr_ServerAuthenticate_response},
+       { 6, "netr_ServerPasswordSet",
+          netlogon_dissect_netr_ServerPasswordSet_request, netlogon_dissect_netr_ServerPasswordSet_response},
+       { 7, "netr_DatabaseDeltas",
+          netlogon_dissect_netr_DatabaseDeltas_request, netlogon_dissect_netr_DatabaseDeltas_response},
+       { 8, "netr_DatabaseSync",
+          netlogon_dissect_netr_DatabaseSync_request, netlogon_dissect_netr_DatabaseSync_response},
+       { 9, "netr_AccountDeltas",
+          netlogon_dissect_netr_AccountDeltas_request, netlogon_dissect_netr_AccountDeltas_response},
+       { 10, "netr_AccountSync",
+          netlogon_dissect_netr_AccountSync_request, netlogon_dissect_netr_AccountSync_response},
+       { 11, "netr_GetDcName",
+          netlogon_dissect_netr_GetDcName_request, netlogon_dissect_netr_GetDcName_response},
+       { 12, "netr_LogonControl",
+          netlogon_dissect_netr_LogonControl_request, netlogon_dissect_netr_LogonControl_response},
+       { 13, "netr_GetAnyDCName",
+          netlogon_dissect_netr_GetAnyDCName_request, netlogon_dissect_netr_GetAnyDCName_response},
+       { 14, "netr_LogonControl2",
+          netlogon_dissect_netr_LogonControl2_request, netlogon_dissect_netr_LogonControl2_response},
+       { 15, "netr_ServerAuthenticate2",
+          netlogon_dissect_netr_ServerAuthenticate2_request, netlogon_dissect_netr_ServerAuthenticate2_response},
+       { 16, "netr_DatabaseSync2",
+          netlogon_dissect_netr_DatabaseSync2_request, netlogon_dissect_netr_DatabaseSync2_response},
+       { 17, "netr_DatabaseRedo",
+          netlogon_dissect_netr_DatabaseRedo_request, netlogon_dissect_netr_DatabaseRedo_response},
+       { 18, "netr_LogonControl2Ex",
+          netlogon_dissect_netr_LogonControl2Ex_request, netlogon_dissect_netr_LogonControl2Ex_response},
+       { 19, "netr_NetrEnumerateTrustedDomains",
+          netlogon_dissect_netr_NetrEnumerateTrustedDomains_request, netlogon_dissect_netr_NetrEnumerateTrustedDomains_response},
+       { 20, "netr_DsRGetDCName",
+          netlogon_dissect_netr_DsRGetDCName_request, netlogon_dissect_netr_DsRGetDCName_response},
+       { 21, "netr_LogonGetCapabilities",
+          netlogon_dissect_netr_LogonGetCapabilities_request, netlogon_dissect_netr_LogonGetCapabilities_response},
+       { 22, "netr_NETRLOGONSETSERVICEBITS",
+          netlogon_dissect_netr_NETRLOGONSETSERVICEBITS_request, netlogon_dissect_netr_NETRLOGONSETSERVICEBITS_response},
+       { 23, "netr_LogonGetTrustRid",
+          netlogon_dissect_netr_LogonGetTrustRid_request, netlogon_dissect_netr_LogonGetTrustRid_response},
+       { 24, "netr_NETRLOGONCOMPUTESERVERDIGEST",
+          netlogon_dissect_netr_NETRLOGONCOMPUTESERVERDIGEST_request, netlogon_dissect_netr_NETRLOGONCOMPUTESERVERDIGEST_response},
+       { 25, "netr_NETRLOGONCOMPUTECLIENTDIGEST",
+          netlogon_dissect_netr_NETRLOGONCOMPUTECLIENTDIGEST_request, netlogon_dissect_netr_NETRLOGONCOMPUTECLIENTDIGEST_response},
+       { 26, "netr_ServerAuthenticate3",
+          netlogon_dissect_netr_ServerAuthenticate3_request, netlogon_dissect_netr_ServerAuthenticate3_response},
+       { 27, "netr_DsRGetDCNameEx",
+          netlogon_dissect_netr_DsRGetDCNameEx_request, netlogon_dissect_netr_DsRGetDCNameEx_response},
+       { 28, "netr_DsRGetSiteName",
+          netlogon_dissect_netr_DsRGetSiteName_request, netlogon_dissect_netr_DsRGetSiteName_response},
+       { 29, "netr_LogonGetDomainInfo",
+          netlogon_dissect_netr_LogonGetDomainInfo_request, netlogon_dissect_netr_LogonGetDomainInfo_response},
+       { 30, "netr_ServerPasswordSet2",
+          netlogon_dissect_netr_ServerPasswordSet2_request, netlogon_dissect_netr_ServerPasswordSet2_response},
+       { 31, "netr_ServerPasswordGet",
+          netlogon_dissect_netr_ServerPasswordGet_request, netlogon_dissect_netr_ServerPasswordGet_response},
+       { 32, "netr_NETRLOGONSENDTOSAM",
+          netlogon_dissect_netr_NETRLOGONSENDTOSAM_request, netlogon_dissect_netr_NETRLOGONSENDTOSAM_response},
+       { 33, "netr_DsRAddressToSitenamesW",
+          netlogon_dissect_netr_DsRAddressToSitenamesW_request, netlogon_dissect_netr_DsRAddressToSitenamesW_response},
+       { 34, "netr_DsRGetDCNameEx2",
+          netlogon_dissect_netr_DsRGetDCNameEx2_request, netlogon_dissect_netr_DsRGetDCNameEx2_response},
+       { 35, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
+          netlogon_dissect_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_request, netlogon_dissect_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN_response},
+       { 36, "netr_NetrEnumerateTrustedDomainsEx",
+          netlogon_dissect_netr_NetrEnumerateTrustedDomainsEx_request, netlogon_dissect_netr_NetrEnumerateTrustedDomainsEx_response},
+       { 37, "netr_DsRAddressToSitenamesExW",
+          netlogon_dissect_netr_DsRAddressToSitenamesExW_request, netlogon_dissect_netr_DsRAddressToSitenamesExW_response},
+       { 38, "netr_DsrGetDcSiteCoverageW",
+          netlogon_dissect_netr_DsrGetDcSiteCoverageW_request, netlogon_dissect_netr_DsrGetDcSiteCoverageW_response},
+       { 39, "netr_LogonSamLogonEx",
+          netlogon_dissect_netr_LogonSamLogonEx_request, netlogon_dissect_netr_LogonSamLogonEx_response},
+       { 40, "netr_DsrEnumerateDomainTrusts",
+          netlogon_dissect_netr_DsrEnumerateDomainTrusts_request, netlogon_dissect_netr_DsrEnumerateDomainTrusts_response},
+       { 41, "netr_DsrDeregisterDNSHostRecords",
+          netlogon_dissect_netr_DsrDeregisterDNSHostRecords_request, netlogon_dissect_netr_DsrDeregisterDNSHostRecords_response},
+       { 42, "netr_ServerTrustPasswordsGet",
+          netlogon_dissect_netr_ServerTrustPasswordsGet_request, netlogon_dissect_netr_ServerTrustPasswordsGet_response},
+       { 43, "netr_DsRGetForestTrustInformation",
+          netlogon_dissect_netr_DsRGetForestTrustInformation_request, netlogon_dissect_netr_DsRGetForestTrustInformation_response},
+       { 44, "netr_GetForestTrustInformation",
+          netlogon_dissect_netr_GetForestTrustInformation_request, netlogon_dissect_netr_GetForestTrustInformation_response},
+       { 45, "netr_LogonSamLogonWithFlags",
+          netlogon_dissect_netr_LogonSamLogonWithFlags_request, netlogon_dissect_netr_LogonSamLogonWithFlags_response},
+       { 46, "netr_ServerGetTrustInfo",
+          netlogon_dissect_netr_ServerGetTrustInfo_request, netlogon_dissect_netr_ServerGetTrustInfo_response},
+       { 47, "netr_Unused47",
+          netlogon_dissect_netr_Unused47_request, netlogon_dissect_netr_Unused47_response},
+       { 48, "netr_DsrUpdateReadOnlyServerDnsRecords",
+          netlogon_dissect_netr_DsrUpdateReadOnlyServerDnsRecords_request, netlogon_dissect_netr_DsrUpdateReadOnlyServerDnsRecords_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_netlogon(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_netlogon_netr_AccountSync_buffersize,
+         { "Buffersize", "netlogon.netr_AccountSync.buffersize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NetrEnumerateTrustedDomains_trusted_domains_blob,
+         { "Trusted Domains Blob", "netlogon.netr_NetrEnumerateTrustedDomains.trusted_domains_blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_SET2,
+         { "Netlogon Neg Password Set2", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_PASSWORD_SET2", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_SET2_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_nt_size,
+         { "Nt Size", "netlogon.netr_PasswordHistory.nt_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerReqChallenge_credentials,
+         { "Credentials", "netlogon.netr_ServerReqChallenge.credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_WRITABLE_REQUIRED,
+         { "Ds Writable Required", "netlogon.netr_DsRGetDCName_flags.DS_WRITABLE_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_WRITABLE_REQUIRED_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_TRUSTED_DOMAIN.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_DELETE_USER.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_RENAME.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_force_logoff_time,
+         { "Force Logoff Time", "netlogon.netr_DELTA_DOMAIN.force_logoff_time", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BLADE,
+         { "Netr Ver Suite Blade", "netlogon.netr_SuiteMask.NETR_VER_SUITE_BLADE", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_BLADE_tfs), ( 0x0400 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogoff_account_name,
+         { "Account Name", "netlogon.netr_LogonUasLogoff.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_nt_length,
+         { "Nt Length", "netlogon.netr_PasswordHistory.nt_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_restart_state,
+         { "Restart State", "netlogon.netr_DatabaseSync2.restart_state", FT_UINT1632, BASE_DEC, VALS(netlogon_SyncStateEnum_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_rename_user,
+         { "Rename User", "netlogon.netr_DELTA_UNION.rename_user", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_ACCOUNT.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_ALIAS.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogon_account_name,
+         { "Account Name", "netlogon.netr_LogonUasLogon.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerGetTrustInfo.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_LogonSamLogon.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserSessionKey_key,
+         { "Key", "netlogon.netr_UserSessionKey.key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrustList_count,
+         { "Count", "netlogon.netr_DomainTrustList.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_SECRET.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_POLICY.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_USER.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_domain_create_time,
+         { "Domain Create Time", "netlogon.netr_DELTA_DOMAIN.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_domain,
+         { "Domain", "netlogon.netr_UasInfo.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_HAS_IP,
+         { "Netlogon Has Ip", "netlogon.netr_InfoFlags.NETLOGON_HAS_IP", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_HAS_IP_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy2,
+         { "Dummy2", "netlogon.netr_WorkstationInformation.dummy2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_credential,
+         { "Credential", "netlogon.netr_DatabaseDeltas.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_computername,
+         { "Computername", "netlogon.netr_DatabaseRedo.computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_PRIVATE_INFO_DataLength,
+         { "Datalength", "netlogon.netr_USER_PRIVATE_INFO.DataLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_GROUP.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Authenticator_timestamp,
+         { "Timestamp", "netlogon.netr_Authenticator.timestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_REDO_NEEDED,
+         { "Netlogon Redo Needed", "netlogon.netr_InfoFlags.NETLOGON_REDO_NEEDED", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_REDO_NEEDED_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES,
+         { "Netlogon Neg Supports Aes", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_SUPPORTS_AES", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_full_name,
+         { "Full Name", "netlogon.netr_DELTA_USER.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_PlatformId,
+         { "Platformid", "netlogon.netr_OsVersionInfoEx.PlatformId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_GC,
+         { "Ds Server Gc", "netlogon.netr_DsR_DcFlags.DS_SERVER_GC", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_GC_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_change_log_entry,
+         { "Change Log Entry", "netlogon.netr_DatabaseRedo.change_log_entry", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_dc_address,
+         { "Dc Address", "netlogon.netr_DsRGetDCNameInfo.dc_address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo6_unknown4,
+         { "Unknown4", "netlogon.netr_SamInfo6.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_mask,
+         { "Mask", "netlogon.netr_DsRGetDCNameEx2.mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo6_dns_domainname,
+         { "Dns Domainname", "netlogon.netr_SamInfo6.dns_domainname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_dns_hostname,
+         { "Dns Hostname", "netlogon.netr_DomainInformation.dns_hostname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags,
+         { "Flags", "netlogon.netr_DsRGetDCName.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_domain_name,
+         { "Domain Name", "netlogon.netr_DsRGetDCNameEx2.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_TERMINAL,
+         { "Netr Ver Suite Terminal", "netlogon.netr_SuiteMask.NETR_VER_SUITE_TERMINAL", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_TERMINAL_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_GUEST,
+         { "Netlogon Guest", "netlogon.netr_UserFlags.NETLOGON_GUEST", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_GUEST_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_CLOSEST,
+         { "Ds Server Closest", "netlogon.netr_DsR_DcFlags.DS_SERVER_CLOSEST", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_CLOSEST_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_pw_must_change,
+         { "Pw Must Change", "netlogon.netr_UasInfo.pw_must_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_OUTBOUND,
+         { "Netr Trust Flag Outbound", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_OUTBOUND", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_OUTBOUND_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_GROUP_MEMBER.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl_query,
+         { "Query", "netlogon.netr_LogonControl.query", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE,
+         { "Netr Trust Attribute Forest Transitive", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetTrustRid_domain_name,
+         { "Domain Name", "netlogon.netr_LogonGetTrustRid.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_ALIAS.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_FORCE_GUEST,
+         { "Msv1 0 Allow Force Guest", "netlogon.netr_LogonParameterControl.MSV1_0_ALLOW_FORCE_GUEST", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_ALLOW_FORCE_GUEST_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_credential,
+         { "Credential", "netlogon.netr_DatabaseSync.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_dummy_long4,
+         { "Dummy Long4", "netlogon.netr_DomainInformation.dummy_long4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CROSS_FOREST_TRUSTS,
+         { "Netlogon Neg Cross Forest Trusts", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_CROSS_FOREST_TRUSTS", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_CROSS_FOREST_TRUSTS_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_PROFILE_PATH_RETURNED,
+         { "Netlogon Profile Path Returned", "netlogon.netr_UserFlags.NETLOGON_PROFILE_PATH_RETURNED", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_PROFILE_PATH_RETURNED_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_FULL_SYNC_REPLICATION,
+         { "Netlogon Full Sync Replication", "netlogon.netr_InfoFlags.NETLOGON_FULL_SYNC_REPLICATION", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_FULL_SYNC_REPLICATION_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_supported_enc_types,
+         { "Supported Enc Types", "netlogon.netr_DomainInformation.supported_enc_types", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_POLICY.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogObject_object_sid,
+         { "Object Sid", "netlogon.netr_ChangeLogObject.object_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo6_sids,
+         { "Sids", "netlogon.netr_SamInfo6.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_DNS_FOREST_ROOT,
+         { "Ds Dns Forest Root", "netlogon.netr_DsR_DcFlags.DS_DNS_FOREST_ROOT", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_DNS_FOREST_ROOT_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_dummy_string4,
+         { "Dummy String4", "netlogon.netr_DomainInformation.dummy_string4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_flags,
+         { "Flags", "netlogon.netr_trust_extension.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_server_name,
+         { "Server Name", "netlogon.netr_NetrEnumerateTrustedDomainsEx.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_6_REQUIRED,
+         { "Ds Directory Service 6 Required", "netlogon.netr_DsRGetDCName_flags.DS_DIRECTORY_SERVICE_6_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_6_REQUIRED_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetCapabilities_capabilities,
+         { "Capabilities", "netlogon.netr_LogonGetCapabilities.capabilities", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_alias,
+         { "Alias", "netlogon.netr_DELTA_UNION.alias", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain,
+         { "Domain", "netlogon.netr_DsrDeregisterDNSHostRecords.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_delta_enum_array,
+         { "Delta Enum Array", "netlogon.netr_DatabaseDeltas.delta_enum_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_STORAGE_SERVER,
+         { "Netr Ver Suite Storage Server", "netlogon.netr_SuiteMask.NETR_VER_SUITE_STORAGE_SERVER", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_STORAGE_SERVER_tfs), ( 0x2000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_logon_hours,
+         { "Logon Hours", "netlogon.netr_DELTA_USER.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_DATA_INFORMATION_user,
+         { "User", "netlogon.netr_CONTROL_DATA_INFORMATION.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_flags,
+         { "Flags", "netlogon.netr_ChangeLogEntry.flags", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetForestTrustInformation_trusted_domain_name,
+         { "Trusted Domain Name", "netlogon.netr_DsRGetForestTrustInformation.trusted_domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_account_name,
+         { "Account Name", "netlogon.netr_ServerPasswordSet.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_S4U2SELF,
+         { "Msv1 0 S4u2self", "netlogon.netr_LogonParameterControl.MSV1_0_S4U2SELF", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_S4U2SELF_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN,
+         { "Netr Trust Attribute Quarantined Domain", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_server_name,
+         { "Server Name", "netlogon.netr_ServerPasswordGet.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_long4,
+         { "Dummy Long4", "netlogon.netr_OneDomainInfo.dummy_long4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL,
+         { "Netlogon Neg Password Change Refusal", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_computer_name,
+         { "Computer Name", "netlogon.netr_ServerPasswordSet2.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_server_name,
+         { "Server Name", "netlogon.netr_LogonSamLogonEx.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_credentials,
+         { "Credentials", "netlogon.netr_ServerAuthenticate2.credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_status,
+         { "Status", "netlogon.NL_DNS_NAME_INFO.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_flags,
+         { "Flags", "netlogon.netr_LogonSamLogonWithFlags.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Validation_sam3,
+         { "Sam3", "netlogon.netr_Validation.sam3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_object,
+         { "Object", "netlogon.netr_ChangeLogEntry.object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UAS_INFO_0_timecreated,
+         { "Timecreated", "netlogon.netr_UAS_INFO_0.timecreated", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_domain_sid,
+         { "Domain Sid", "netlogon.netr_SamBaseInfo.domain_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_authoritative,
+         { "Authoritative", "netlogon.netr_LogonSamLogonEx.authoritative", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_trusted_domain_count,
+         { "Trusted Domain Count", "netlogon.netr_DomainInformation.trusted_domain_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_ServicePackMajor,
+         { "Servicepackmajor", "netlogon.netr_OsVersionInfoEx.ServicePackMajor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_server_name,
+         { "Server Name", "netlogon.netr_LogonGetDomainInfo.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_trust_attributes,
+         { "Trust Attributes", "netlogon.netr_trust_extension.trust_attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_logon_time,
+         { "Logon Time", "netlogon.netr_SamBaseInfo.logon_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_serial_number2,
+         { "Serial Number2", "netlogon.netr_ChangeLogEntry.serial_number2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_DOMAIN.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_SECRET.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetForestTrustInformation_flags,
+         { "Flags", "netlogon.netr_DsRGetForestTrustInformation.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_credential,
+         { "Credential", "netlogon.netr_LogonGetDomainInfo.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_TRANSITIVE_TRUSTS,
+         { "Netlogon Neg Transitive Trusts", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_TRANSITIVE_TRUSTS", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_TRANSITIVE_TRUSTS_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_trusted_domain,
+         { "Trusted Domain", "netlogon.netr_DELTA_UNION.trusted_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_ServerPasswordSet.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_min_password_length,
+         { "Min Password Length", "netlogon.netr_DELTA_DOMAIN.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE,
+         { "Netr Ver Suite Backoffice", "netlogon.netr_SuiteMask.NETR_VER_SUITE_BACKOFFICE", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_BACKOFFICE_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_Credential_data,
+         { "Data", "netlogon.netr_Credential.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_ServerPasswordGet.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_GROUP_MEMBER.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_validation,
+         { "Validation", "netlogon.netr_LogonSamLogonWithFlags.validation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_USER.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExWCtr_count,
+         { "Count", "netlogon.netr_DsRAddressToSitenamesExWCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_4_trusted_dc_name,
+         { "Trusted Dc Name", "netlogon.netr_NETLOGON_INFO_4.trusted_dc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExWCtr_sitename,
+         { "Sitename", "netlogon.netr_DsRAddressToSitenamesExWCtr.sitename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_SERVER_TRUST_ACCOUNT,
+         { "Netlogon Server Trust Account", "netlogon.netr_UserFlags.NETLOGON_SERVER_TRUST_ACCOUNT", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_SERVER_TRUST_ACCOUNT_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonLevel_generic,
+         { "Generic", "netlogon.netr_LogonLevel.generic", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_WEBSERV,
+         { "Ds Server Webserv", "netlogon.netr_DsR_DcFlags.DS_SERVER_WEBSERV", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_WEBSERV_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetForestTrustInformation_server_name,
+         { "Server Name", "netlogon.netr_DsRGetForestTrustInformation.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_ServerTrustPasswordsGet.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_password,
+         { "Password", "netlogon.netr_ServerTrustPasswordsGet.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEY16_length,
+         { "Length", "netlogon.netr_USER_KEY16.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_type,
+         { "Type", "netlogon.NL_DNS_NAME_INFO.type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_DnsType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_primary_domain,
+         { "Primary Domain", "netlogon.netr_DomainInformation.primary_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED,
+         { "Netr Changelog Immediate Repl Required", "netlogon.netr_ChangeLogFlags.NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", FT_BOOLEAN, 16, TFS(&netr_ChangeLogFlags_NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_PERSONAL,
+         { "Netr Ver Suite Personal", "netlogon.netr_SuiteMask.NETR_VER_SUITE_PERSONAL", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_PERSONAL_tfs), ( 0x0200 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_new_owf_password,
+         { "New Owf Password", "netlogon.netr_ServerGetTrustInfo.new_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetSiteName_site,
+         { "Site", "netlogon.netr_DsRGetSiteName.site", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GenericInfo_length,
+         { "Length", "netlogon.netr_GenericInfo.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_GROUP_MEMBER.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_parent_index,
+         { "Parent Index", "netlogon.netr_DomainTrust.parent_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_GROUP.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_weight,
+         { "Weight", "netlogon.NL_DNS_NAME_INFO.weight", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_BuildNumber,
+         { "Buildnumber", "netlogon.netr_OsVersionInfoEx.BuildNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_IdentityInfo_logon_id_high,
+         { "Logon Id High", "netlogon.netr_IdentityInfo.logon_id_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_logon_domain,
+         { "Logon Domain", "netlogon.netr_PacInfo.logon_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_LDAP,
+         { "Ds Server Ldap", "netlogon.netr_DsR_DcFlags.DS_SERVER_LDAP", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_LDAP_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_GenericInfo_package_name,
+         { "Package Name", "netlogon.netr_GenericInfo.package_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_policy,
+         { "Policy", "netlogon.netr_DELTA_UNION.policy", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_RENAME.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Authenticator_cred,
+         { "Cred", "netlogon.netr_Authenticator.cred", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_ALIAS.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_2_pdc_connection_status,
+         { "Pdc Connection Status", "netlogon.netr_NETLOGON_INFO_2.pdc_connection_status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_home_directory,
+         { "Home Directory", "netlogon.netr_SamBaseInfo.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetForestTrustInformation_flags,
+         { "Flags", "netlogon.netr_GetForestTrustInformation.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_lsa_policy,
+         { "Lsa Policy", "netlogon.netr_WorkstationInformation.lsa_policy", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_LogonGetDomainInfo.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_count,
+         { "Count", "netlogon.netr_AccountDeltas.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_AccountDeltas.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_acct_expiry,
+         { "Acct Expiry", "netlogon.netr_DELTA_USER.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_lm_flags,
+         { "Lm Flags", "netlogon.netr_PasswordHistory.lm_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_MULTIPLE_SIDS,
+         { "Netlogon Neg Multiple Sids", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_MULTIPLE_SIDS", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_MULTIPLE_SIDS_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_DOMAIN.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl_logon_server,
+         { "Logon Server", "netlogon.netr_LogonControl.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_delete_user,
+         { "Delete User", "netlogon.netr_DELTA_UNION.delete_user", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2_logon_server,
+         { "Logon Server", "netlogon.netr_LogonControl2.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_POLICY.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_validation_level,
+         { "Validation Level", "netlogon.netr_LogonSamLogonEx.validation_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasLogoffInfo_duration,
+         { "Duration", "netlogon.netr_UasLogoffInfo.duration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonLevel_network,
+         { "Network", "netlogon.netr_LogonLevel.network", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_IdentityInfo_parameter_control,
+         { "Parameter Control", "netlogon.netr_IdentityInfo.parameter_control", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_reference,
+         { "Reference", "netlogon.netr_AccountSync.reference", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy4,
+         { "Dummy4", "netlogon.netr_WorkstationInformation.dummy4", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SidAttr_sid,
+         { "Sid", "netlogon.netr_SidAttr.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2Ex_function_code,
+         { "Function Code", "netlogon.netr_LogonControl2Ex.function_code", FT_UINT32, BASE_DEC, VALS(netlogon_netr_LogonControlCode_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_next_reference,
+         { "Next Reference", "netlogon.netr_AccountSync.next_reference", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Validation_sam2,
+         { "Sam2", "netlogon.netr_Validation.sam2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_server_name,
+         { "Server Name", "netlogon.netr_ServerAuthenticate3.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ID_UNION_rid,
+         { "Rid", "netlogon.netr_DELTA_ID_UNION.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerReqChallenge_computer_name,
+         { "Computer Name", "netlogon.netr_ServerReqChallenge.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_authoritative,
+         { "Authoritative", "netlogon.netr_LogonSamLogonWithFlags.authoritative", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_last_logoff,
+         { "Last Logoff", "netlogon.netr_UasInfo.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesW_addresses,
+         { "Addresses", "netlogon.netr_DsRAddressToSitenamesW.addresses", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_long3,
+         { "Dummy Long3", "netlogon.netr_OneDomainInfo.dummy_long3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_sid,
+         { "Sid", "netlogon.netr_DomainTrust.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_client_account,
+         { "Client Account", "netlogon.netr_DsRGetDCNameEx2.client_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx_domain_name,
+         { "Domain Name", "netlogon.netr_DsRGetDCNameEx.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_NATIVE,
+         { "Netr Trust Flag Native", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_NATIVE", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_NATIVE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerAuthenticate2.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_DOMAIN.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_USER.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_dummy_long3,
+         { "Dummy Long3", "netlogon.netr_DomainInformation.dummy_long3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_min_password_age,
+         { "Min Password Age", "netlogon.netr_DELTA_DOMAIN.min_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Validation_generic,
+         { "Generic", "netlogon.netr_Validation.generic", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_opnum,
+         { "Operation", "netlogon.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_DATA_INFORMATION_domain,
+         { "Domain", "netlogon.netr_CONTROL_DATA_INFORMATION.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_EMBEDDEDNT,
+         { "Netr Ver Suite Embeddednt", "netlogon.netr_SuiteMask.NETR_VER_SUITE_EMBEDDEDNT", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_EMBEDDEDNT_tfs), ( 0x0040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_SECRET.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_ALIAS_MEMBER.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_rid,
+         { "Rid", "netlogon.netr_DELTA_ALIAS.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_RENAME.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_ARRAY_names,
+         { "Names", "netlogon.NL_DNS_NAME_INFO_ARRAY.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_dns_name,
+         { "Dns Name", "netlogon.netr_DomainTrust.dns_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_MEMBER_sids,
+         { "Sids", "netlogon.netr_DELTA_ALIAS_MEMBER.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate_server_name,
+         { "Server Name", "netlogon.netr_ServerAuthenticate.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate_computer_name,
+         { "Computer Name", "netlogon.netr_ServerAuthenticate.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_REPLICATION_IN_PROGRESS,
+         { "Netlogon Replication In Progress", "netlogon.netr_InfoFlags.NETLOGON_REPLICATION_IN_PROGRESS", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_REPLICATION_IN_PROGRESS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_os_name,
+         { "Os Name", "netlogon.netr_WorkstationInformation.os_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_account_name,
+         { "Account Name", "netlogon.netr_UasInfo.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_serial_number1,
+         { "Serial Number1", "netlogon.netr_ChangeLogEntry.serial_number1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_REPLICATION_NEEDED,
+         { "Netlogon Replication Needed", "netlogon.netr_InfoFlags.NETLOGON_REPLICATION_NEEDED", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_REPLICATION_NEEDED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ID_UNION_sid,
+         { "Sid", "netlogon.netr_DELTA_ID_UNION.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_dummy_string3,
+         { "Dummy String3", "netlogon.netr_DomainInformation.dummy_string3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NetworkInfo_identity_info,
+         { "Identity Info", "netlogon.netr_NetworkInfo.identity_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEYS2_ntpassword,
+         { "Ntpassword", "netlogon.netr_USER_KEYS2.ntpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_privilege_attrib,
+         { "Privilege Attrib", "netlogon.netr_DELTA_ACCOUNT.privilege_attrib", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_account_lockout,
+         { "Account Lockout", "netlogon.netr_DELTA_DOMAIN.account_lockout", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_last_password_change,
+         { "Last Password Change", "netlogon.netr_SamBaseInfo.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_user_session_key,
+         { "User Session Key", "netlogon.netr_PacInfo.user_session_key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2Ex_level,
+         { "Level", "netlogon.netr_LogonControl2Ex.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_logon_server,
+         { "Logon Server", "netlogon.netr_DatabaseRedo.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_names,
+         { "Dns Names", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.dns_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_priv,
+         { "Priv", "netlogon.netr_UasInfo.priv", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_oem_information,
+         { "Oem Information", "netlogon.netr_DELTA_DOMAIN.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_domain_guid,
+         { "Domain Guid", "netlogon.netr_DsRGetDCNameEx2.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerReqChallenge_return_credentials,
+         { "Return Credentials", "netlogon.netr_ServerReqChallenge.return_credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_dummy,
+         { "Dummy", "netlogon.netr_trust_extension.dummy", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_auth_size,
+         { "Auth Size", "netlogon.netr_PacInfo.auth_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_total_entries,
+         { "Total Entries", "netlogon.netr_AccountDeltas.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_country_code,
+         { "Country Code", "netlogon.netr_DELTA_USER.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx_flags,
+         { "Flags", "netlogon.netr_DsRGetDCNameEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx_site_name,
+         { "Site Name", "netlogon.netr_DsRGetDCNameEx.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_attributes,
+         { "Attributes", "netlogon.netr_DELTA_GROUP.attributes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_validation,
+         { "Validation", "netlogon.netr_LogonSamLogonEx.validation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_user_flags,
+         { "User Flags", "netlogon.netr_SamBaseInfo.user_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetCapabilities_server_name,
+         { "Server Name", "netlogon.netr_LogonGetCapabilities.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_RENAME.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetCapabilities_computer_name,
+         { "Computer Name", "netlogon.netr_LogonGetCapabilities.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_DatabaseSync2.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_credential,
+         { "Credential", "netlogon.netr_LogonSamLogon.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_old_cipher,
+         { "Old Cipher", "netlogon.netr_DELTA_SECRET.old_cipher", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_RENAME.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_ServerGetTrustInfo.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetForestTrustInformation_computer_name,
+         { "Computer Name", "netlogon.netr_GetForestTrustInformation.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_NAME_INCLUDED,
+         { "Netr Changelog Name Included", "netlogon.netr_ChangeLogFlags.NETR_CHANGELOG_NAME_INCLUDED", FT_BOOLEAN, 16, TFS(&netr_ChangeLogFlags_NETR_CHANGELOG_NAME_INCLUDED_tfs), ( 0x0008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_old_owf_password,
+         { "Old Owf Password", "netlogon.netr_ServerGetTrustInfo.old_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrustList_array,
+         { "Array", "netlogon.netr_DomainTrustList.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_1_flags,
+         { "Flags", "netlogon.netr_NETLOGON_INFO_1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_info,
+         { "Info", "netlogon.netr_LogonGetDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustInfo_data,
+         { "Data", "netlogon.netr_TrustInfo.data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInfo_lsa_policy_info,
+         { "Lsa Policy Info", "netlogon.netr_DomainInfo.lsa_policy_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_kickoff_time,
+         { "Kickoff Time", "netlogon.netr_SamBaseInfo.kickoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_dns_ttl,
+         { "Dns Ttl", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.dns_ttl", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx_info,
+         { "Info", "netlogon.netr_DsRGetDCNameEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_profile_path,
+         { "Profile Path", "netlogon.netr_SamBaseInfo.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_logon_server,
+         { "Logon Server", "netlogon.netr_AccountSync.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetForestTrustInformation_forest_trust_info,
+         { "Forest Trust Info", "netlogon.netr_DsRGetForestTrustInformation.forest_trust_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_long2,
+         { "Dummy Long2", "netlogon.netr_OneDomainInfo.dummy_long2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_privilege_control,
+         { "Privilege Control", "netlogon.netr_DELTA_ACCOUNT.privilege_control", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_lm_length,
+         { "Lm Length", "netlogon.netr_PasswordHistory.lm_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_sequence_num,
+         { "Sequence Num", "netlogon.netr_DELTA_DOMAIN.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_acct_flags,
+         { "Acct Flags", "netlogon.netr_SamBaseInfo.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_unknown2,
+         { "Unknown2", "netlogon.netr_NETLOGON_INFO_3.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_dummy_string2,
+         { "Dummy String2", "netlogon.netr_DomainInformation.dummy_string2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED,
+         { "Netr Ver Suite Smallbusiness Restricted", "netlogon.netr_SuiteMask.NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_RESTRICTED_tfs), ( 0x0020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_SECRET.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_ACCOUNT.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_privilege_entries,
+         { "Privilege Entries", "netlogon.netr_DELTA_ACCOUNT.privilege_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEY_UNION_keys2,
+         { "Keys2", "netlogon.netr_USER_KEY_UNION.keys2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_principal_name,
+         { "Principal Name", "netlogon.netr_PacInfo.principal_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_server_name,
+         { "Server Name", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExW_server_name,
+         { "Server Name", "netlogon.netr_DsRAddressToSitenamesExW.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ENUM_delta_type,
+         { "Delta Type", "netlogon.netr_DELTA_ENUM.delta_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_DeltaEnum_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExW_count,
+         { "Count", "netlogon.netr_DsRAddressToSitenamesExW.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info_type,
+         { "Dns Domain Info Type", "netlogon.NL_DNS_NAME_INFO.dns_domain_info_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_DnsDomainInfoType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CIPHER_VALUE_cipher_data,
+         { "Cipher Data", "netlogon.netr_CIPHER_VALUE.cipher_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_logon_server,
+         { "Logon Server", "netlogon.netr_SamBaseInfo.logon_server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_server_name,
+         { "Server Name", "netlogon.netr_ServerGetTrustInfo.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_auditingmode,
+         { "Auditingmode", "netlogon.netr_DELTA_POLICY.auditingmode", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_new_password,
+         { "New Password", "netlogon.netr_ServerPasswordSet.new_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_DONT_TRY_GUEST_ACCOUNT,
+         { "Msv1 0 Dont Try Guest Account", "netlogon.netr_LogonParameterControl.MSV1_0_DONT_TRY_GUEST_ACCOUNT", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_DONT_TRY_GUEST_ACCOUNT_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION,
+         { "Netr Trust Attribute Cross Organization", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_computername,
+         { "Computername", "netlogon.netr_AccountSync.computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Validation_pac,
+         { "Pac", "netlogon.netr_Validation.pac", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_IS_DNS_NAME,
+         { "Ds Is Dns Name", "netlogon.netr_DsRGetDCName_flags.DS_IS_DNS_NAME", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_IS_DNS_NAME_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_maxlogsize,
+         { "Maxlogsize", "netlogon.netr_DELTA_POLICY.maxlogsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_password2,
+         { "Password2", "netlogon.netr_ServerTrustPasswordsGet.password2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS,
+         { "Netr Ver Suite Smallbusiness", "netlogon.netr_SuiteMask.NETR_VER_SUITE_SMALLBUSINESS", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_SMALLBUSINESS_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_GOOD_TIMESERV_PREFERRED,
+         { "Ds Good Timeserv Preferred", "netlogon.netr_DsRGetDCName_flags.DS_GOOD_TIMESERV_PREFERRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_GOOD_TIMESERV_PREFERRED_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL,
+         { "Netlogon Neg Avoid Account Db Repl", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_SHA2,
+         { "Netlogon Neg Supports Aes Sha2", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_SUPPORTS_AES_SHA2", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_SUPPORTS_AES_SHA2_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_SUBAUTH_SESSION_KEY,
+         { "Netlogon Subauth Session Key", "netlogon.netr_UserFlags.NETLOGON_SUBAUTH_SESSION_KEY", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_SUBAUTH_SESSION_KEY_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_NL_PASSWORD_VERSION_PasswordVersionPresent,
+         { "Passwordversionpresent", "netlogon.NL_PASSWORD_VERSION.PasswordVersionPresent", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_GOOD_TIMESERV,
+         { "Ds Server Good Timeserv", "netlogon.netr_DsR_DcFlags.DS_SERVER_GOOD_TIMESERV", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_GOOD_TIMESERV_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo3_sidcount,
+         { "Sidcount", "netlogon.netr_SamInfo3.sidcount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_IS_FLAT_NAME,
+         { "Ds Is Flat Name", "netlogon.netr_DsRGetDCName_flags.DS_IS_FLAT_NAME", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_IS_FLAT_NAME_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_logoff_time,
+         { "Logoff Time", "netlogon.netr_UasInfo.logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_unknown3,
+         { "Unknown3", "netlogon.netr_PacInfo.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_user,
+         { "User", "netlogon.netr_DELTA_UNION.user", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_lsa_policy,
+         { "Lsa Policy", "netlogon.netr_DomainInformation.lsa_policy", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_logon_level,
+         { "Logon Level", "netlogon.netr_LogonSamLogonWithFlags.logon_level", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_LogonInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_status,
+         { "NT Error", "netlogon.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_IN_FOREST,
+         { "Netr Trust Flag In Forest", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_IN_FOREST", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_IN_FOREST_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_GROUP_MEMBER.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_maxauditeventcount,
+         { "Maxauditeventcount", "netlogon.netr_DELTA_POLICY.maxauditeventcount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordInfo_ntpassword,
+         { "Ntpassword", "netlogon.netr_PasswordInfo.ntpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_DOMAIN.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrEnumerateDomainTrusts_trust_flags,
+         { "Trust Flags", "netlogon.netr_DsrEnumerateDomainTrusts.trust_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_recordid,
+         { "Recordid", "netlogon.netr_AccountDeltas.recordid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_PDC,
+         { "Ds Server Pdc", "netlogon.netr_DsR_DcFlags.DS_SERVER_PDC", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_PDC_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_2_trusted_dc_name,
+         { "Trusted Dc Name", "netlogon.netr_NETLOGON_INFO_2.trusted_dc_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_logon_level,
+         { "Logon Level", "netlogon.netr_LogonSamLogonEx.logon_level", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_LogonInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_flags,
+         { "Flags", "netlogon.netr_DsRGetDCNameEx2.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogoff_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_LogonSamLogoff.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_KDC_REQUIRED,
+         { "Ds Kdc Required", "netlogon.netr_DsRGetDCName_flags.DS_KDC_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_KDC_REQUIRED_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerTrustPasswordsGet.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_validation,
+         { "Validation", "netlogon.netr_LogonSamLogon.validation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_acct_flags,
+         { "Acct Flags", "netlogon.netr_DELTA_USER.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_DOMAIN.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_ARCFOUR,
+         { "Netlogon Neg Arcfour", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_ARCFOUR", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_ARCFOUR_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_GROUP.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_delta_enum_array,
+         { "Delta Enum Array", "netlogon.netr_DatabaseSync2.delta_enum_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_MinorVersion,
+         { "Minorversion", "netlogon.netr_OsVersionInfoEx.MinorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_sequence_num,
+         { "Sequence Num", "netlogon.netr_DELTA_POLICY.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_nt_flags,
+         { "Nt Flags", "netlogon.netr_PasswordHistory.nt_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_server_unc,
+         { "Server Unc", "netlogon.netr_DsRGetDCName.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl_level,
+         { "Level", "netlogon.netr_LogonControl.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_dc_unc,
+         { "Dc Unc", "netlogon.netr_DsRGetDCNameInfo.dc_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CIPHER_VALUE_len,
+         { "Len", "netlogon.netr_CIPHER_VALUE.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES256,
+         { "Enc Hmac Sha1 96 Aes256", "netlogon.netr_SupportedEncTypes.ENC_HMAC_SHA1_96_AES256", FT_BOOLEAN, 32, TFS(&netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES256_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_server_name,
+         { "Server Name", "netlogon.netr_LogonSamLogonWithFlags.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_GROUP.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetAnyDCName_dcname,
+         { "Dcname", "netlogon.netr_GetAnyDCName.dcname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_TRY_GUEST_ACCOUNT_ONLY,
+         { "Msv1 0 Try Guest Account Only", "netlogon.netr_LogonParameterControl.MSV1_0_TRY_GUEST_ACCOUNT_ONLY", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_TRY_GUEST_ACCOUNT_ONLY_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_DELETE_USER.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerAuthenticate.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasLogoffInfo_logon_count,
+         { "Logon Count", "netlogon.netr_UasLogoffInfo.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2Ex_logon_server,
+         { "Logon Server", "netlogon.netr_LogonControl2Ex.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_priority,
+         { "Priority", "netlogon.NL_DNS_NAME_INFO.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_LSASS,
+         { "Netlogon Neg Authenticated Rpc Lsass", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_LSASS_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_database_id,
+         { "Database Id", "netlogon.netr_DatabaseSync.database_id", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SamDatabaseID_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_rid,
+         { "Rid", "netlogon.netr_DELTA_USER.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_SECRET.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx_server_unc,
+         { "Server Unc", "netlogon.netr_DsRGetDCNameEx.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_IdentityInfo_domain_name,
+         { "Domain Name", "netlogon.netr_IdentityInfo.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_DATACENTER,
+         { "Netr Ver Suite Datacenter", "netlogon.netr_SuiteMask.NETR_VER_SUITE_DATACENTER", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_DATACENTER_tfs), ( 0x0080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_SECRET.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetTrustRid_server_name,
+         { "Server Name", "netlogon.netr_LogonGetTrustRid.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_group_name,
+         { "Group Name", "netlogon.netr_DELTA_GROUP.group_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_computer_name,
+         { "Computer Name", "netlogon.netr_ServerPasswordGet.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_NDNC,
+         { "Ds Server Ndnc", "netlogon.netr_DsR_DcFlags.DS_SERVER_NDNC", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_NDNC_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_logon,
+         { "Logon", "netlogon.netr_LogonSamLogonEx.logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_forest_name,
+         { "Forest Name", "netlogon.netr_DsRGetDCNameInfo.forest_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_sitename,
+         { "Sitename", "netlogon.netr_WorkstationInformation.sitename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_RESOURCE_GROUPS,
+         { "Netlogon Resource Groups", "netlogon.netr_UserFlags.NETLOGON_RESOURCE_GROUPS", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_RESOURCE_GROUPS_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_long1,
+         { "Dummy Long1", "netlogon.netr_OneDomainInfo.dummy_long1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerPasswordGet.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_level,
+         { "Level", "netlogon.netr_LogonGetDomainInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_IP_REQUIRED,
+         { "Ds Ip Required", "netlogon.netr_DsRGetDCName_flags.DS_IP_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_IP_REQUIRED_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_rid,
+         { "Rid", "netlogon.netr_SamBaseInfo.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_container_length,
+         { "Length", "netlogon.netr_trust_extension_container.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_system_flags,
+         { "System Flags", "netlogon.netr_DELTA_ACCOUNT.system_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_POLICY.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_logon_server,
+         { "Logon Server", "netlogon.netr_PacInfo.logon_server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_computer_name,
+         { "Computer Name", "netlogon.netr_ServerAuthenticate2.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_NewName,
+         { "Newname", "netlogon.netr_DELTA_RENAME.NewName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogoff_workstation,
+         { "Workstation", "netlogon.netr_LogonUasLogoff.workstation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_POLICY.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_primary_gid,
+         { "Primary Gid", "netlogon.netr_SamBaseInfo.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_lm_history,
+         { "Lm History", "netlogon.netr_PasswordHistory.lm_history", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_logon,
+         { "Logon", "netlogon.netr_LogonSamLogonWithFlags.logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerAuthenticate3.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_logon_level,
+         { "Logon Level", "netlogon.netr_LogonSamLogon.logon_level", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_LogonInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL,
+         { "Netr Trust Attribute Treat As External", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_last_logoff,
+         { "Last Logoff", "netlogon.netr_DELTA_USER.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_GC_SERVER_REQUIRED,
+         { "Ds Gc Server Required", "netlogon.netr_DsRGetDCName_flags.DS_GC_SERVER_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_GC_SERVER_REQUIRED_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PROMOTION_COUNT,
+         { "Netlogon Neg Promotion Count", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_PROMOTION_COUNT", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_PROMOTION_COUNT_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_description,
+         { "Description", "netlogon.netr_DELTA_ALIAS.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_domain_name,
+         { "Domain Name", "netlogon.netr_DELTA_DOMAIN.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_ALIAS.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo6_sidcount,
+         { "Sidcount", "netlogon.netr_SamInfo6.sidcount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_logon_count,
+         { "Logon Count", "netlogon.netr_SamBaseInfo.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrDeregisterDNSHostRecords_dsa_guid,
+         { "Dsa Guid", "netlogon.netr_DsrDeregisterDNSHostRecords.dsa_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_AVOID_SELF,
+         { "Ds Avoid Self", "netlogon.netr_DsRGetDCName_flags.DS_AVOID_SELF", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_AVOID_SELF_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionContainer_os,
+         { "Os", "netlogon.netr_OsVersionContainer.os", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_USER_PARAMETERS,
+         { "Msv1 0 Return User Parameters", "netlogon.netr_LogonParameterControl.MSV1_0_RETURN_USER_PARAMETERS", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_RETURN_USER_PARAMETERS_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionContainer_length,
+         { "Length", "netlogon.netr_OsVersionContainer.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dns_hostname,
+         { "Dns Hostname", "netlogon.netr_WorkstationInformation.dns_hostname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_DatabaseSync.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogoff_server_name,
+         { "Server Name", "netlogon.netr_LogonUasLogoff.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LsaPolicyInformation_policy,
+         { "Policy", "netlogon.netr_LsaPolicyInformation.policy", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_uas,
+         { "Uas", "netlogon.netr_AccountDeltas.uas", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetDcName_logon_server,
+         { "Logon Server", "netlogon.netr_GetDcName.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_total_entries,
+         { "Total Entries", "netlogon.netr_AccountSync.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_account_name,
+         { "Account Name", "netlogon.netr_DELTA_USER.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_attribs,
+         { "Attribs", "netlogon.netr_DELTA_GROUP_MEMBER.attribs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_RENAME.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_logon_attempts,
+         { "Logon Attempts", "netlogon.netr_NETLOGON_INFO_3.logon_attempts", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_home_directory,
+         { "Home Directory", "netlogon.netr_DELTA_USER.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordInfo_identity_info,
+         { "Identity Info", "netlogon.netr_PasswordInfo.identity_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetCapabilities_query_level,
+         { "Query Level", "netlogon.netr_LogonGetCapabilities.query_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_RENAME.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_account_name,
+         { "Account Name", "netlogon.netr_ServerPasswordGet.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_rename_group,
+         { "Rename Group", "netlogon.netr_DELTA_UNION.rename_group", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_GROUP.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonLevel_password,
+         { "Password", "netlogon.netr_LogonLevel.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ENUM_ARRAY_num_deltas,
+         { "Num Deltas", "netlogon.netr_DELTA_ENUM_ARRAY.num_deltas", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_unknown2,
+         { "Unknown2", "netlogon.netr_PacInfo.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS,
+         { "Netr Ws Flag Handles Inbound Trusts", "netlogon.netr_WorkstationFlags.NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", FT_BOOLEAN, 32, TFS(&netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_modified_count,
+         { "Modified Count", "netlogon.netr_DELTA_UNION.modified_count", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_credential,
+         { "Credential", "netlogon.netr_ServerPasswordSet2.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AcctLockStr_lockout_duration,
+         { "Lockout Duration", "netlogon.netr_AcctLockStr.lockout_duration", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesW_ctr,
+         { "Ctr", "netlogon.netr_DsRAddressToSitenamesW.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_domain_guid,
+         { "Domain Guid", "netlogon.netr_DsRGetDCNameInfo.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_server_name,
+         { "Server Name", "netlogon.netr_ServerPasswordSet.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_logon,
+         { "Logon", "netlogon.netr_LogonSamLogon.logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_rename_alias,
+         { "Rename Alias", "netlogon.netr_DELTA_UNION.rename_alias", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_POLICY.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_STRONG_KEYS,
+         { "Netlogon Neg Strong Keys", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_STRONG_KEYS", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_STRONG_KEYS_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_2_tc_connection_status,
+         { "Tc Connection Status", "netlogon.netr_NETLOGON_INFO_2.tc_connection_status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_workstation_flags,
+         { "Workstation Flags", "netlogon.netr_DomainInformation.workstation_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveData,
+         { "Sensitivedata", "netlogon.netr_USER_PRIVATE_INFO.SensitiveData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_USER.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_ProductType,
+         { "Producttype", "netlogon.netr_OsVersionInfoEx.ProductType", FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_ServerPasswordSet2.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy_string3,
+         { "Dummy String3", "netlogon.netr_WorkstationInformation.dummy_string3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_RODC_PASSTHROUGH,
+         { "Netlogon Neg Rodc Passthrough", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_RODC_PASSTHROUGH", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_RODC_PASSTHROUGH_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_current_cipher,
+         { "Current Cipher", "netlogon.netr_DELTA_SECRET.current_cipher", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_TIMESERV_REQUIRED,
+         { "Ds Timeserv Required", "netlogon.netr_DsRGetDCName_flags.DS_TIMESERV_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_TIMESERV_REQUIRED_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_privilege_name,
+         { "Privilege Name", "netlogon.netr_DELTA_ACCOUNT.privilege_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_authoritative,
+         { "Authoritative", "netlogon.netr_LogonSamLogon.authoritative", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_posix_offset,
+         { "Posix Offset", "netlogon.netr_DELTA_TRUSTED_DOMAIN.posix_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo3_base,
+         { "Base", "netlogon.netr_SamInfo3.base", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerPasswordSet.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_ACCOUNT_LOCKOUT,
+         { "Netlogon Neg Account Lockout", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_ACCOUNT_LOCKOUT", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_ACCOUNT_LOCKOUT_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_DOMAIN.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_GROUP.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY,
+         { "Msv1 0 Use Domain For Routing Only", "netlogon.netr_LogonParameterControl.MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_CSDVersion,
+         { "Csdversion", "netlogon.netr_OsVersionInfoEx.CSDVersion", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_ACCOUNT.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_delta_enum_array,
+         { "Delta Enum Array", "netlogon.netr_DatabaseRedo.delta_enum_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEYS_keys,
+         { "Keys", "netlogon.netr_USER_KEYS.keys", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_RETURN_FLAT_NAME,
+         { "Ds Return Flat Name", "netlogon.netr_DsRGetDCName_flags.DS_RETURN_FLAT_NAME", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_RETURN_FLAT_NAME_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_current_cipher_set_time,
+         { "Current Cipher Set Time", "netlogon.netr_DELTA_SECRET.current_cipher_set_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersion_size,
+         { "Size", "netlogon.netr_OsVersion.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_2_flags,
+         { "Flags", "netlogon.netr_NETLOGON_INFO_2.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_secure_channel_type,
+         { "Secure Channel Type", "netlogon.netr_ServerPasswordSet2.secure_channel_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SchannelType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_USE_CLIENT_CHALLENGE,
+         { "Msv1 0 Use Client Challenge", "netlogon.netr_LogonParameterControl.MSV1_0_USE_CLIENT_CHALLENGE", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_USE_CLIENT_CHALLENGE_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_GenericInfo2_length,
+         { "Length", "netlogon.netr_GenericInfo2.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_groups,
+         { "Groups", "netlogon.netr_SamBaseInfo.groups", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_key,
+         { "Key", "netlogon.netr_SamBaseInfo.key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CHANGELOG_BDC,
+         { "Netlogon Neg Changelog Bdc", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_CHANGELOG_BDC", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_CHANGELOG_BDC_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_USER.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_flags,
+         { "Flags", "netlogon.netr_NETLOGON_INFO_3.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_count_returned,
+         { "Count Returned", "netlogon.netr_AccountDeltas.count_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_primary_domain_name,
+         { "Primary Domain Name", "netlogon.netr_DELTA_POLICY.primary_domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_site_name,
+         { "Site Name", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_full_name,
+         { "Full Name", "netlogon.netr_SamBaseInfo.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_return_credentials,
+         { "Return Credentials", "netlogon.netr_ServerAuthenticate3.return_credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_DATA_INFORMATION_debug_level,
+         { "Debug Level", "netlogon.netr_CONTROL_DATA_INFORMATION.debug_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2_function_code,
+         { "Function Code", "netlogon.netr_LogonControl2.function_code", FT_UINT32, BASE_DEC, VALS(netlogon_netr_LogonControlCode_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_dns_register,
+         { "Dns Register", "netlogon.NL_DNS_NAME_INFO.dns_register", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_DELETE_USER.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_unknown3,
+         { "Unknown3", "netlogon.netr_NETLOGON_INFO_3.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_EXTRA_SIDS,
+         { "Netlogon Extra Sids", "netlogon.netr_UserFlags.NETLOGON_EXTRA_SIDS", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_EXTRA_SIDS_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_DNS_DOMAIN,
+         { "Ds Dns Domain", "netlogon.netr_DsR_DcFlags.DS_DNS_DOMAIN", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_DNS_DOMAIN_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_password_expired,
+         { "Password Expired", "netlogon.netr_DELTA_USER.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_ALIAS.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetAnyDCName_domainname,
+         { "Domainname", "netlogon.netr_GetAnyDCName.domainname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_dc_flags,
+         { "Dc Flags", "netlogon.netr_DsRGetDCNameInfo.dc_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_DatabaseDeltas.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_LogonSamLogonWithFlags.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_new_password,
+         { "New Password", "netlogon.netr_ServerPasswordSet2.new_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_unknown1,
+         { "Unknown1", "netlogon.netr_PacInfo.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogoff_logon_level,
+         { "Logon Level", "netlogon.netr_LogonSamLogoff.logon_level", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_LogonInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersion_os,
+         { "Os", "netlogon.netr_OsVersion.os", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SupportedEncTypes_ENC_RSA_MD5,
+         { "Enc Rsa Md5", "netlogon.netr_SupportedEncTypes.ENC_RSA_MD5", FT_BOOLEAN, 32, TFS(&netr_SupportedEncTypes_ENC_RSA_MD5_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_dc_address_type,
+         { "Dc Address Type", "netlogon.netr_DsRGetDCNameInfo.dc_address_type", FT_UINT32, BASE_DEC, VALS(netlogon_netr_DsRGetDCNameInfo_AddressType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_DcSitesCtr_num_sites,
+         { "Num Sites", "netlogon.DcSitesCtr.num_sites", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_parameters,
+         { "Parameters", "netlogon.netr_DELTA_USER.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_buffersize,
+         { "Buffersize", "netlogon.netr_AccountDeltas.buffersize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_trust_flags,
+         { "Trust Flags", "netlogon.netr_DomainTrust.trust_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrDeregisterDNSHostRecords_domain_guid,
+         { "Domain Guid", "netlogon.netr_DsrDeregisterDNSHostRecords.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_logon_domain,
+         { "Logon Domain", "netlogon.netr_SamBaseInfo.logon_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_computername,
+         { "Computername", "netlogon.netr_DatabaseSync.computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_PASSWORD_VERSION_ReservedField,
+         { "Reservedfield", "netlogon.NL_PASSWORD_VERSION.ReservedField", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Validation_sam6,
+         { "Sam6", "netlogon.netr_Validation.sam6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_ACCOUNT.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_credential,
+         { "Credential", "netlogon.netr_ServerPasswordSet.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_NTLMV2_ENABLED,
+         { "Netlogon Ntlmv2 Enabled", "netlogon.netr_UserFlags.NETLOGON_NTLMV2_ENABLED", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_NTLMV2_ENABLED_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_lm_password_present,
+         { "Lm Password Present", "netlogon.netr_DELTA_USER.lm_password_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_max_password_age,
+         { "Max Password Age", "netlogon.netr_DELTA_DOMAIN.max_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetDcName_domainname,
+         { "Domainname", "netlogon.netr_GetDcName.domainname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dns_domainname,
+         { "Dns Domainname", "netlogon.netr_OneDomainInfo.dns_domainname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_user_private_info,
+         { "User Private Info", "netlogon.netr_DELTA_USER.user_private_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL,
+         { "Netlogon Neg Avoid Securityauth Db Repl", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_account_name,
+         { "Account Name", "netlogon.netr_ServerPasswordSet2.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_buffer,
+         { "Buffer", "netlogon.netr_AccountDeltas.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate_return_credentials,
+         { "Return Credentials", "netlogon.netr_ServerAuthenticate.return_credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_NOENCRYPTION,
+         { "Netlogon Noencryption", "netlogon.netr_UserFlags.NETLOGON_NOENCRYPTION", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_NOENCRYPTION_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_computer_name,
+         { "Computer Name", "netlogon.netr_LogonSamLogon.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_string2,
+         { "Dummy String2", "netlogon.netr_OneDomainInfo.dummy_string2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_size,
+         { "Size", "netlogon.netr_trust_extension.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_database_id,
+         { "Database Id", "netlogon.netr_DatabaseSync2.database_id", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SamDatabaseID_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UAS_INFO_0_serial_number,
+         { "Serial Number", "netlogon.netr_UAS_INFO_0.serial_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogoff_info,
+         { "Info", "netlogon.netr_LogonUasLogoff.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesWCtr_count,
+         { "Count", "netlogon.netr_DsRAddressToSitenamesWCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_negotiate_flags,
+         { "Negotiate Flags", "netlogon.netr_ServerAuthenticate3.negotiate_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2_query,
+         { "Query", "netlogon.netr_LogonControl2.query", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_force_password_change,
+         { "Force Password Change", "netlogon.netr_SamBaseInfo.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInfo_domain_info,
+         { "Domain Info", "netlogon.netr_DomainInfo.domain_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_delta_enum_array,
+         { "Delta Enum Array", "netlogon.netr_DatabaseSync.delta_enum_array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_home_drive,
+         { "Home Drive", "netlogon.netr_SamBaseInfo.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_sequence_num,
+         { "Sequence Num", "netlogon.netr_DatabaseDeltas.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_db_create_time,
+         { "Db Create Time", "netlogon.netr_DELTA_POLICY.db_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_account_name,
+         { "Account Name", "netlogon.netr_ServerGetTrustInfo.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_bad_password_count,
+         { "Bad Password Count", "netlogon.netr_DELTA_USER.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_sync_context,
+         { "Sync Context", "netlogon.netr_DatabaseSync.sync_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CryptPassword_length,
+         { "Length", "netlogon.netr_CryptPassword.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_script_path,
+         { "Script Path", "netlogon.netr_UasInfo.script_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_QUOTA_LIMITS_minimumworkingsetsize,
+         { "Minimumworkingsetsize", "netlogon.netr_QUOTA_LIMITS.minimumworkingsetsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info3,
+         { "Info3", "netlogon.netr_CONTROL_QUERY_INFORMATION.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_negotiate_flags,
+         { "Negotiate Flags", "netlogon.netr_ServerAuthenticate2.negotiate_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GenericInfo_data,
+         { "Data", "netlogon.netr_GenericInfo.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy_string4,
+         { "Dummy String4", "netlogon.netr_WorkstationInformation.dummy_string4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_info,
+         { "Info", "netlogon.netr_DsRGetDCName.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AcctLockStr_dummy,
+         { "Dummy", "netlogon.netr_AcctLockStr.dummy", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_ACCOUNT.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info4,
+         { "Info4", "netlogon.netr_CONTROL_QUERY_INFORMATION.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_validation_level,
+         { "Validation Level", "netlogon.netr_LogonSamLogon.validation_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_group,
+         { "Group", "netlogon.netr_DELTA_UNION.group", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL,
+         { "Netlogon Neg Persistent Samrepl", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_PERSISTENT_SAMREPL", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_PERSISTENT_SAMREPL_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_pac,
+         { "Pac", "netlogon.netr_PacInfo.pac", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ENUM_delta_id_union,
+         { "Delta Id Union", "netlogon.netr_DELTA_ENUM.delta_id_union", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_ENTERPRISE,
+         { "Netr Ver Suite Enterprise", "netlogon.netr_SuiteMask.NETR_VER_SUITE_ENTERPRISE", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_ENTERPRISE_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ProductType_NETR_VER_NT_WORKSTATION,
+         { "Netr Ver Nt Workstation", "netlogon.netr_ProductType.NETR_VER_NT_WORKSTATION", FT_BOOLEAN, 8, TFS(&netr_ProductType_NETR_VER_NT_WORKSTATION_tfs), ( 0x01 ), NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_credential,
+         { "Credential", "netlogon.netr_AccountSync.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_computer,
+         { "Computer", "netlogon.netr_UasInfo.computer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_database_id,
+         { "Database Id", "netlogon.netr_DatabaseDeltas.database_id", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SamDatabaseID_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_flags,
+         { "Flags", "netlogon.netr_LogonSamLogonEx.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_account_name,
+         { "Account Name", "netlogon.netr_ServerAuthenticate3.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_preferredmaximumlength,
+         { "Preferredmaximumlength", "netlogon.netr_DatabaseSync.preferredmaximumlength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_COMPUTE_SERVER,
+         { "Netr Ver Suite Compute Server", "netlogon.netr_SuiteMask.NETR_VER_SUITE_COMPUTE_SERVER", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_COMPUTE_SERVER_tfs), ( 0x4000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_ACCOUNT.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_ALIAS_MEMBER.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_account_name,
+         { "Account Name", "netlogon.netr_SamBaseInfo.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_DELETE_USER.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_rids,
+         { "Rids", "netlogon.netr_DELTA_GROUP_MEMBER.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_ACCOUNT.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT,
+         { "Msv1 0 Allow Server Trust Account", "netlogon.netr_LogonParameterControl.MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_computername,
+         { "Computername", "netlogon.netr_DatabaseDeltas.computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogoff_computer_name,
+         { "Computer Name", "netlogon.netr_LogonSamLogoff.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustInfo_entry_count,
+         { "Entry Count", "netlogon.netr_TrustInfo.entry_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_port,
+         { "Port", "netlogon.NL_DNS_NAME_INFO.port", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy_long4,
+         { "Dummy Long4", "netlogon.netr_WorkstationInformation.dummy_long4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_pw_can_change,
+         { "Pw Can Change", "netlogon.netr_UasInfo.pw_can_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_4_trusted_domain_name,
+         { "Trusted Domain Name", "netlogon.netr_NETLOGON_INFO_4.trusted_domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NetworkInfo_nt,
+         { "Nt", "netlogon.netr_NetworkInfo.nt", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_OSVersionInfoSize,
+         { "Osversioninfosize", "netlogon.netr_OsVersionInfoEx.OSVersionInfoSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet_computer_name,
+         { "Computer Name", "netlogon.netr_ServerPasswordSet.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_account_name,
+         { "Account Name", "netlogon.netr_ServerAuthenticate2.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_info,
+         { "Info", "netlogon.netr_DsRGetDCNameEx2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_DcSitesCtr_sites,
+         { "Sites", "netlogon.DcSitesCtr.sites", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_AccountSync.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_SECRET.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ProductType_NETR_VER_NT_SERVER,
+         { "Netr Ver Nt Server", "netlogon.netr_ProductType.NETR_VER_NT_SERVER", FT_BOOLEAN, 8, TFS(&netr_ProductType_NETR_VER_NT_SERVER_tfs), ( 0x03 ), NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_SPN_UPDATE,
+         { "Netr Ws Flag Handles Spn Update", "netlogon.netr_WorkstationFlags.NETR_WS_FLAG_HANDLES_SPN_UPDATE", FT_BOOLEAN, 32, TFS(&netr_WorkstationFlags_NETR_WS_FLAG_HANDLES_SPN_UPDATE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT,
+         { "Msv1 0 Allow Workstation Trust Account", "netlogon.netr_LogonParameterControl.MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_domain_guid,
+         { "Domain Guid", "netlogon.netr_OneDomainInfo.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_logoff_time,
+         { "Logoff Time", "netlogon.netr_SamBaseInfo.logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_kickoff_time,
+         { "Kickoff Time", "netlogon.netr_UasInfo.kickoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_password_age,
+         { "Password Age", "netlogon.netr_UasInfo.password_age", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChallengeResponse_length,
+         { "Length", "netlogon.netr_ChallengeResponse.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_last_password_change,
+         { "Last Password Change", "netlogon.netr_DELTA_USER.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_WITHIN_FOREST,
+         { "Netr Trust Attribute Within Forest", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_WITHIN_FOREST_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddress_size,
+         { "Size", "netlogon.netr_DsRAddress.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Blob_data,
+         { "Data", "netlogon.netr_Blob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_MEMBER_num_rids,
+         { "Num Rids", "netlogon.netr_DELTA_GROUP_MEMBER.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_ALIAS.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_quotalimits,
+         { "Quotalimits", "netlogon.netr_DELTA_ACCOUNT.quotalimits", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_SELECT_SECRET_DOMAIN_6,
+         { "Ds Server Select Secret Domain 6", "netlogon.netr_DsR_DcFlags.DS_SERVER_SELECT_SECRET_DOMAIN_6", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_SELECT_SECRET_DOMAIN_6_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_netlogon_netr_SidAttr_attributes,
+         { "Attributes", "netlogon.netr_SidAttr.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_object_rid,
+         { "Object Rid", "netlogon.netr_ChangeLogEntry.object_rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_last_successful_logon,
+         { "Last Successful Logon", "netlogon.netr_SamBaseInfo.last_successful_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_PASSWORD_EXPIRY,
+         { "Msv1 0 Return Password Expiry", "netlogon.netr_LogonParameterControl.MSV1_0_RETURN_PASSWORD_EXPIRY", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_RETURN_PASSWORD_EXPIRY_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_POLICY.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_home_drive,
+         { "Home Drive", "netlogon.netr_DELTA_USER.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_container_size,
+         { "Size", "netlogon.netr_trust_extension_container.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_account_name,
+         { "Account Name", "netlogon.netr_DELTA_DELETE_USER.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_DatabaseRedo.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_netbios_name,
+         { "Netbios Name", "netlogon.netr_DomainTrust.netbios_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_string3,
+         { "Dummy String3", "netlogon.netr_OneDomainInfo.dummy_string3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetTrustRid_rid,
+         { "Rid", "netlogon.netr_LogonGetTrustRid.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesWCtr_sitename,
+         { "Sitename", "netlogon.netr_DsRAddressToSitenamesWCtr.sitename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_container_info,
+         { "Info", "netlogon.netr_trust_extension_container.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ProductType_NETR_VER_NT_DOMAIN_CONTROLLER,
+         { "Netr Ver Nt Domain Controller", "netlogon.netr_ProductType.NETR_VER_NT_DOMAIN_CONTROLLER", FT_BOOLEAN, 8, TFS(&netr_ProductType_NETR_VER_NT_DOMAIN_CONTROLLER_tfs), ( 0x02 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_USER.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dns_forestname,
+         { "Dns Forestname", "netlogon.netr_OneDomainInfo.dns_forestname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_ALLOWED,
+         { "Msv1 0 Cleartext Password Allowed", "netlogon.netr_LogonParameterControl.MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_ALLOWED_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_logon_count,
+         { "Logon Count", "netlogon.netr_UasInfo.logon_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_RETURN_PROFILE_PATH,
+         { "Msv1 0 Return Profile Path", "netlogon.netr_LogonParameterControl.MSV1_0_RETURN_PROFILE_PATH", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_RETURN_PROFILE_PATH_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_DISABLE_PERSONAL_FALLBACK,
+         { "Msv1 0 Disable Personal Fallback", "netlogon.netr_LogonParameterControl.MSV1_0_DISABLE_PERSONAL_FALLBACK", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_DISABLE_PERSONAL_FALLBACK_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_ACCOUNT.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrEnumerateDomainTrusts_trusts,
+         { "Trusts", "netlogon.netr_DsrEnumerateDomainTrusts.trusts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEYS2_history,
+         { "History", "netlogon.netr_USER_KEYS2.history", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SupportedEncTypes_ENC_CRC32,
+         { "Enc Crc32", "netlogon.netr_SupportedEncTypes.ENC_CRC32", FT_BOOLEAN, 32, TFS(&netr_SupportedEncTypes_ENC_CRC32_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesW_server_name,
+         { "Server Name", "netlogon.netr_DsRAddressToSitenamesW.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_count_returned,
+         { "Count Returned", "netlogon.netr_AccountSync.count_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrGetDcSiteCoverageW_server_name,
+         { "Server Name", "netlogon.netr_DsrGetDcSiteCoverageW.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_nt_history,
+         { "Nt History", "netlogon.netr_PasswordHistory.nt_history", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_quota_limits,
+         { "Quota Limits", "netlogon.netr_DELTA_POLICY.quota_limits", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ENUM_delta_union,
+         { "Delta Union", "netlogon.netr_DELTA_ENUM.delta_union", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy1,
+         { "Dummy1", "netlogon.netr_WorkstationInformation.dummy1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LsaPolicyInformation_policy_size,
+         { "Policy Size", "netlogon.netr_LsaPolicyInformation.policy_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_CHECK_LOGONHOURS_FOR_S4U,
+         { "Msv1 0 Check Logonhours For S4u", "netlogon.netr_LogonParameterControl.MSV1_0_CHECK_LOGONHOURS_FOR_S4U", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_CHECK_LOGONHOURS_FOR_S4U_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesW_count,
+         { "Count", "netlogon.netr_DsRAddressToSitenamesW.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_trust_attributes,
+         { "Trust Attributes", "netlogon.netr_DomainTrust.trust_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_expansionroom,
+         { "Expansionroom", "netlogon.netr_PacInfo.expansionroom", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogon_server_name,
+         { "Server Name", "netlogon.netr_LogonSamLogon.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_TREEROOT,
+         { "Netr Trust Flag Treeroot", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_TREEROOT", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_TREEROOT_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_SUBAUTHENTICATION_DLL_EX,
+         { "Msv1 0 Subauthentication Dll Ex", "netlogon.netr_LogonParameterControl.MSV1_0_SUBAUTHENTICATION_DLL_EX", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_SUBAUTHENTICATION_DLL_EX_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_workstations,
+         { "Workstations", "netlogon.netr_DELTA_USER.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_QUOTA_LIMITS_maximumworkingsetsize,
+         { "Maximumworkingsetsize", "netlogon.netr_QUOTA_LIMITS.maximumworkingsetsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_bad_password_count,
+         { "Bad Password Count", "netlogon.netr_SamBaseInfo.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_ALLOW_MSVCHAPV2,
+         { "Msv1 0 Allow Msvchapv2", "netlogon.netr_LogonParameterControl.MSV1_0_ALLOW_MSVCHAPV2", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_ALLOW_MSVCHAPV2_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_REDO,
+         { "Netlogon Neg Redo", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_REDO", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_REDO_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_trust_type,
+         { "Trust Type", "netlogon.netr_trust_extension.trust_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_QUOTA_LIMITS_nonpagedpoollimit,
+         { "Nonpagedpoollimit", "netlogon.netr_QUOTA_LIMITS.nonpagedpoollimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_unknown1,
+         { "Unknown1", "netlogon.netr_NETLOGON_INFO_3.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_FORCE_REDISCOVERY,
+         { "Ds Force Rediscovery", "netlogon.netr_DsRGetDCName_flags.DS_FORCE_REDISCOVERY", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_FORCE_REDISCOVERY_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2Ex_data,
+         { "Data", "netlogon.netr_LogonControl2Ex.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_preferredmaximumlength,
+         { "Preferredmaximumlength", "netlogon.netr_DatabaseSync2.preferredmaximumlength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_SECRET.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionContainer_size,
+         { "Size", "netlogon.netr_OsVersionContainer.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync_logon_server,
+         { "Logon Server", "netlogon.netr_DatabaseSync.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_SEND_PASSWORD_INFO_PDC,
+         { "Netlogon Neg Send Password Info Pdc", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_SEND_PASSWORD_INFO_PDC_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_client_site_name,
+         { "Client Site Name", "netlogon.netr_DsRGetDCNameInfo.client_site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_FULL_SECRET_DOMAIN_6,
+         { "Ds Server Full Secret Domain 6", "netlogon.netr_DsR_DcFlags.DS_SERVER_FULL_SECRET_DOMAIN_6", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_FULL_SECRET_DOMAIN_6_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_computername,
+         { "Computername", "netlogon.netr_AccountDeltas.computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_change_log_entry_,
+         { "Subcontext length", "netlogon.netr_DatabaseRedo.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_controller_names,
+         { "Controller Names", "netlogon.netr_DELTA_TRUSTED_DOMAIN.controller_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_server_unc,
+         { "Server Unc", "netlogon.netr_DsRGetDCNameEx2.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_credential,
+         { "Credential", "netlogon.netr_LogonSamLogonWithFlags.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_DELETE_USER.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_PRIVATE_INFO_SensitiveDataFlag,
+         { "Sensitivedataflag", "netlogon.netr_USER_PRIVATE_INFO.SensitiveDataFlag", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetForestTrustInformation_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_GetForestTrustInformation.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_werror,
+         { "Windows Error", "netlogon.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEYS_version,
+         { "Version", "netlogon.netr_USER_KEYS.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_computer_name,
+         { "Computer Name", "netlogon.netr_LogonGetDomainInfo.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy_long3,
+         { "Dummy Long3", "netlogon.netr_WorkstationInformation.dummy_long3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_rid,
+         { "Rid", "netlogon.netr_DELTA_GROUP.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_server_name,
+         { "Server Name", "netlogon.netr_ServerTrustPasswordsGet.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_PRIMARY,
+         { "Netr Trust Flag Primary", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_PRIMARY", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_PRIMARY_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_SecurityInformation,
+         { "Securityinformation", "netlogon.netr_DELTA_GROUP.SecurityInformation", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_POLICY.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_Reserved,
+         { "Reserved", "netlogon.netr_OsVersionInfoEx.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_db_index,
+         { "Db Index", "netlogon.netr_ChangeLogEntry.db_index", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_SamDatabaseID8Bit_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_os_version,
+         { "Os Version", "netlogon.netr_WorkstationInformation.os_version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountBuffer_blob,
+         { "Blob", "netlogon.netr_AccountBuffer.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_CSDVersion_,
+         { "Subcontext length", "netlogon.netr_OsVersionInfoEx.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_WEB_SERVICE_REQUIRED,
+         { "Ds Web Service Required", "netlogon.netr_DsRGetDCName_flags.DS_WEB_SERVICE_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_WEB_SERVICE_REQUIRED_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_domain_name,
+         { "Domain Name", "netlogon.netr_DsRGetDCName.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_group_member,
+         { "Group Member", "netlogon.netr_DELTA_UNION.group_member", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_DS,
+         { "Ds Server Ds", "netlogon.netr_DsR_DcFlags.DS_SERVER_DS", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_DS_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_ARRAY_count,
+         { "Count", "netlogon.NL_DNS_NAME_INFO_ARRAY.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_credential,
+         { "Credential", "netlogon.netr_ServerGetTrustInfo.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE,
+         { "Netr Trust Attribute Non Transitive", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_sid,
+         { "Sid", "netlogon.netr_DELTA_POLICY.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_return_credentials,
+         { "Return Credentials", "netlogon.netr_ServerAuthenticate2.return_credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_DNS_UPDATE_FAILURE,
+         { "Netlogon Dns Update Failure", "netlogon.netr_InfoFlags.NETLOGON_DNS_UPDATE_FAILURE", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_DNS_UPDATE_FAILURE_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsrGetDcSiteCoverageW_ctr,
+         { "Ctr", "netlogon.netr_DsrGetDcSiteCoverageW.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate2_server_name,
+         { "Server Name", "netlogon.netr_ServerAuthenticate2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2Ex_query,
+         { "Query", "netlogon.netr_LogonControl2Ex.query", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_code_page,
+         { "Code Page", "netlogon.netr_DELTA_USER.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_ALIAS_MEMBER.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordHistory_lm_size,
+         { "Lm Size", "netlogon.netr_PasswordHistory.lm_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_computer_name,
+         { "Computer Name", "netlogon.netr_LogonSamLogonWithFlags.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_recordid,
+         { "Recordid", "netlogon.netr_AccountSync.recordid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrEnumerateDomainTrusts_server_name,
+         { "Server Name", "netlogon.netr_DsrEnumerateDomainTrusts.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_SECRET.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_unknown,
+         { "Unknown", "netlogon.netr_UasInfo.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CIPHER_VALUE_maxlen,
+         { "Maxlen", "netlogon.netr_CIPHER_VALUE.maxlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_USER.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_computer_name,
+         { "Computer Name", "netlogon.netr_ServerGetTrustInfo.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogoff_credential,
+         { "Credential", "netlogon.netr_LogonSamLogoff.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustInfo_count,
+         { "Count", "netlogon.netr_TrustInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_sync_context,
+         { "Sync Context", "netlogon.netr_DatabaseSync2.sync_context", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_PDC_REQUIRED,
+         { "Ds Pdc Required", "netlogon.netr_DsRGetDCName_flags.DS_PDC_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_PDC_REQUIRED_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_credential,
+         { "Credential", "netlogon.netr_DatabaseRedo.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_pac_size,
+         { "Pac Size", "netlogon.netr_PacInfo.pac_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info1,
+         { "Info1", "netlogon.netr_CONTROL_QUERY_INFORMATION.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExW_ctr,
+         { "Ctr", "netlogon.netr_DsRAddressToSitenamesExW.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_dummy_string4,
+         { "Dummy String4", "netlogon.netr_OneDomainInfo.dummy_string4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_DOMAIN.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_ACCOUNT.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetSiteName_computer_name,
+         { "Computer Name", "netlogon.netr_DsRGetSiteName.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_domain_guid,
+         { "Domain Guid", "netlogon.netr_DsRGetDCName.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_allow_password_change,
+         { "Allow Password Change", "netlogon.netr_SamBaseInfo.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_REQUIRED,
+         { "Ds Directory Service Required", "netlogon.netr_DsRGetDCName_flags.DS_DIRECTORY_SERVICE_REQUIRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_REQUIRED_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2_data,
+         { "Data", "netlogon.netr_LogonControl2.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_credential,
+         { "Credential", "netlogon.netr_ServerPasswordGet.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInfo_lsa_policy_info,
+         { "Lsa Policy Info", "netlogon.netr_WorkstationInfo.lsa_policy_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_FIRST_PROMOTION_OBJ,
+         { "Netr Changelog First Promotion Obj", "netlogon.netr_ChangeLogFlags.NETR_CHANGELOG_FIRST_PROMOTION_OBJ", FT_BOOLEAN, 16, TFS(&netr_ChangeLogFlags_NETR_CHANGELOG_FIRST_PROMOTION_OBJ_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_buffer_,
+         { "Subcontext length", "netlogon.netr_AccountSync.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate_account_name,
+         { "Account Name", "netlogon.netr_ServerAuthenticate.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_account,
+         { "Account", "netlogon.netr_DELTA_UNION.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_buffer,
+         { "Buffer", "netlogon.netr_AccountSync.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_VERIFY_STATUS_RETURNED,
+         { "Netlogon Verify Status Returned", "netlogon.netr_InfoFlags.NETLOGON_VERIFY_STATUS_RETURNED", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_VERIFY_STATUS_RETURNED_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_credentials,
+         { "Credentials", "netlogon.netr_ServerAuthenticate3.credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_primary_gid,
+         { "Primary Gid", "netlogon.netr_DELTA_USER.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetDcName_dcname,
+         { "Dcname", "netlogon.netr_GetDcName.dcname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_USER.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC,
+         { "Netlogon Neg Authenticated Rpc", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_AUTHENTICATED_RPC", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_AUTHENTICATED_RPC_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo6_principle,
+         { "Principle", "netlogon.netr_SamInfo6.principle", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_MIT_KRB5,
+         { "Netr Trust Flag Mit Krb5", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_MIT_KRB5", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_MIT_KRB5_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_credential,
+         { "Credential", "netlogon.netr_DatabaseSync2.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_TRY_NEXTCLOSEST_SITE,
+         { "Ds Try Nextclosest Site", "netlogon.netr_DsRGetDCName_flags.DS_TRY_NEXTCLOSEST_SITE", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_TRY_NEXTCLOSEST_SITE_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEYS2_lmpassword,
+         { "Lmpassword", "netlogon.netr_USER_KEYS2.lmpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_auth,
+         { "Auth", "netlogon.netr_PacInfo.auth", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LMSessionKey_key,
+         { "Key", "netlogon.netr_LMSessionKey.key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_nt_password_present,
+         { "Nt Password Present", "netlogon.netr_DELTA_USER.nt_password_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NetworkInfo_lm,
+         { "Lm", "netlogon.netr_NetworkInfo.lm", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExWCtr_subnetname,
+         { "Subnetname", "netlogon.netr_DsRAddressToSitenamesExWCtr.subnetname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_GROUP.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_unknown1,
+         { "Unknown1", "netlogon.netr_DELTA_SECRET.unknown1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_unknown5,
+         { "Unknown5", "netlogon.netr_NETLOGON_INFO_3.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_CONCURRENT_RPC,
+         { "Netlogon Neg Concurrent Rpc", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_CONCURRENT_RPC", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_CONCURRENT_RPC_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_alias_name,
+         { "Alias Name", "netlogon.netr_DELTA_ALIAS.alias_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_AES,
+         { "Netr Trust Flag Aes", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_AES", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_AES_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersion_dummy,
+         { "Dummy", "netlogon.netr_OsVersion.dummy", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_description,
+         { "Description", "netlogon.netr_DELTA_GROUP.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainInformation_trusted_domains,
+         { "Trusted Domains", "netlogon.netr_DomainInformation.trusted_domains", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInfo_workstation_info,
+         { "Workstation Info", "netlogon.netr_WorkstationInfo.workstation_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogoff_server_name,
+         { "Server Name", "netlogon.netr_LogonSamLogoff.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY,
+         { "Msv1 0 Try Specified Domain Only", "netlogon.netr_LogonParameterControl.MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_computer_name,
+         { "Computer Name", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_PREFERRED,
+         { "Ds Directory Service Preferred", "netlogon.netr_DsRGetDCName_flags.DS_DIRECTORY_SERVICE_PREFERRED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_DIRECTORY_SERVICE_PREFERRED_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_MajorVersion,
+         { "Majorversion", "netlogon.netr_OsVersionInfoEx.MajorVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_lmpassword,
+         { "Lmpassword", "netlogon.netr_DELTA_USER.lmpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_num_controllers,
+         { "Num Controllers", "netlogon.netr_DELTA_TRUSTED_DOMAIN.num_controllers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl_function_code,
+         { "Function Code", "netlogon.netr_LogonControl.function_code", FT_UINT32, BASE_DEC, VALS(netlogon_netr_LogonControlCode_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogon_server_name,
+         { "Server Name", "netlogon.netr_LogonUasLogon.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_credential,
+         { "Credential", "netlogon.netr_AccountDeltas.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx2_site_name,
+         { "Site Name", "netlogon.netr_DsRGetDCNameEx2.site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonControl2_level,
+         { "Level", "netlogon.netr_LogonControl2.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo6_base,
+         { "Base", "netlogon.netr_SamInfo6.base", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_RETURN_DNS_NAME,
+         { "Ds Return Dns Name", "netlogon.netr_DsRGetDCName_flags.DS_RETURN_DNS_NAME", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_RETURN_DNS_NAME_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_netlogon_NL_DNS_NAME_INFO_dns_domain_info,
+         { "Dns Domain Info", "netlogon.NL_DNS_NAME_INFO.dns_domain_info", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_auditretentionperiod,
+         { "Auditretentionperiod", "netlogon.netr_DELTA_POLICY.auditretentionperiod", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_domainname,
+         { "Domainname", "netlogon.netr_OneDomainInfo.domainname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerGetTrustInfo_trust_info,
+         { "Trust Info", "netlogon.netr_ServerGetTrustInfo.trust_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_NL_PASSWORD_VERSION_PasswordVersionNumber,
+         { "Passwordversionnumber", "netlogon.NL_PASSWORD_VERSION.PasswordVersionNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS,
+         { "Netr Ver Suite Singleuserts", "netlogon.netr_SuiteMask.NETR_VER_SUITE_SINGLEUSERTS", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_SINGLEUSERTS_tfs), ( 0x0100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_CryptPassword_data,
+         { "Data", "netlogon.netr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_workstation_flags,
+         { "Workstation Flags", "netlogon.netr_WorkstationInformation.workstation_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_last_failed_logon,
+         { "Last Failed Logon", "netlogon.netr_SamBaseInfo.last_failed_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GenericInfo_identity_info,
+         { "Identity Info", "netlogon.netr_GenericInfo.identity_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Capabilities_server_capabilities,
+         { "Server Capabilities", "netlogon.netr_Capabilities.server_capabilities", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetForestTrustInformation_server_name,
+         { "Server Name", "netlogon.netr_GetForestTrustInformation.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_comment,
+         { "Comment", "netlogon.netr_DELTA_USER.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChallengeResponse_data,
+         { "Data", "netlogon.netr_ChallengeResponse.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NetworkInfo_challenge,
+         { "Challenge", "netlogon.netr_NetworkInfo.challenge", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_logon_to_chgpass,
+         { "Logon To Chgpass", "netlogon.netr_DELTA_DOMAIN.logon_to_chgpass", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_logon_script,
+         { "Logon Script", "netlogon.netr_SamBaseInfo.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_password_history_length,
+         { "Password History Length", "netlogon.netr_DELTA_DOMAIN.password_history_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_trust_extension,
+         { "Trust Extension", "netlogon.netr_OneDomainInfo.trust_extension", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChallengeResponse_size,
+         { "Size", "netlogon.netr_ChallengeResponse.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_domain_name,
+         { "Domain Name", "netlogon.netr_DELTA_TRUSTED_DOMAIN.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SuiteMask_NETR_VER_SUITE_WH_SERVER,
+         { "Netr Ver Suite Wh Server", "netlogon.netr_SuiteMask.NETR_VER_SUITE_WH_SERVER", FT_BOOLEAN, 16, TFS(&netr_SuiteMask_NETR_VER_SUITE_WH_SERVER_tfs), ( 0x8000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NetrEnumerateTrustedDomains_server_name,
+         { "Server Name", "netlogon.netr_NetrEnumerateTrustedDomains.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy_long2,
+         { "Dummy Long2", "netlogon.netr_WorkstationInformation.dummy_long2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_RENAME.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_DNS_CONTROLLER,
+         { "Ds Dns Controller", "netlogon.netr_DsR_DcFlags.DS_DNS_CONTROLLER", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_DNS_CONTROLLER_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_QUOTA_LIMITS_pagedpoollimit,
+         { "Pagedpoollimit", "netlogon.netr_QUOTA_LIMITS.pagedpoollimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ENUM_ARRAY_delta_enum,
+         { "Delta Enum", "netlogon.netr_DELTA_ENUM_ARRAY.delta_enum", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_trust_type,
+         { "Trust Type", "netlogon.netr_DomainTrust.trust_type", FT_UINT32, BASE_DEC, VALS(netlogon_netr_TrustType_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_SECRET_old_cipher_set_time,
+         { "Old Cipher Set Time", "netlogon.netr_DELTA_SECRET.old_cipher_set_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GenericInfo2_data,
+         { "Data", "netlogon.netr_GenericInfo2.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_USED_LM_PASSWORD,
+         { "Netlogon Used Lm Password", "netlogon.netr_UserFlags.NETLOGON_USED_LM_PASSWORD", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_USED_LM_PASSWORD_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_domain_name,
+         { "Domain Name", "netlogon.netr_DsRGetDCNameInfo.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersion_length,
+         { "Length", "netlogon.netr_OsVersion.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_alias_member,
+         { "Alias Member", "netlogon.netr_DELTA_UNION.alias_member", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEY16_flags,
+         { "Flags", "netlogon.netr_USER_KEY16.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_eventauditoptions,
+         { "Eventauditoptions", "netlogon.netr_DELTA_POLICY.eventauditoptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_computer_name,
+         { "Computer Name", "netlogon.netr_ServerTrustPasswordsGet.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_USER.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_UPDATE_LOGON_STATISTICS,
+         { "Msv1 0 Update Logon Statistics", "netlogon.netr_LogonParameterControl.MSV1_0_UPDATE_LOGON_STATISTICS", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_UPDATE_LOGON_STATISTICS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameInfo_dc_site_name,
+         { "Dc Site Name", "netlogon.netr_DsRGetDCNameInfo.dc_site_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustFlags_NETR_TRUST_FLAG_INBOUND,
+         { "Netr Trust Flag Inbound", "netlogon.netr_TrustFlags.NETR_TRUST_FLAG_INBOUND", FT_BOOLEAN, 32, TFS(&netr_TrustFlags_NETR_TRUST_FLAG_INBOUND_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_computername,
+         { "Computername", "netlogon.netr_DatabaseSync2.computername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PasswordInfo_lmpassword,
+         { "Lmpassword", "netlogon.netr_PasswordInfo.lmpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrUpdateReadOnlyServerDnsRecords_credential,
+         { "Credential", "netlogon.netr_DsrUpdateReadOnlyServerDnsRecords.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_reserved,
+         { "Reserved", "netlogon.netr_SamBaseInfo.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_QUOTA_LIMITS_pagefilelimit,
+         { "Pagefilelimit", "netlogon.netr_QUOTA_LIMITS.pagefilelimit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_Blob_length,
+         { "Length", "netlogon.netr_Blob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_MEMBER_unknown4,
+         { "Unknown4", "netlogon.netr_DELTA_ALIAS_MEMBER.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogon_workstation,
+         { "Workstation", "netlogon.netr_LogonUasLogon.workstation", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AcctLockStr_bad_attempt_lockout,
+         { "Bad Attempt Lockout", "netlogon.netr_AcctLockStr.bad_attempt_lockout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_InfoFlags_NETLOGON_HAS_TIMESERV,
+         { "Netlogon Has Timeserv", "netlogon.netr_InfoFlags.NETLOGON_HAS_TIMESERV", FT_BOOLEAN, 32, TFS(&netr_InfoFlags_NETLOGON_HAS_TIMESERV_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_GetAnyDCName_logon_server,
+         { "Logon Server", "netlogon.netr_GetAnyDCName.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_last_logon,
+         { "Last Logon", "netlogon.netr_UasInfo.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_WRITABLE,
+         { "Ds Server Writable", "netlogon.netr_DsR_DcFlags.DS_SERVER_WRITABLE", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_WRITABLE_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DOMAIN_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_DOMAIN.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ACCOUNT_unknown3,
+         { "Unknown3", "netlogon.netr_DELTA_ACCOUNT.unknown3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_buffer_,
+         { "Subcontext length", "netlogon.netr_AccountDeltas.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_BACKGROUND_ONLY,
+         { "Ds Background Only", "netlogon.netr_DsRGetDCName_flags.DS_BACKGROUND_ONLY", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_BACKGROUND_ONLY_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_netlogon_netr_QUOTA_LIMITS_timelimit,
+         { "Timelimit", "netlogon.netr_QUOTA_LIMITS.timelimit", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SupportedEncTypes_ENC_RC4_HMAC_MD5,
+         { "Enc Rc4 Hmac Md5", "netlogon.netr_SupportedEncTypes.ENC_RC4_HMAC_MD5", FT_BOOLEAN, 32, TFS(&netr_SupportedEncTypes_ENC_RC4_HMAC_MD5_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_computer_name,
+         { "Computer Name", "netlogon.netr_ServerAuthenticate3.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_DELETE_USER.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_delete_group,
+         { "Delete Group", "netlogon.netr_DELTA_UNION.delete_group", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_SID_INCLUDED,
+         { "Netr Changelog Sid Included", "netlogon.netr_ChangeLogFlags.NETR_CHANGELOG_SID_INCLUDED", FT_BOOLEAN, 16, TFS(&netr_ChangeLogFlags_NETR_CHANGELOG_SID_INCLUDED_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_level,
+         { "Level", "netlogon.netr_AccountDeltas.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_parent_index,
+         { "Parent Index", "netlogon.netr_trust_extension.parent_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_failed_logon_count,
+         { "Failed Logon Count", "netlogon.netr_SamBaseInfo.failed_logon_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_FULL_SYNC_REPL,
+         { "Netlogon Neg Full Sync Repl", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_FULL_SYNC_REPL", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_FULL_SYNC_REPL_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_account_name,
+         { "Account Name", "netlogon.netr_ServerTrustPasswordsGet.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_last_logon,
+         { "Last Logon", "netlogon.netr_DELTA_USER.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddressToSitenamesExW_addresses,
+         { "Addresses", "netlogon.netr_DsRAddressToSitenamesExW.addresses", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_logon_count,
+         { "Logon Count", "netlogon.netr_DELTA_USER.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetCapabilities_return_authenticator,
+         { "Return Authenticator", "netlogon.netr_LogonGetCapabilities.return_authenticator", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountDeltas_logon_server,
+         { "Logon Server", "netlogon.netr_AccountDeltas.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo2_base,
+         { "Base", "netlogon.netr_SamInfo2.base", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_POLICY.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonWithFlags_validation_level,
+         { "Validation Level", "netlogon.netr_LogonSamLogonWithFlags.validation_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrDeregisterDNSHostRecords_dns_host,
+         { "Dns Host", "netlogon.netr_DsrDeregisterDNSHostRecords.dns_host", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_GRACE_LOGON,
+         { "Netlogon Grace Logon", "netlogon.netr_UserFlags.NETLOGON_GRACE_LOGON", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_GRACE_LOGON_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ServerTrustPasswordsGet_credential,
+         { "Credential", "netlogon.netr_ServerTrustPasswordsGet.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_RENAME_OldName,
+         { "Oldname", "netlogon.netr_DELTA_RENAME.OldName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_flags_DS_ONLY_LDAP_NEEDED,
+         { "Ds Only Ldap Needed", "netlogon.netr_DsRGetDCName_flags.DS_ONLY_LDAP_NEEDED", FT_BOOLEAN, 32, TFS(&netr_DsRGetDCName_flags_DS_ONLY_LDAP_NEEDED_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_DELETE_USER.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_DELETE_USER_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_DELETE_USER.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_logon_script,
+         { "Logon Script", "netlogon.netr_DELTA_USER.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES128,
+         { "Enc Hmac Sha1 96 Aes128", "netlogon.netr_SupportedEncTypes.ENC_HMAC_SHA1_96_AES128", FT_BOOLEAN, 32, TFS(&netr_SupportedEncTypes_ENC_HMAC_SHA1_96_AES128_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_KDC,
+         { "Ds Server Kdc", "netlogon.netr_DsR_DcFlags.DS_SERVER_KDC", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_KDC_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_netlogon_netr_NetrEnumerateTrustedDomainsEx_dom_trust_list,
+         { "Dom Trust List", "netlogon.netr_NetrEnumerateTrustedDomainsEx.dom_trust_list", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY,
+         { "Netr Trust Attribute Uplevel Only", "netlogon.netr_TrustAttributes.NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", FT_BOOLEAN, 32, TFS(&netr_TrustAttributes_NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogObject_object_name,
+         { "Object Name", "netlogon.netr_ChangeLogObject.object_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRAddress_buffer,
+         { "Buffer", "netlogon.netr_DsRAddress.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogonEx_computer_name,
+         { "Computer Name", "netlogon.netr_LogonSamLogonEx.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamInfo3_sids,
+         { "Sids", "netlogon.netr_SamInfo3.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown2,
+         { "Unknown2", "netlogon.netr_DELTA_ALIAS.unknown2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetDomainInfo_query,
+         { "Query", "netlogon.netr_LogonGetDomainInfo.query", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate_credentials,
+         { "Credentials", "netlogon.netr_ServerAuthenticate.credentials", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerAuthenticate3_rid,
+         { "Rid", "netlogon.netr_ServerAuthenticate3.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_PacInfo_unknown4,
+         { "Unknown4", "netlogon.netr_PacInfo.unknown4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_3_unknown4,
+         { "Unknown4", "netlogon.netr_NETLOGON_INFO_3.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AccountSync_level,
+         { "Level", "netlogon.netr_AccountSync.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_POLICY_unknown5,
+         { "Unknown5", "netlogon.netr_DELTA_POLICY.unknown5", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_IdentityInfo_workstation,
+         { "Workstation", "netlogon.netr_IdentityInfo.workstation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_DNS_DOMAIN_TRUSTS,
+         { "Netlogon Neg Dns Domain Trusts", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_DNS_DOMAIN_TRUSTS", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_DNS_DOMAIN_TRUSTS_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OneDomainInfo_domain_sid,
+         { "Domain Sid", "netlogon.netr_OneDomainInfo.domain_sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_description,
+         { "Description", "netlogon.netr_DELTA_USER.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_unknown6,
+         { "Unknown6", "netlogon.netr_DELTA_GROUP.unknown6", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_bad_pw_count,
+         { "Bad Pw Count", "netlogon.netr_UasInfo.bad_pw_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NETLOGON_INFO_1_pdc_connection_status,
+         { "Pdc Connection Status", "netlogon.netr_NETLOGON_INFO_1.pdc_connection_status", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_CONTROL_QUERY_INFORMATION_info2,
+         { "Info2", "netlogon.netr_CONTROL_QUERY_INFORMATION.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_LMSessKey,
+         { "Lmsesskey", "netlogon.netr_SamBaseInfo.LMSessKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_ALIAS.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetForestTrustInformation_credential,
+         { "Credential", "netlogon.netr_GetForestTrustInformation.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonSamLogoff_logon,
+         { "Logon", "netlogon.netr_LogonSamLogoff.logon", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogEntry_delta_type,
+         { "Delta Type", "netlogon.netr_ChangeLogEntry.delta_type", FT_UINT1632, BASE_DEC, VALS(netlogon_netr_DeltaEnum8Bit_vals), 0, NULL, HFILL }},
+       { &hf_netlogon_netr_GetForestTrustInformation_forest_trust_info,
+         { "Forest Trust Info", "netlogon.netr_GetForestTrustInformation.forest_trust_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_WorkstationInformation_dummy3,
+         { "Dummy3", "netlogon.netr_WorkstationInformation.dummy3", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_secret,
+         { "Secret", "netlogon.netr_DELTA_UNION.secret", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown7,
+         { "Unknown7", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown7", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DomainTrust_guid,
+         { "Guid", "netlogon.netr_DomainTrust.guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_IdentityInfo_account_name,
+         { "Account Name", "netlogon.netr_IdentityInfo.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_logon_server,
+         { "Logon Server", "netlogon.netr_DatabaseDeltas.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION,
+         { "Netlogon Neg Neutralize Nt4 Emulation", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCNameEx_domain_guid,
+         { "Domain Guid", "netlogon.netr_DsRGetDCNameEx.domain_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonUasLogon_info,
+         { "Info", "netlogon.netr_LogonUasLogon.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_GROUP_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_GROUP.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_ntpassword,
+         { "Ntpassword", "netlogon.netr_DELTA_USER.ntpassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseDeltas_preferredmaximumlength,
+         { "Preferredmaximumlength", "netlogon.netr_DatabaseDeltas.preferredmaximumlength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_TRUSTED_DOMAIN.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ChangeLogFlags_NETR_CHANGELOG_CHANGED_PASSWORD,
+         { "Netr Changelog Changed Password", "netlogon.netr_ChangeLogFlags.NETR_CHANGELOG_CHANGED_PASSWORD", FT_BOOLEAN, 16, TFS(&netr_ChangeLogFlags_NETR_CHANGELOG_CHANGED_PASSWORD_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEY16_size,
+         { "Size", "netlogon.netr_USER_KEY16.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordGet_password,
+         { "Password", "netlogon.netr_ServerPasswordGet.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_TrustInfo_entries,
+         { "Entries", "netlogon.netr_TrustInfo.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED,
+         { "Msv1 0 Cleartext Password Supplied", "netlogon.netr_LogonParameterControl.MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED", FT_BOOLEAN, 32, TFS(&netr_LogonParameterControl_MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ID_UNION_name,
+         { "Name", "netlogon.netr_DELTA_ID_UNION.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseRedo_change_log_entry_size,
+         { "Change Log Entry Size", "netlogon.netr_DatabaseRedo.change_log_entry_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_GETDOMAININFO,
+         { "Netlogon Neg Getdomaininfo", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_GETDOMAININFO", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_GETDOMAININFO_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_SuiteMask,
+         { "Suitemask", "netlogon.netr_OsVersionInfoEx.SuiteMask", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_OsVersionInfoEx_ServicePackMinor,
+         { "Servicepackminor", "netlogon.netr_OsVersionInfoEx.ServicePackMinor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerReqChallenge_server_name,
+         { "Server Name", "netlogon.netr_ServerReqChallenge.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UasInfo_auth_flags,
+         { "Auth Flags", "netlogon.netr_UasInfo.auth_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_LogonGetCapabilities_credential,
+         { "Credential", "netlogon.netr_LogonGetCapabilities.credential", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsRGetDCName_site_guid,
+         { "Site Guid", "netlogon.netr_DsRGetDCName.site_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsR_DcFlags_DS_SERVER_TIMESERV,
+         { "Ds Server Timeserv", "netlogon.netr_DsR_DcFlags.DS_SERVER_TIMESERV", FT_BOOLEAN, 32, TFS(&netr_DsR_DcFlags_DS_SERVER_TIMESERV_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_UNION_domain,
+         { "Domain", "netlogon.netr_DELTA_UNION.domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_NegotiateFlags_NETLOGON_NEG_GENERIC_PASSTHROUGH,
+         { "Netlogon Neg Generic Passthrough", "netlogon.netr_NegotiateFlags.NETLOGON_NEG_GENERIC_PASSTHROUGH", FT_BOOLEAN, 32, TFS(&netr_NegotiateFlags_NETLOGON_NEG_GENERIC_PASSTHROUGH_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_netlogon_netr_SamBaseInfo_sub_auth_status,
+         { "Sub Auth Status", "netlogon.netr_SamBaseInfo.sub_auth_status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UAS_INFO_0_computer_name,
+         { "Computer Name", "netlogon.netr_UAS_INFO_0.computer_name", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_USER_KEY16_pwd,
+         { "Pwd", "netlogon.netr_USER_KEY16.pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DsrDeregisterDNSHostRecords_server_name,
+         { "Server Name", "netlogon.netr_DsrDeregisterDNSHostRecords.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_IdentityInfo_logon_id_low,
+         { "Logon Id Low", "netlogon.netr_IdentityInfo.logon_id_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_AcctLockStr_reset_count,
+         { "Reset Count", "netlogon.netr_AcctLockStr.reset_count", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_UserFlags_NETLOGON_CACHED_ACCOUNT,
+         { "Netlogon Cached Account", "netlogon.netr_UserFlags.NETLOGON_CACHED_ACCOUNT", FT_BOOLEAN, 32, TFS(&netr_UserFlags_NETLOGON_CACHED_ACCOUNT_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_netlogon_netr_DatabaseSync2_logon_server,
+         { "Logon Server", "netlogon.netr_DatabaseSync2.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_trust_extension_length,
+         { "Length", "netlogon.netr_trust_extension.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_TRUSTED_DOMAIN_sdbuf,
+         { "Sdbuf", "netlogon.netr_DELTA_TRUSTED_DOMAIN.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_ServerPasswordSet2_server_name,
+         { "Server Name", "netlogon.netr_ServerPasswordSet2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_USER_profile_path,
+         { "Profile Path", "netlogon.netr_DELTA_USER.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_netlogon_netr_DELTA_ALIAS_unknown8,
+         { "Unknown8", "netlogon.netr_DELTA_ALIAS.unknown8", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_netlogon,
+               &ett_netlogon_samr_AcctFlags,
+               &ett_netlogon_samr_GroupAttrs,
+               &ett_netlogon_netr_UasInfo,
+               &ett_netlogon_netr_UasLogoffInfo,
+               &ett_netlogon_netr_AcctLockStr,
+               &ett_netlogon_netr_LogonParameterControl,
+               &ett_netlogon_netr_IdentityInfo,
+               &ett_netlogon_netr_PasswordInfo,
+               &ett_netlogon_netr_ChallengeResponse,
+               &ett_netlogon_netr_NetworkInfo,
+               &ett_netlogon_netr_GenericInfo,
+               &ett_netlogon_netr_LogonLevel,
+               &ett_netlogon_netr_UserSessionKey,
+               &ett_netlogon_netr_LMSessionKey,
+               &ett_netlogon_netr_UserFlags,
+               &ett_netlogon_netr_SamBaseInfo,
+               &ett_netlogon_netr_SamInfo2,
+               &ett_netlogon_netr_SidAttr,
+               &ett_netlogon_netr_SamInfo3,
+               &ett_netlogon_netr_SamInfo6,
+               &ett_netlogon_netr_PacInfo,
+               &ett_netlogon_netr_GenericInfo2,
+               &ett_netlogon_netr_Validation,
+               &ett_netlogon_netr_Credential,
+               &ett_netlogon_netr_Authenticator,
+               &ett_netlogon_netr_DELTA_DELETE_USER,
+               &ett_netlogon_netr_USER_KEY16,
+               &ett_netlogon_netr_PasswordHistory,
+               &ett_netlogon_netr_USER_KEYS2,
+               &ett_netlogon_netr_USER_KEY_UNION,
+               &ett_netlogon_netr_USER_KEYS,
+               &ett_netlogon_netr_USER_PRIVATE_INFO,
+               &ett_netlogon_netr_DELTA_USER,
+               &ett_netlogon_netr_DELTA_DOMAIN,
+               &ett_netlogon_netr_DELTA_GROUP,
+               &ett_netlogon_netr_DELTA_RENAME,
+               &ett_netlogon_netr_DELTA_GROUP_MEMBER,
+               &ett_netlogon_netr_DELTA_ALIAS,
+               &ett_netlogon_netr_DELTA_ALIAS_MEMBER,
+               &ett_netlogon_netr_QUOTA_LIMITS,
+               &ett_netlogon_netr_DELTA_POLICY,
+               &ett_netlogon_netr_DELTA_TRUSTED_DOMAIN,
+               &ett_netlogon_netr_DELTA_ACCOUNT,
+               &ett_netlogon_netr_CIPHER_VALUE,
+               &ett_netlogon_netr_DELTA_SECRET,
+               &ett_netlogon_netr_DELTA_UNION,
+               &ett_netlogon_netr_DELTA_ID_UNION,
+               &ett_netlogon_netr_DELTA_ENUM,
+               &ett_netlogon_netr_DELTA_ENUM_ARRAY,
+               &ett_netlogon_netr_UAS_INFO_0,
+               &ett_netlogon_netr_AccountBuffer,
+               &ett_netlogon_netr_InfoFlags,
+               &ett_netlogon_netr_NETLOGON_INFO_1,
+               &ett_netlogon_netr_NETLOGON_INFO_2,
+               &ett_netlogon_netr_NETLOGON_INFO_3,
+               &ett_netlogon_netr_NETLOGON_INFO_4,
+               &ett_netlogon_netr_CONTROL_QUERY_INFORMATION,
+               &ett_netlogon_netr_CONTROL_DATA_INFORMATION,
+               &ett_netlogon_netr_NegotiateFlags,
+               &ett_netlogon_netr_ChangeLogFlags,
+               &ett_netlogon_netr_ChangeLogObject,
+               &ett_netlogon_netr_ChangeLogEntry,
+               &ett_netlogon_netr_Blob,
+               &ett_netlogon_netr_DsRGetDCName_flags,
+               &ett_netlogon_netr_DsR_DcFlags,
+               &ett_netlogon_netr_DsRGetDCNameInfo,
+               &ett_netlogon_netr_Capabilities,
+               &ett_netlogon_netr_TrustFlags,
+               &ett_netlogon_netr_WorkstationFlags,
+               &ett_netlogon_netr_SuiteMask,
+               &ett_netlogon_netr_ProductType,
+               &ett_netlogon_netr_LsaPolicyInformation,
+               &ett_netlogon_netr_OsVersionInfoEx,
+               &ett_netlogon_netr_OsVersion,
+               &ett_netlogon_netr_OsVersionContainer,
+               &ett_netlogon_netr_WorkstationInformation,
+               &ett_netlogon_netr_WorkstationInfo,
+               &ett_netlogon_netr_trust_extension,
+               &ett_netlogon_netr_trust_extension_container,
+               &ett_netlogon_netr_OneDomainInfo,
+               &ett_netlogon_netr_SupportedEncTypes,
+               &ett_netlogon_netr_DomainInformation,
+               &ett_netlogon_netr_DomainInfo,
+               &ett_netlogon_NL_PASSWORD_VERSION,
+               &ett_netlogon_netr_CryptPassword,
+               &ett_netlogon_netr_DsRAddressToSitenamesWCtr,
+               &ett_netlogon_netr_DsRAddress,
+               &ett_netlogon_netr_TrustAttributes,
+               &ett_netlogon_netr_DomainTrust,
+               &ett_netlogon_netr_DomainTrustList,
+               &ett_netlogon_netr_DsRAddressToSitenamesExWCtr,
+               &ett_netlogon_DcSitesCtr,
+               &ett_netlogon_netr_TrustInfo,
+               &ett_netlogon_NL_DNS_NAME_INFO,
+               &ett_netlogon_NL_DNS_NAME_INFO_ARRAY,
+       };
+
+       proto_dcerpc_netlogon = proto_register_protocol("NULL", "NETLOGON", "netlogon");
+       proto_register_field_array(proto_dcerpc_netlogon, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_netlogon(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_netlogon, ett_dcerpc_netlogon,
+               &uuid_dcerpc_netlogon, ver_dcerpc_netlogon,
+               netlogon_dissectors, hf_netlogon_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.h b/bin/default/librpc/gen_ndr/packet-dcerpc-netlogon.h
new file mode 100644 (file)
index 0000000..60c58a8
--- /dev/null
@@ -0,0 +1,224 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/netlogon.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/netlogon.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-samr.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_NETLOGON_H
+#define __PACKET_DCERPC_NETLOGON_H
+
+#define NETLOGON_NEG_128BIT    ( NETLOGON_NEG_STRONG_KEYS )
+
+#define NETLOGON_NEG_SCHANNEL  ( NETLOGON_NEG_AUTHENTICATED_RPC )
+
+#define DSGETDC_VALID_FLAGS    ( (DS_FORCE_REDISCOVERY|DS_DIRECTORY_SERVICE_REQUIRED|DS_DIRECTORY_SERVICE_PREFERRED|DS_GC_SERVER_REQUIRED|DS_PDC_REQUIRED|DS_BACKGROUND_ONLY|DS_IP_REQUIRED|DS_KDC_REQUIRED|DS_TIMESERV_REQUIRED|DS_WRITABLE_REQUIRED|DS_GOOD_TIMESERV_PREFERRED|DS_AVOID_SELF|DS_ONLY_LDAP_NEEDED|DS_IS_FLAT_NAME|DS_IS_DNS_NAME|DS_TRY_NEXTCLOSEST_SITE|DS_DIRECTORY_SERVICE_6_REQUIRED|DS_WEB_SERVICE_REQUIRED|DS_RETURN_FLAT_NAME|DS_RETURN_DNS_NAME) )
+
+#define NETLOGON_PASSWORD_VERSION_NUMBER_PRESENT       ( 0x02231968 )
+
+#define DS_GFTI_UPDATE_TDO     ( 0x1 )
+
+int netlogon_dissect_bitmap_samr_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_samr_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+extern const value_string netlogon_netr_DeltaEnum8Bit_vals[];
+int netlogon_dissect_enum_netr_DeltaEnum8Bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+extern const value_string netlogon_netr_SamDatabaseID8Bit_vals[];
+int netlogon_dissect_enum_netr_SamDatabaseID8Bit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_struct_netr_UasInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_UasLogoffInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_AcctLockStr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_LogonParameterControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_IdentityInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_PasswordInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_ChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_NetworkInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_GenericInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NetlogonInteractiveInformation (1)
+#define NetlogonNetworkInformation (2)
+#define NetlogonServiceInformation (3)
+#define NetlogonGenericInformation (4)
+#define NetlogonInteractiveTransitiveInformation (5)
+#define NetlogonNetworkTransitiveInformation (6)
+#define NetlogonServiceTransitiveInformation (7)
+extern const value_string netlogon_netr_LogonInfoClass_vals[];
+int netlogon_dissect_enum_netr_LogonInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_struct_netr_UserSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_LMSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_UserFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_SamBaseInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_SamInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_SidAttr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_SamInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_SamInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_PacInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_GenericInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NetlogonValidationUasInfo (1)
+#define NetlogonValidationSamInfo (2)
+#define NetlogonValidationSamInfo2 (3)
+#define NetlogonValidationGenericInfo2 (5)
+#define NetlogonValidationSamInfo4 (6)
+extern const value_string netlogon_netr_ValidationInfoClass_vals[];
+int netlogon_dissect_enum_netr_ValidationInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_struct_netr_Credential(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_Authenticator(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+extern const value_string netlogon_netr_SchannelType_vals[];
+int netlogon_dissect_enum_netr_SchannelType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+extern const value_string netlogon_netr_SamDatabaseID_vals[];
+int netlogon_dissect_enum_netr_SamDatabaseID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_struct_netr_DELTA_DELETE_USER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_USER_KEY16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_PasswordHistory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_USER_KEYS2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_USER_KEY_UNION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_USER_KEYS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_USER_PRIVATE_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_USER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_DOMAIN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_GROUP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_RENAME(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_GROUP_MEMBER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_ALIAS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_ALIAS_MEMBER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_QUOTA_LIMITS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_POLICY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_TRUSTED_DOMAIN(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_ACCOUNT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_CIPHER_VALUE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_SECRET(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NETR_DELTA_DOMAIN (1)
+#define NETR_DELTA_GROUP (2)
+#define NETR_DELTA_DELETE_GROUP (3)
+#define NETR_DELTA_RENAME_GROUP (4)
+#define NETR_DELTA_USER (5)
+#define NETR_DELTA_DELETE_USER (6)
+#define NETR_DELTA_RENAME_USER (7)
+#define NETR_DELTA_GROUP_MEMBER (8)
+#define NETR_DELTA_ALIAS (9)
+#define NETR_DELTA_DELETE_ALIAS (10)
+#define NETR_DELTA_RENAME_ALIAS (11)
+#define NETR_DELTA_ALIAS_MEMBER (12)
+#define NETR_DELTA_POLICY (13)
+#define NETR_DELTA_TRUSTED_DOMAIN (14)
+#define NETR_DELTA_DELETE_TRUST (15)
+#define NETR_DELTA_ACCOUNT (16)
+#define NETR_DELTA_DELETE_ACCOUNT (17)
+#define NETR_DELTA_SECRET (18)
+#define NETR_DELTA_DELETE_SECRET (19)
+#define NETR_DELTA_DELETE_GROUP2 (20)
+#define NETR_DELTA_DELETE_USER2 (21)
+#define NETR_DELTA_MODIFY_COUNT (22)
+extern const value_string netlogon_netr_DeltaEnum_vals[];
+int netlogon_dissect_enum_netr_DeltaEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_struct_netr_DELTA_ENUM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DELTA_ENUM_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_UAS_INFO_0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_AccountBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_InfoFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_NETLOGON_INFO_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_NETLOGON_INFO_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_NETLOGON_INFO_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_NETLOGON_INFO_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NETLOGON_CONTROL_QUERY (0x00000001)
+#define NETLOGON_CONTROL_REPLICATE (0x00000002)
+#define NETLOGON_CONTROL_SYNCHRONIZE (0x00000003)
+#define NETLOGON_CONTROL_PDC_REPLICATE (0x00000004)
+#define NETLOGON_CONTROL_REDISCOVER (0x00000005)
+#define NETLOGON_CONTROL_TC_QUERY (0x00000006)
+#define NETLOGON_CONTROL_TRANSPORT_NOTIFY (0x00000007)
+#define NETLOGON_CONTROL_FIND_USER (0x00000008)
+#define NETLOGON_CONTROL_CHANGE_PASSWORD (0x00000009)
+#define NETLOGON_CONTROL_TC_VERIFY (0x0000000A)
+#define NETLOGON_CONTROL_FORCE_DNS_REG (0x0000000B)
+#define NETLOGON_CONTROL_QUERY_DNS_REG (0x0000000C)
+#define NETLOGON_CONTROL_BACKUP_CHANGE_LOG (0x0000FFFC)
+#define NETLOGON_CONTROL_TRUNCATE_LOG (0x0000FFFD)
+#define NETLOGON_CONTROL_SET_DBFLAG (0x0000FFFE)
+#define NETLOGON_CONTROL_BREAKPOINT (0x0000FFFF)
+extern const value_string netlogon_netr_LogonControlCode_vals[];
+int netlogon_dissect_enum_netr_LogonControlCode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_bitmap_netr_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SYNCSTATE_NORMAL_STATE (0)
+#define SYNCSTATE_DOMAIN_STATE (1)
+#define SYNCSTATE_GROUP_STATE (2)
+#define SYNCSTATE_UAS_BUILT_IN_GROUP_STATE (3)
+#define SYNCSTATE_USER_STATE (4)
+#define SYNCSTATE_GROUP_MEMBER_STATE (5)
+#define SYNCSTATE_ALIAS_STATE (6)
+#define SYNCSTATE_ALIAS_MEMBER_STATE (7)
+#define SYNCSTATE_SAM_DONE_STATE (8)
+extern const value_string netlogon_SyncStateEnum_vals[];
+int netlogon_dissect_enum_SyncStateEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_bitmap_netr_ChangeLogFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_ChangeLogEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_Blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_DsRGetDCName_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DS_ADDRESS_TYPE_INET (1)
+#define DS_ADDRESS_TYPE_NETBIOS (2)
+extern const value_string netlogon_netr_DsRGetDCNameInfo_AddressType_vals[];
+int netlogon_dissect_enum_netr_DsRGetDCNameInfo_AddressType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_bitmap_netr_DsR_DcFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DsRGetDCNameInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_TrustFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_WorkstationFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_SuiteMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_ProductType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_LsaPolicyInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_OsVersionInfoEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_OsVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_OsVersionContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_WorkstationInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_trust_extension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_trust_extension_container(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_OneDomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_bitmap_netr_SupportedEncTypes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DomainInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_NL_PASSWORD_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DsRAddressToSitenamesWCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DsRAddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NETR_TRUST_TYPE_DOWNLEVEL (1)
+#define NETR_TRUST_TYPE_UPLEVEL (2)
+#define NETR_TRUST_TYPE_MIT (3)
+#define NETR_TRUST_TYPE_DCE (4)
+extern const value_string netlogon_netr_TrustType_vals[];
+int netlogon_dissect_enum_netr_TrustType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_bitmap_netr_TrustAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DomainTrust(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DomainTrustList(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_DsRAddressToSitenamesExWCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_DcSitesCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_netr_TrustInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NlDnsLdapAtSite (22)
+#define NlDnsGcAtSite (25)
+#define NlDnsDsaCname (28)
+#define NlDnsKdcAtSite (30)
+#define NlDnsDcAtSite (32)
+#define NlDnsRfc1510KdcAtSite (34)
+#define NlDnsGenericGcAtSite (36)
+extern const value_string netlogon_netr_DnsType_vals[];
+int netlogon_dissect_enum_netr_DnsType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NlDnsInfoTypeNone (0)
+#define NlDnsDomainName (1)
+#define NlDnsDomainNameAlias (2)
+#define NlDnsForestName (3)
+#define NlDnsForestNameAlias (4)
+#define NlDnsNdncDomainName (5)
+#define NlDnsRecordName (6)
+extern const value_string netlogon_netr_DnsDomainInfoType_vals[];
+int netlogon_dissect_enum_netr_DnsDomainInfoType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int netlogon_dissect_struct_NL_DNS_NAME_INFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int netlogon_dissect_struct_NL_DNS_NAME_INFO_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NETLOGON_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-notify.c b/bin/default/librpc/gen_ndr/packet-dcerpc-notify.c
new file mode 100644 (file)
index 0000000..976254e
--- /dev/null
@@ -0,0 +1,867 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/notify.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/notify.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-notify.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_notify = -1;
+static gint ett_notify_notify_entry = -1;
+static gint ett_notify_notify_entry_array = -1;
+static gint ett_notify_notify_db_entry = -1;
+static gint ett_notify_notify_depth = -1;
+static gint ett_notify_notify_array = -1;
+static gint ett_notify_notify_event = -1;
+static gint ett_notify_notify_remote_event = -1;
+static gint ett_notify_FILE_NOTIFY_INFORMATION = -1;
+
+
+/* Header field declarations */
+static gint hf_notify_notify_entry_server = -1;
+static gint hf_notify_FILE_NOTIFY_INFORMATION_NextEntryOffset = -1;
+static gint hf_notify_notify_entry_subdir_filter = -1;
+static gint hf_notify_notify_entry_private_data = -1;
+static gint hf_notify_notify_array_depth = -1;
+static gint hf_notify_notify_depth_max_mask_subdir = -1;
+static gint hf_notify_notify_db_entry_filter = -1;
+static gint hf_notify_notify_remote_event_filter = -1;
+static gint hf_notify_notify_db_entry_server = -1;
+static gint hf_notify_notify_db_entry_private_data = -1;
+static gint hf_notify_notify_entry_dir_id = -1;
+static gint hf_notify_notify_event_action = -1;
+static gint hf_notify_notify_entry_filter = -1;
+static gint hf_notify_notify_event_path = -1;
+static gint hf_notify_notify_depth_max_mask = -1;
+static gint hf_notify_notify_entry_array_num_entries = -1;
+static gint hf_notify_FILE_NOTIFY_INFORMATION_FileName1 = -1;
+static gint hf_notify_notify_event_private_data = -1;
+static gint hf_notify_notify_remote_event_path = -1;
+static gint hf_notify_FILE_NOTIFY_INFORMATION_Action = -1;
+static gint hf_notify_notify_array_num_depths = -1;
+static gint hf_notify_notify_entry_path = -1;
+static gint hf_notify_FILE_NOTIFY_INFORMATION_FileNameLength = -1;
+static gint hf_notify_notify_entry_array_entries = -1;
+static gint hf_notify_notify_depth_num_entries = -1;
+static gint hf_notify_notify_db_entry_subdir_filter = -1;
+static gint hf_notify_notify_depth_entries = -1;
+static gint hf_notify_notify_entry_path_len = -1;
+static gint hf_notify_notify_remote_event_action = -1;
+static gint hf_notify_notify_entry_dir_fd = -1;
+static gint hf_notify_opnum = -1;
+
+static gint proto_dcerpc_notify = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_notify = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_notify = 0;
+
+static int notify_dissect_element_entry_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_subdir_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_dir_fd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_dir_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_path_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_array_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_array_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_entry_array_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_db_entry_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_db_entry_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_db_entry_subdir_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_db_entry_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_depth_max_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_depth_max_mask_subdir(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_depth_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_depth_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_depth_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_array_num_depths(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_array_depth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_array_depth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_event_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_event_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_event_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_remote_event_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_remote_event_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_remote_event_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string notify_FILE_NOTIFY_ACTION_vals[] = {
+       { FILE_ACTION_ADDED, "FILE_ACTION_ADDED" },
+       { FILE_ACTION_REMOVED, "FILE_ACTION_REMOVED" },
+       { FILE_ACTION_MODIFIED, "FILE_ACTION_MODIFIED" },
+       { FILE_ACTION_RENAMED_OLD_NAME, "FILE_ACTION_RENAMED_OLD_NAME" },
+       { FILE_ACTION_RENAMED_NEW_NAME, "FILE_ACTION_RENAMED_NEW_NAME" },
+       { FILE_ACTION_ADDED_STREAM, "FILE_ACTION_ADDED_STREAM" },
+       { FILE_ACTION_REMOVED_STREAM, "FILE_ACTION_REMOVED_STREAM" },
+       { FILE_ACTION_MODIFIED_STREAM, "FILE_ACTION_MODIFIED_STREAM" },
+{ 0, NULL }
+};
+static int notify_dissect_element_FILE_NOTIFY_INFORMATION_NextEntryOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_FILE_NOTIFY_INFORMATION_Action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_FILE_NOTIFY_INFORMATION_FileNameLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_FILE_NOTIFY_INFORMATION_FileName1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int notify_dissect_element_FILE_NOTIFY_INFORMATION_FileName1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        server_id server; */
+/* IDL:        uint32 filter; */
+/* IDL:        uint32 subdir_filter; */
+/* IDL:        uint32 dir_fd; */
+/* IDL:        file_id dir_id; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string path; */
+/* IDL:        uint32 path_len; */
+/* IDL:        pointer private_data; */
+/* IDL: } */
+
+static int
+notify_dissect_element_entry_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_server_id(tvb,offset,pinfo,tree,drep,hf_notify_notify_entry_server,0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_entry_filter, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_subdir_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_entry_subdir_filter, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_dir_fd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_entry_dir_fd, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_dir_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_file_id(tvb,offset,pinfo,tree,drep,hf_notify_notify_entry_dir_id,0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_notify_notify_entry_path , 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_path_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_entry_path_len, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_pointer(tvb,offset,pinfo,tree,drep,hf_notify_notify_entry_private_data,0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_entry);
+       }
+       
+       offset = notify_dissect_element_entry_server(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_filter(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_subdir_filter(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_dir_fd(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_dir_id(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_path(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_path_len(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_private_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_entries; */
+/* IDL:        notify_entry entries[num_entries]; */
+/* IDL: } */
+
+static int
+notify_dissect_element_entry_array_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_entry_array_num_entries, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_array_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+notify_dissect_element_entry_array_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_entry(tvb,offset,pinfo,tree,drep,hf_notify_notify_entry_array_entries,0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_entry_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_entry_array);
+       }
+       
+       offset = notify_dissect_element_entry_array_num_entries(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_entry_array_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        server_id server; */
+/* IDL:        uint32 filter; */
+/* IDL:        uint32 subdir_filter; */
+/* IDL:        pointer private_data; */
+/* IDL: } */
+
+static int
+notify_dissect_element_db_entry_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_server_id(tvb,offset,pinfo,tree,drep,hf_notify_notify_db_entry_server,0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_db_entry_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_db_entry_filter, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_db_entry_subdir_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_db_entry_subdir_filter, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_db_entry_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_pointer(tvb,offset,pinfo,tree,drep,hf_notify_notify_db_entry_private_data,0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_db_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_db_entry);
+       }
+       
+       offset = notify_dissect_element_db_entry_server(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_db_entry_filter(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_db_entry_subdir_filter(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_db_entry_private_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 max_mask; */
+/* IDL:        uint32 max_mask_subdir; */
+/* IDL:        uint32 num_entries; */
+/* IDL:        notify_entry entries[num_entries]; */
+/* IDL: } */
+
+static int
+notify_dissect_element_depth_max_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_depth_max_mask, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_depth_max_mask_subdir(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_depth_max_mask_subdir, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_depth_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_depth_num_entries, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_depth_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+notify_dissect_element_depth_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_entry(tvb,offset,pinfo,tree,drep,hf_notify_notify_depth_entries,0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_depth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_depth);
+       }
+       
+       offset = notify_dissect_element_depth_max_mask(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_depth_max_mask_subdir(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_depth_num_entries(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_depth_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_depths; */
+/* IDL:        notify_depth depth[num_depths]; */
+/* IDL: } */
+
+static int
+notify_dissect_element_array_num_depths(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_array_num_depths, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_array_depth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+notify_dissect_element_array_depth_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_depth(tvb,offset,pinfo,tree,drep,hf_notify_notify_array_depth,0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_array);
+       }
+       
+       offset = notify_dissect_element_array_num_depths(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_array_depth(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 action; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string path; */
+/* IDL:        pointer private_data; */
+/* IDL: } */
+
+static int
+notify_dissect_element_event_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_event_action, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_event_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_notify_notify_event_path , 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_event_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_struct_pointer(tvb,offset,pinfo,tree,drep,hf_notify_notify_event_private_data,0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_event(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_event);
+       }
+       
+       offset = notify_dissect_element_event_action(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_event_path(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_event_private_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 action; */
+/* IDL:        uint32 filter; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string path; */
+/* IDL: } */
+
+static int
+notify_dissect_element_remote_event_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_remote_event_action, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_remote_event_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_notify_remote_event_filter, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_remote_event_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_notify_notify_remote_event_path , 0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_remote_event(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_notify_remote_event);
+       }
+       
+       offset = notify_dissect_element_remote_event_action(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_remote_event_filter(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_remote_event_path(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        FILE_ACTION_ADDED=0x00000001, */
+/* IDL:        FILE_ACTION_REMOVED=0x00000002, */
+/* IDL:        FILE_ACTION_MODIFIED=0x00000003, */
+/* IDL:        FILE_ACTION_RENAMED_OLD_NAME=0x00000004, */
+/* IDL:        FILE_ACTION_RENAMED_NEW_NAME=0x00000005, */
+/* IDL:        FILE_ACTION_ADDED_STREAM=0x00000006, */
+/* IDL:        FILE_ACTION_REMOVED_STREAM=0x00000007, */
+/* IDL:        FILE_ACTION_MODIFIED_STREAM=0x00000008, */
+/* IDL: } */
+
+int
+notify_dissect_enum_FILE_NOTIFY_ACTION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 NextEntryOffset; */
+/* IDL:        FILE_NOTIFY_ACTION Action; */
+/* IDL:        [value(strlen_m(FileName1)*2)] uint32 FileNameLength; */
+/* IDL:        [charset(UTF16)] [flag(LIBNDR_FLAG_STR_NOTERM)] uint16 FileName1[FileNameLength]; */
+/* IDL: } */
+
+static int
+notify_dissect_element_FILE_NOTIFY_INFORMATION_NextEntryOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_FILE_NOTIFY_INFORMATION_NextEntryOffset, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_FILE_NOTIFY_INFORMATION_Action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = notify_dissect_enum_FILE_NOTIFY_ACTION(tvb, offset, pinfo, tree, drep, hf_notify_FILE_NOTIFY_INFORMATION_Action, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_FILE_NOTIFY_INFORMATION_FileNameLength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_notify_FILE_NOTIFY_INFORMATION_FileNameLength, 0);
+
+       return offset;
+}
+
+static int
+notify_dissect_element_FILE_NOTIFY_INFORMATION_FileName1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+notify_dissect_element_FILE_NOTIFY_INFORMATION_FileName1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_notify_FILE_NOTIFY_INFORMATION_FileName1, 0);
+
+       return offset;
+}
+
+int
+notify_dissect_struct_FILE_NOTIFY_INFORMATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_notify_FILE_NOTIFY_INFORMATION);
+       }
+       
+       offset = notify_dissect_element_FILE_NOTIFY_INFORMATION_NextEntryOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_FILE_NOTIFY_INFORMATION_Action(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_FILE_NOTIFY_INFORMATION_FileNameLength(tvb, offset, pinfo, tree, drep);
+
+       offset = notify_dissect_element_FILE_NOTIFY_INFORMATION_FileName1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector notify_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_notify(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_notify_notify_entry_server,
+         { "Server", "notify.notify_entry.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_FILE_NOTIFY_INFORMATION_NextEntryOffset,
+         { "Nextentryoffset", "notify.FILE_NOTIFY_INFORMATION.NextEntryOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_subdir_filter,
+         { "Subdir Filter", "notify.notify_entry.subdir_filter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_private_data,
+         { "Private Data", "notify.notify_entry.private_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_array_depth,
+         { "Depth", "notify.notify_array.depth", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_depth_max_mask_subdir,
+         { "Max Mask Subdir", "notify.notify_depth.max_mask_subdir", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_db_entry_filter,
+         { "Filter", "notify.notify_db_entry.filter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_remote_event_filter,
+         { "Filter", "notify.notify_remote_event.filter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_db_entry_server,
+         { "Server", "notify.notify_db_entry.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_db_entry_private_data,
+         { "Private Data", "notify.notify_db_entry.private_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_dir_id,
+         { "Dir Id", "notify.notify_entry.dir_id", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_event_action,
+         { "Action", "notify.notify_event.action", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_filter,
+         { "Filter", "notify.notify_entry.filter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_event_path,
+         { "Path", "notify.notify_event.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_depth_max_mask,
+         { "Max Mask", "notify.notify_depth.max_mask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_array_num_entries,
+         { "Num Entries", "notify.notify_entry_array.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_FILE_NOTIFY_INFORMATION_FileName1,
+         { "Filename1", "notify.FILE_NOTIFY_INFORMATION.FileName1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_event_private_data,
+         { "Private Data", "notify.notify_event.private_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_remote_event_path,
+         { "Path", "notify.notify_remote_event.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_FILE_NOTIFY_INFORMATION_Action,
+         { "Action", "notify.FILE_NOTIFY_INFORMATION.Action", FT_UINT32, BASE_DEC, VALS(notify_FILE_NOTIFY_ACTION_vals), 0, NULL, HFILL }},
+       { &hf_notify_notify_array_num_depths,
+         { "Num Depths", "notify.notify_array.num_depths", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_path,
+         { "Path", "notify.notify_entry.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_FILE_NOTIFY_INFORMATION_FileNameLength,
+         { "Filenamelength", "notify.FILE_NOTIFY_INFORMATION.FileNameLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_array_entries,
+         { "Entries", "notify.notify_entry_array.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_depth_num_entries,
+         { "Num Entries", "notify.notify_depth.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_db_entry_subdir_filter,
+         { "Subdir Filter", "notify.notify_db_entry.subdir_filter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_depth_entries,
+         { "Entries", "notify.notify_depth.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_path_len,
+         { "Path Len", "notify.notify_entry.path_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_remote_event_action,
+         { "Action", "notify.notify_remote_event.action", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_notify_entry_dir_fd,
+         { "Dir Fd", "notify.notify_entry.dir_fd", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_notify_opnum,
+         { "Operation", "notify.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_notify,
+               &ett_notify_notify_entry,
+               &ett_notify_notify_entry_array,
+               &ett_notify_notify_db_entry,
+               &ett_notify_notify_depth,
+               &ett_notify_notify_array,
+               &ett_notify_notify_event,
+               &ett_notify_notify_remote_event,
+               &ett_notify_FILE_NOTIFY_INFORMATION,
+       };
+
+       proto_dcerpc_notify = proto_register_protocol("NOTIFY (pidl)", "NOTIFY", "notify");
+       proto_register_field_array(proto_dcerpc_notify, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_notify(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_notify, ett_dcerpc_notify,
+               &uuid_dcerpc_notify, ver_dcerpc_notify,
+               notify_dissectors, hf_notify_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-notify.h b/bin/default/librpc/gen_ndr/packet-dcerpc-notify.h
new file mode 100644 (file)
index 0000000..c1a355e
--- /dev/null
@@ -0,0 +1,40 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/notify.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/notify.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-file_id.h"
+#include "packet-dcerpc-server_id.h"
+
+#ifndef __PACKET_DCERPC_NOTIFY_H
+#define __PACKET_DCERPC_NOTIFY_H
+
+int notify_dissect_struct_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int notify_dissect_struct_entry_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int notify_dissect_struct_db_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int notify_dissect_struct_depth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int notify_dissect_struct_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int notify_dissect_struct_event(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int notify_dissect_struct_remote_event(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define FILE_ACTION_ADDED (0x00000001)
+#define FILE_ACTION_REMOVED (0x00000002)
+#define FILE_ACTION_MODIFIED (0x00000003)
+#define FILE_ACTION_RENAMED_OLD_NAME (0x00000004)
+#define FILE_ACTION_RENAMED_NEW_NAME (0x00000005)
+#define FILE_ACTION_ADDED_STREAM (0x00000006)
+#define FILE_ACTION_REMOVED_STREAM (0x00000007)
+#define FILE_ACTION_MODIFIED_STREAM (0x00000008)
+extern const value_string notify_FILE_NOTIFY_ACTION_vals[];
+int notify_dissect_enum_FILE_NOTIFY_ACTION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int notify_dissect_struct_FILE_NOTIFY_INFORMATION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NOTIFY_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.c b/bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.c
new file mode 100644 (file)
index 0000000..cc58423
--- /dev/null
@@ -0,0 +1,3551 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntlmssp.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntlmssp.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-ntlmssp.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_ntlmssp = -1;
+static gint ett_ntlmssp_NEGOTIATE = -1;
+static gint ett_ntlmssp_ntlmssp_VERSION = -1;
+static gint ett_ntlmssp_ntlmssp_Version = -1;
+static gint ett_ntlmssp_NEGOTIATE_MESSAGE = -1;
+static gint ett_ntlmssp_Restriction_Encoding = -1;
+static gint ett_ntlmssp_ntlmssp_AvFlags = -1;
+static gint ett_ntlmssp_ntlmssp_AvValue = -1;
+static gint ett_ntlmssp_AV_PAIR = -1;
+static gint ett_ntlmssp_AV_PAIR_LIST = -1;
+static gint ett_ntlmssp_CHALLENGE_MESSAGE = -1;
+static gint ett_ntlmssp_LM_RESPONSE = -1;
+static gint ett_ntlmssp_LMv2_RESPONSE = -1;
+static gint ett_ntlmssp_ntlmssp_LM_RESPONSE = -1;
+static gint ett_ntlmssp_NTLM_RESPONSE = -1;
+static gint ett_ntlmssp_NTLMv2_CLIENT_CHALLENGE = -1;
+static gint ett_ntlmssp_NTLMv2_RESPONSE = -1;
+static gint ett_ntlmssp_ntlmssp_NTLM_RESPONSE = -1;
+static gint ett_ntlmssp_MIC = -1;
+static gint ett_ntlmssp_AUTHENTICATE_MESSAGE = -1;
+static gint ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE = -1;
+static gint ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 = -1;
+
+
+/* Header field declarations */
+static gint hf_ntlmssp_decode_NTLMv2_RESPONSE_response = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen = -1;
+static gint hf_ntlmssp_ntlmssp_VERSION_Reserved = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvNbComputerName = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_Reserved = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvTimestamp = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM = -1;
+static gint hf_ntlmssp_Restriction_Encoding_MachineId = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_ChannelBindings = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved1 = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName_ = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationMaxLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen = -1;
+static gint hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_ = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Checksum = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Version = -1;
+static gint hf_ntlmssp_LM_RESPONSE_Response = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen = -1;
+static gint hf_ntlmssp_NTLMv2_RESPONSE_Response = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameMaxLen = -1;
+static gint hf_ntlmssp_ntlmssp_Version_version = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameMaxLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_56 = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_MessageType = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvNbDomainName = -1;
+static gint hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetName_ = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_TARGET = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation_ = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameMaxLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN = -1;
+static gint hf_ntlmssp_decode_CHALLENGE_MESSAGE_challenge = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName_ = -1;
+static gint hf_ntlmssp_ntlmssp_LM_RESPONSE_v1 = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetName = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved2 = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_MessageType = -1;
+static gint hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v2 = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationLen = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Version = -1;
+static gint hf_ntlmssp_AV_PAIR_AvLen = -1;
+static gint hf_ntlmssp_decode_NTLMv2_CLIENT_CHALLENGE_challenge = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_ = -1;
+static gint hf_ntlmssp_LMv2_RESPONSE_Response = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen = -1;
+static gint hf_ntlmssp_AV_PAIR_AvId = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_blob = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN = -1;
+static gint hf_ntlmssp_AV_PAIR_LIST_pair = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen = -1;
+static gint hf_ntlmssp_NTLM_RESPONSE_Response = -1;
+static gint hf_ntlmssp_AV_PAIR_LIST_count = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_Version = -1;
+static gint hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse = -1;
+static gint hf_ntlmssp_decode_NEGOTIATE_MESSAGE_negotiate = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvFlags = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_Signature = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version = -1;
+static gint hf_ntlmssp_Restriction_Encoding_Z4 = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvDnsTreeName = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseLen = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_SeqNum = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY = -1;
+static gint hf_ntlmssp_ntlmssp_VERSION_NTLMRevisionCurrent = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Signature = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvRestrictions = -1;
+static gint hf_ntlmssp_MIC_MIC = -1;
+static gint hf_ntlmssp_AV_PAIR_Value_ = -1;
+static gint hf_ntlmssp_Restriction_Encoding_Size = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs_ = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient = -1;
+static gint hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_RandomPad = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_NegotiateFlags = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation_ = -1;
+static gint hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v1 = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Version = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE = -1;
+static gint hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum = -1;
+static gint hf_ntlmssp_decode_AUTHENTICATE_MESSAGE_authenticate = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo_ = -1;
+static gint hf_ntlmssp_opnum = -1;
+static gint hf_ntlmssp_ntlmssp_VERSION_ProductBuild = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvDnsComputerName = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_128 = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved3 = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_NegotiateFlags = -1;
+static gint hf_ntlmssp_NTLMv2_RESPONSE_Challenge = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_ = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameMaxLen = -1;
+static gint hf_ntlmssp_ntlmssp_VERSION_ProductMinorVersion = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_NegotiateFlags = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvTargetName = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED = -1;
+static gint hf_ntlmssp_CHALLENGE_MESSAGE_MessageType = -1;
+static gint hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN = -1;
+static gint hf_ntlmssp_AV_PAIR_Value = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameLen = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse_ = -1;
+static gint hf_ntlmssp_Restriction_Encoding_IntegrityLevel = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen = -1;
+static gint hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName = -1;
+static gint hf_ntlmssp_ntlmssp_VERSION_ProductMajorVersion = -1;
+static gint hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation = -1;
+static gint hf_ntlmssp_ntlmssp_AvValue_AvDnsDomainName = -1;
+static gint hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_TimeStamp = -1;
+
+static gint proto_dcerpc_ntlmssp = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_ntlmssp = {
+       0x6e746c6d, 0x7373, 0x700a,
+       { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x", 0x }
+};
+static guint16 ver_dcerpc_ntlmssp = 0;
+
+const value_string ntlmssp_ntlmssp_MessageType_vals[] = {
+       { NtLmNegotiate, "NtLmNegotiate" },
+       { NtLmChallenge, "NtLmChallenge" },
+       { NtLmAuthenticate, "NtLmAuthenticate" },
+{ 0, NULL }
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE_tfs = {
+   "NTLMSSP_NEGOTIATE_UNICODE is SET",
+   "NTLMSSP_NEGOTIATE_UNICODE is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_tfs = {
+   "NTLMSSP_NEGOTIATE_OEM is SET",
+   "NTLMSSP_NEGOTIATE_OEM is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_REQUEST_TARGET_tfs = {
+   "NTLMSSP_REQUEST_TARGET is SET",
+   "NTLMSSP_REQUEST_TARGET is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN_tfs = {
+   "NTLMSSP_NEGOTIATE_SIGN is SET",
+   "NTLMSSP_NEGOTIATE_SIGN is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL_tfs = {
+   "NTLMSSP_NEGOTIATE_SEAL is SET",
+   "NTLMSSP_NEGOTIATE_SEAL is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM_tfs = {
+   "NTLMSSP_NEGOTIATE_DATAGRAM is SET",
+   "NTLMSSP_NEGOTIATE_DATAGRAM is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY_tfs = {
+   "NTLMSSP_NEGOTIATE_LM_KEY is SET",
+   "NTLMSSP_NEGOTIATE_LM_KEY is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE_tfs = {
+   "NTLMSSP_NEGOTIATE_NETWARE is SET",
+   "NTLMSSP_NEGOTIATE_NETWARE is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM_tfs = {
+   "NTLMSSP_NEGOTIATE_NTLM is SET",
+   "NTLMSSP_NEGOTIATE_NTLM is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY_tfs = {
+   "NTLMSSP_NEGOTIATE_NT_ONLY is SET",
+   "NTLMSSP_NEGOTIATE_NT_ONLY is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_ANONYMOUS_tfs = {
+   "NTLMSSP_ANONYMOUS is SET",
+   "NTLMSSP_ANONYMOUS is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED_tfs = {
+   "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED is SET",
+   "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED_tfs = {
+   "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED is SET",
+   "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL_tfs = {
+   "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL is SET",
+   "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN_tfs = {
+   "NTLMSSP_NEGOTIATE_ALWAYS_SIGN is SET",
+   "NTLMSSP_NEGOTIATE_ALWAYS_SIGN is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN_tfs = {
+   "NTLMSSP_TARGET_TYPE_DOMAIN is SET",
+   "NTLMSSP_TARGET_TYPE_DOMAIN is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER_tfs = {
+   "NTLMSSP_TARGET_TYPE_SERVER is SET",
+   "NTLMSSP_TARGET_TYPE_SERVER is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE_tfs = {
+   "NTLMSSP_TARGET_TYPE_SHARE is SET",
+   "NTLMSSP_TARGET_TYPE_SHARE is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY_tfs = {
+   "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY is SET",
+   "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY_tfs = {
+   "NTLMSSP_NEGOTIATE_IDENTIFY is SET",
+   "NTLMSSP_NEGOTIATE_IDENTIFY is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY_tfs = {
+   "NTLMSSP_REQUEST_NON_NT_SESSION_KEY is SET",
+   "NTLMSSP_REQUEST_NON_NT_SESSION_KEY is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO_tfs = {
+   "NTLMSSP_NEGOTIATE_TARGET_INFO is SET",
+   "NTLMSSP_NEGOTIATE_TARGET_INFO is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION_tfs = {
+   "NTLMSSP_NEGOTIATE_VERSION is SET",
+   "NTLMSSP_NEGOTIATE_VERSION is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_128_tfs = {
+   "NTLMSSP_NEGOTIATE_128 is SET",
+   "NTLMSSP_NEGOTIATE_128 is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH_tfs = {
+   "NTLMSSP_NEGOTIATE_KEY_EXCH is SET",
+   "NTLMSSP_NEGOTIATE_KEY_EXCH is NOT SET",
+};
+static const true_false_string NEGOTIATE_NTLMSSP_NEGOTIATE_56_tfs = {
+   "NTLMSSP_NEGOTIATE_56 is SET",
+   "NTLMSSP_NEGOTIATE_56 is NOT SET",
+};
+const value_string ntlmssp_ntlmssp_WindowsMajorVersion_vals[] = {
+       { NTLMSSP_WINDOWS_MAJOR_VERSION_5, "NTLMSSP_WINDOWS_MAJOR_VERSION_5" },
+       { NTLMSSP_WINDOWS_MAJOR_VERSION_6, "NTLMSSP_WINDOWS_MAJOR_VERSION_6" },
+{ 0, NULL }
+};
+const value_string ntlmssp_ntlmssp_WindowsMinorVersion_vals[] = {
+       { NTLMSSP_WINDOWS_MINOR_VERSION_0, "NTLMSSP_WINDOWS_MINOR_VERSION_0" },
+       { NTLMSSP_WINDOWS_MINOR_VERSION_1, "NTLMSSP_WINDOWS_MINOR_VERSION_1" },
+       { NTLMSSP_WINDOWS_MINOR_VERSION_2, "NTLMSSP_WINDOWS_MINOR_VERSION_2" },
+{ 0, NULL }
+};
+const value_string ntlmssp_ntlmssp_NTLMRevisionCurrent_vals[] = {
+       { NTLMSSP_REVISION_W2K3_RC1, "NTLMSSP_REVISION_W2K3_RC1" },
+       { NTLMSSP_REVISION_W2K3, "NTLMSSP_REVISION_W2K3" },
+{ 0, NULL }
+};
+static int ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_VERSION_ProductBuild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_VERSION_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Version_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+const value_string ntlmssp_ntlmssp_AvId_vals[] = {
+       { MsvAvEOL, "MsvAvEOL" },
+       { MsvAvNbComputerName, "MsvAvNbComputerName" },
+       { MsvAvNbDomainName, "MsvAvNbDomainName" },
+       { MsvAvDnsComputerName, "MsvAvDnsComputerName" },
+       { MsvAvDnsDomainName, "MsvAvDnsDomainName" },
+       { MsvAvDnsTreeName, "MsvAvDnsTreeName" },
+       { MsvAvFlags, "MsvAvFlags" },
+       { MsvAvTimestamp, "MsvAvTimestamp" },
+       { MsAvRestrictions, "MsAvRestrictions" },
+       { MsvAvTargetName, "MsvAvTargetName" },
+       { MsvChannelBindings, "MsvChannelBindings" },
+{ 0, NULL }
+};
+static int ntlmssp_dissect_element_Restriction_Encoding_Size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Restriction_Encoding_Z4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT_tfs = {
+   "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT is SET",
+   "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT is NOT SET",
+};
+static const true_false_string ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE_tfs = {
+   "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE is SET",
+   "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE is NOT SET",
+};
+static int ntlmssp_dissect_element_AvValue_AvNbComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvNbDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvDnsComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvDnsDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvDnsTreeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvTimestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvRestrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_AvTargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_ChannelBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AvValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AV_PAIR_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
+static int ntlmssp_dissect_element_AV_PAIR_AvLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AV_PAIR_Value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
+static int ntlmssp_dissect_element_AV_PAIR_Value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId);
+static int ntlmssp_dissect_element_AV_PAIR_LIST_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AV_PAIR_LIST_pair_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int ntlmssp_dissect_element_LM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_LM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_MIC_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags);
+static int ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_RandomPad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_decode_AUTHENTICATE_MESSAGE_authenticate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_decode_NTLMv2_CLIENT_CHALLENGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntlmssp_dissect_element_decode_NTLMv2_RESPONSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        NtLmNegotiate=0x00000001, */
+/* IDL:        NtLmChallenge=0x00000002, */
+/* IDL:        NtLmAuthenticate=0x00000003, */
+/* IDL: } */
+
+int
+ntlmssp_dissect_enum_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NTLMSSP_NEGOTIATE_UNICODE =  0x00000001 , */
+/* IDL:        NTLMSSP_NEGOTIATE_OEM =  0x00000002 , */
+/* IDL:        NTLMSSP_REQUEST_TARGET =  0x00000004 , */
+/* IDL:        NTLMSSP_NEGOTIATE_SIGN =  0x00000010 , */
+/* IDL:        NTLMSSP_NEGOTIATE_SEAL =  0x00000020 , */
+/* IDL:        NTLMSSP_NEGOTIATE_DATAGRAM =  0x00000040 , */
+/* IDL:        NTLMSSP_NEGOTIATE_LM_KEY =  0x00000080 , */
+/* IDL:        NTLMSSP_NEGOTIATE_NETWARE =  0x00000100 , */
+/* IDL:        NTLMSSP_NEGOTIATE_NTLM =  0x00000200 , */
+/* IDL:        NTLMSSP_NEGOTIATE_NT_ONLY =  0x00000400 , */
+/* IDL:        NTLMSSP_ANONYMOUS =  0x00000800 , */
+/* IDL:        NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED =  0x00001000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED =  0x00002000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL =  0x00004000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_ALWAYS_SIGN =  0x00008000 , */
+/* IDL:        NTLMSSP_TARGET_TYPE_DOMAIN =  0x00010000 , */
+/* IDL:        NTLMSSP_TARGET_TYPE_SERVER =  0x00020000 , */
+/* IDL:        NTLMSSP_TARGET_TYPE_SHARE =  0x00040000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY =  0x00080000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_IDENTIFY =  0x00100000 , */
+/* IDL:        NTLMSSP_REQUEST_NON_NT_SESSION_KEY =  0x00400000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_TARGET_INFO =  0x00800000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_VERSION =  0x02000000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_128 =  0x20000000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_KEY_EXCH =  0x40000000 , */
+/* IDL:        NTLMSSP_NEGOTIATE_56 =  0x80000000 , */
+/* IDL: } */
+
+int
+ntlmssp_dissect_bitmap_NEGOTIATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_ntlmssp_NEGOTIATE);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_UNICODE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_OEM");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_TARGET, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NTLMSSP_REQUEST_TARGET");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_SIGN");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_SEAL");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_DATAGRAM");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_LM_KEY");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_NETWARE");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_NTLM");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_NT_ONLY");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "NTLMSSP_ANONYMOUS");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_ALWAYS_SIGN");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "NTLMSSP_TARGET_TYPE_DOMAIN");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "NTLMSSP_TARGET_TYPE_SERVER");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "NTLMSSP_TARGET_TYPE_SHARE");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_IDENTIFY");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "NTLMSSP_REQUEST_NON_NT_SESSION_KEY");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_TARGET_INFO");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_VERSION");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_128, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_128");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_KEY_EXCH");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_56, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "NTLMSSP_NEGOTIATE_56");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NTLMSSP_WINDOWS_MAJOR_VERSION_5=0x05, */
+/* IDL:        NTLMSSP_WINDOWS_MAJOR_VERSION_6=0x06, */
+/* IDL: } */
+
+int
+ntlmssp_dissect_enum_WindowsMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NTLMSSP_WINDOWS_MINOR_VERSION_0=0x00, */
+/* IDL:        NTLMSSP_WINDOWS_MINOR_VERSION_1=0x01, */
+/* IDL:        NTLMSSP_WINDOWS_MINOR_VERSION_2=0x02, */
+/* IDL: } */
+
+int
+ntlmssp_dissect_enum_WindowsMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NTLMSSP_REVISION_W2K3_RC1=0x0A, */
+/* IDL:        NTLMSSP_REVISION_W2K3=0x0F, */
+/* IDL: } */
+
+int
+ntlmssp_dissect_enum_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint8 parameter=0;
+       if(param){
+               parameter=(guint8)*param;
+       }
+       offset = dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        ntlmssp_WindowsMajorVersion ProductMajorVersion; */
+/* IDL:        ntlmssp_WindowsMinorVersion ProductMinorVersion; */
+/* IDL:        uint16 ProductBuild; */
+/* IDL:        uint8 Reserved[3]; */
+/* IDL:        ntlmssp_NTLMRevisionCurrent NTLMRevisionCurrent; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_enum_WindowsMajorVersion(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_ProductMajorVersion, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_enum_WindowsMinorVersion(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_ProductMinorVersion, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_VERSION_ProductBuild(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_ProductBuild, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_VERSION_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 3; i++)
+               offset = ntlmssp_dissect_element_VERSION_Reserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_VERSION_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_Reserved, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_enum_NTLMRevisionCurrent(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_VERSION_NTLMRevisionCurrent, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_VERSION);
+       }
+       
+       offset = ntlmssp_dissect_element_VERSION_ProductMajorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_VERSION_ProductMinorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_VERSION_ProductBuild(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_VERSION_Reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_VERSION_NTLMRevisionCurrent(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [noprint(1)] [nodiscriminant(1)] union { */
+/* IDL: [case(NTLMSSP_NEGOTIATE_VERSION)] [case(NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_VERSION version; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_Version_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_VERSION(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_Version_version,0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_Version");
+               tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_Version);
+       }
+
+       switch(level) {
+               case NTLMSSP_NEGOTIATE_VERSION:
+                       offset = ntlmssp_dissect_element_Version_version(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value("NTLMSSP")] [charset(DOS)] uint8 Signature[8]; */
+/* IDL:        [value(NtLmNegotiate)] ntlmssp_MessageType MessageType; */
+/* IDL:        NEGOTIATE NegotiateFlags; */
+/* IDL:        [value(DomainName?strlen(DomainName):0)] uint16 DomainNameLen; */
+/* IDL:        [value(DomainNameLen)] uint16 DomainNameMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(DomainNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM))] string *DomainName; */
+/* IDL:        [value(Workstation?strlen(Workstation):0)] uint16 WorkstationLen; */
+/* IDL:        [value(WorkstationLen)] uint16 WorkstationMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(WorkstationLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM))] string *Workstation; */
+/* IDL:        [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_Signature, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_enum_MessageType(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_MessageType, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags)
+{
+       offset = ntlmssp_dissect_bitmap_NEGOTIATE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_NegotiateFlags, NegotiateFlags);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName_, , "Pointer to Domainname (string)",hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation_, , "Pointer to Workstation (string)",hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = ntlmssp_dissect_Version(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NEGOTIATE_MESSAGE_Version, *);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_NEGOTIATE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+        NegotiateFlags;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_NEGOTIATE_MESSAGE);
+       }
+       
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Signature(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_NegotiateFlags(tvb, offset, pinfo, tree, drep, &NegotiateFlags);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainNameMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_DomainName(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_WorkstationMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Workstation(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NEGOTIATE_MESSAGE_Version(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        MsvAvEOL=0, */
+/* IDL:        MsvAvNbComputerName=1, */
+/* IDL:        MsvAvNbDomainName=2, */
+/* IDL:        MsvAvDnsComputerName=3, */
+/* IDL:        MsvAvDnsDomainName=4, */
+/* IDL:        MsvAvDnsTreeName=5, */
+/* IDL:        MsvAvFlags=6, */
+/* IDL:        MsvAvTimestamp=7, */
+/* IDL:        MsAvRestrictions=8, */
+/* IDL:        MsvAvTargetName=9, */
+/* IDL:        MsvChannelBindings=10, */
+/* IDL: } */
+
+int
+ntlmssp_dissect_enum_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 Size; */
+/* IDL:        [value(0)] uint32 Z4; */
+/* IDL:        uint32 IntegrityLevel; */
+/* IDL:        uint32 SubjectIntegrityLevel; */
+/* IDL:        uint8 MachineId[32]; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_Restriction_Encoding_Size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_Size, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_Restriction_Encoding_Z4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_Z4, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_IntegrityLevel, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 32; i++)
+               offset = ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_Restriction_Encoding_MachineId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_Restriction_Encoding_MachineId, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_Restriction_Encoding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_Restriction_Encoding);
+       }
+       
+       offset = ntlmssp_dissect_element_Restriction_Encoding_Size(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_Restriction_Encoding_Z4(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_Restriction_Encoding_IntegrityLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_Restriction_Encoding_SubjectIntegrityLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_Restriction_Encoding_MachineId(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT =  0x00000001 , */
+/* IDL:        NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE =  0x00000002 , */
+/* IDL: } */
+
+int
+ntlmssp_dissect_bitmap_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_ntlmssp_ntlmssp_AvFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_NOALIGN)] union { */
+/* IDL: [case(MsvAvEOL)] [case(MsvAvEOL)] EMPTY ; */
+/* IDL: [case(MsvAvNbComputerName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvNbComputerName)] string AvNbComputerName; */
+/* IDL: [case(MsvAvNbDomainName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvNbDomainName)] string AvNbDomainName; */
+/* IDL: [case(MsvAvDnsComputerName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvDnsComputerName)] string AvDnsComputerName; */
+/* IDL: [case(MsvAvDnsDomainName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvDnsDomainName)] string AvDnsDomainName; */
+/* IDL: [case(MsvAvDnsTreeName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvDnsTreeName)] string AvDnsTreeName; */
+/* IDL: [case(MsvAvFlags)] [case(MsvAvFlags)] ntlmssp_AvFlags AvFlags; */
+/* IDL: [case(MsvAvTimestamp)] [case(MsvAvTimestamp)] NTTIME AvTimestamp; */
+/* IDL: [case(MsAvRestrictions)] [case(MsAvRestrictions)] Restriction_Encoding AvRestrictions; */
+/* IDL: [case(MsvAvTargetName)] [flag(ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE))] [case(MsvAvTargetName)] string AvTargetName; */
+/* IDL: [case(MsvChannelBindings)] [case(MsvChannelBindings)] uint8 ChannelBindings[16]; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_AvValue_AvNbComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvNbDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvDnsComputerName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvDnsDomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvDnsTreeName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_bitmap_AvFlags(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_AvFlags, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvTimestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_AvTimestamp);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvRestrictions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_Restriction_Encoding(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_AvValue_AvRestrictions,0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_AvTargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_ChannelBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = ntlmssp_dissect_element_AvValue_ChannelBindings_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_ChannelBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_ChannelBindings, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AvValue_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_ntlmssp_ntlmssp_AvValue_blob, 1);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_AvValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_AvValue");
+               tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_AvValue);
+       }
+
+       switch(level) {
+               case MsvAvEOL:
+               break;
+
+               case MsvAvNbComputerName:
+                       offset = ntlmssp_dissect_element_AvValue_AvNbComputerName(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvNbDomainName:
+                       offset = ntlmssp_dissect_element_AvValue_AvNbDomainName(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvDnsComputerName:
+                       offset = ntlmssp_dissect_element_AvValue_AvDnsComputerName(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvDnsDomainName:
+                       offset = ntlmssp_dissect_element_AvValue_AvDnsDomainName(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvDnsTreeName:
+                       offset = ntlmssp_dissect_element_AvValue_AvDnsTreeName(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvFlags:
+                       offset = ntlmssp_dissect_element_AvValue_AvFlags(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvTimestamp:
+                       offset = ntlmssp_dissect_element_AvValue_AvTimestamp(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsAvRestrictions:
+                       offset = ntlmssp_dissect_element_AvValue_AvRestrictions(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvAvTargetName:
+                       offset = ntlmssp_dissect_element_AvValue_AvTargetName(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case MsvChannelBindings:
+                       offset = ntlmssp_dissect_element_AvValue_ChannelBindings(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = ntlmssp_dissect_element_AvValue_blob(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        ntlmssp_AvId AvId; */
+/* IDL:        [value(ndr_size_ntlmssp_AvValue(&r->Value,r->AvId,0))] uint16 AvLen; */
+/* IDL:        [subcontext_size(AvLen)] [subcontext(0)] [switch_is(AvId)] ntlmssp_AvValue Value; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_AV_PAIR_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId)
+{
+       offset = ntlmssp_dissect_enum_AvId(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_AvId, AvId);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AV_PAIR_AvLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_AvLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AV_PAIR_Value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_Value_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AV_PAIR_Value_(subtvb, 0, pinfo, tree, drep, AvId);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AV_PAIR_Value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *AvId)
+{
+       offset = ntlmssp_dissect_AvValue(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_Value, *AvId);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_AV_PAIR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 AvId;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_AV_PAIR);
+       }
+       
+       offset = ntlmssp_dissect_element_AV_PAIR_AvId(tvb, offset, pinfo, tree, drep, &AvId);
+
+       offset = ntlmssp_dissect_element_AV_PAIR_AvLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AV_PAIR_Value(tvb, offset, pinfo, tree, drep, &AvId);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        AV_PAIR pair[count]; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_AV_PAIR_LIST_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AV_PAIR_LIST_count, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AV_PAIR_LIST_pair_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_AV_PAIR(tvb,offset,pinfo,tree,drep,hf_ntlmssp_AV_PAIR_LIST_pair,0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_AV_PAIR_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_AV_PAIR_LIST);
+       }
+       
+       offset = ntlmssp_dissect_element_AV_PAIR_LIST_count(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AV_PAIR_LIST_pair(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value("NTLMSSP")] [charset(DOS)] uint8 Signature[8]; */
+/* IDL:        [value(NtLmChallenge)] ntlmssp_MessageType MessageType; */
+/* IDL:        [value(ndr_ntlmssp_string_length(NegotiateFlags,TargetName))] uint16 TargetNameLen; */
+/* IDL:        [value(TargetNameLen)] uint16 TargetNameMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(TargetNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *TargetName; */
+/* IDL:        NEGOTIATE NegotiateFlags; */
+/* IDL:        uint8 ServerChallenge[8]; */
+/* IDL:        uint8 Reserved[8]; */
+/* IDL:        [value(ndr_size_AV_PAIR_LIST(TargetInfo,ndr->flags))] uint16 TargetInfoLen; */
+/* IDL:        [value(TargetInfoLen)] uint16 TargetNameInfoMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(TargetInfoLen)] [subcontext(0)] AV_PAIR_LIST *TargetInfo; */
+/* IDL:        [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_Signature, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_enum_MessageType(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_MessageType, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_, , "Pointer to Targetname (string)",hf_ntlmssp_CHALLENGE_MESSAGE_TargetName);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetName_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags)
+{
+       offset = ntlmssp_dissect_bitmap_NEGOTIATE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_NegotiateFlags, NegotiateFlags);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_Reserved, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_, , "Pointer to Targetinfo (AV_PAIR_LIST)",hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_AV_PAIR_LIST(tvb,offset,pinfo,tree,drep,hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo,0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = ntlmssp_dissect_Version(tvb, offset, pinfo, tree, drep, hf_ntlmssp_CHALLENGE_MESSAGE_Version, *);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_CHALLENGE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+        NegotiateFlags;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_CHALLENGE_MESSAGE);
+       }
+       
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Signature(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetName(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_NegotiateFlags(tvb, offset, pinfo, tree, drep, &NegotiateFlags);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_ServerChallenge(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfoLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetNameInfoMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_TargetInfo(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_CHALLENGE_MESSAGE_Version(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 Response[24]; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_LM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 24; i++)
+               offset = ntlmssp_dissect_element_LM_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_LM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_LM_RESPONSE_Response, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_LM_RESPONSE);
+       }
+       
+       offset = ntlmssp_dissect_element_LM_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 Response[16]; */
+/* IDL:        uint8 ChallengeFromClient[8]; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_LMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_LMv2_RESPONSE_Response, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_LMv2_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_LMv2_RESPONSE);
+       }
+       
+       offset = ntlmssp_dissect_element_LMv2_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_LMv2_RESPONSE_ChallengeFromClient(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(24)] [case(24)] LM_RESPONSE v1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_LM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_LM_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_LM_RESPONSE_v1,0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_LM_RESPONSE");
+               tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_LM_RESPONSE);
+       }
+
+       switch(level) {
+               case 24:
+                       offset = ntlmssp_dissect_element_LM_RESPONSE_v1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint8 Response[24]; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 24; i++)
+               offset = ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLM_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLM_RESPONSE_Response, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_NTLM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_NTLM_RESPONSE);
+       }
+       
+       offset = ntlmssp_dissect_element_NTLM_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(1)] uint8 RespType; */
+/* IDL:        [value(1)] uint8 HiRespType; */
+/* IDL:        uint16 Reserved1; */
+/* IDL:        uint32 Reserved2; */
+/* IDL:        NTTIME TimeStamp; */
+/* IDL:        uint8 ChallengeFromClient[8]; */
+/* IDL:        uint32 Reserved3; */
+/* IDL:        [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] AV_PAIR_LIST AvPairs; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved1, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved2, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_TimeStamp);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved3, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_AV_PAIR_LIST(tvb,offset,pinfo,tree,drep,hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs,0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMv2_CLIENT_CHALLENGE);
+       }
+       
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_RespType(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_HiRespType(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_TimeStamp(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_Reserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_CLIENT_CHALLENGE_AvPairs(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 Response[16]; */
+/* IDL:        NTLMv2_CLIENT_CHALLENGE Challenge; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_RESPONSE_Response_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMv2_RESPONSE_Response, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_NTLMv2_RESPONSE_Challenge,0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMv2_RESPONSE);
+       }
+       
+       offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Response(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMv2_RESPONSE_Challenge(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [public(1)] [nodiscriminant(1)] union { */
+/* IDL: [case(0)] [case(0)] EMPTY ; */
+/* IDL: [case(0x18)] [case(0x18)] NTLM_RESPONSE v1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_NTLM_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v1,0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v2,0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_NTLM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "ntlmssp_NTLM_RESPONSE");
+               tree = proto_item_add_subtree(item, ett_ntlmssp_ntlmssp_NTLM_RESPONSE);
+       }
+
+       switch(level) {
+               case 0:
+               break;
+
+               case 0x18:
+                       offset = ntlmssp_dissect_element_NTLM_RESPONSE_v1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = ntlmssp_dissect_element_NTLM_RESPONSE_v2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint8 MIC[16]; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_MIC_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = ntlmssp_dissect_element_MIC_MIC_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_MIC_MIC_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_MIC_MIC, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_MIC);
+       }
+       
+       offset = ntlmssp_dissect_element_MIC_MIC(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value("NTLMSSP")] [charset(DOS)] uint8 Signature[8]; */
+/* IDL:        [value(NtLmAuthenticate)] ntlmssp_MessageType MessageType; */
+/* IDL:        uint16 LmChallengeResponseLen; */
+/* IDL:        [value(LmChallengeResponseLen)] uint16 LmChallengeResponseMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(LmChallengeResponseLen)] [subcontext(0)] [switch_is(LmChallengeResponseLen)] ntlmssp_LM_RESPONSE *LmChallengeResponse; */
+/* IDL:        uint16 NtChallengeResponseLen; */
+/* IDL:        [value(NtChallengeResponseLen)] uint16 NtChallengeResponseMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(NtChallengeResponseMaxLen)] [subcontext(0)] [switch_is(NtChallengeResponseLen)] ntlmssp_NTLM_RESPONSE *NtChallengeResponse; */
+/* IDL:        [value(ndr_ntlmssp_string_length(NegotiateFlags,DomainName))] uint16 DomainNameLen; */
+/* IDL:        [value(DomainNameLen)] uint16 DomainNameMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(DomainNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *DomainName; */
+/* IDL:        [value(ndr_ntlmssp_string_length(NegotiateFlags,UserName))] uint16 UserNameLen; */
+/* IDL:        [value(UserNameLen)] uint16 UserNameMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(UserNameLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *UserName; */
+/* IDL:        [value(ndr_ntlmssp_string_length(NegotiateFlags,Workstation))] uint16 WorkstationLen; */
+/* IDL:        [value(WorkstationLen)] uint16 WorkstationMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(WorkstationLen)] [subcontext(0)] [flag(ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags))] string *Workstation; */
+/* IDL:        [value(EncryptedRandomSessionKey->length)] uint16 EncryptedRandomSessionKeyLen; */
+/* IDL:        [value(EncryptedRandomSessionKeyLen)] uint16 EncryptedRandomSessionKeyMaxLen; */
+/* IDL:        [relative(1)] [subcontext_size(EncryptedRandomSessionKeyLen)] [subcontext(0)] DATA_BLOB *EncryptedRandomSessionKey; */
+/* IDL:        NEGOTIATE NegotiateFlags; */
+/* IDL:        [switch_is(NegotiateFlags&NTLMSSP_NEGOTIATE_VERSION)] ntlmssp_Version Version; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_enum_MessageType(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_MessageType, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen, LmChallengeResponseLen);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse_, , "Pointer to Lmchallengeresponse (ntlmssp_LM_RESPONSE)",hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse__(subtvb, 0, pinfo, tree, drep, LmChallengeResponseLen);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *LmChallengeResponseLen)
+{
+       offset = ntlmssp_dissect_LM_RESPONSE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse, *LmChallengeResponseLen);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseLen, NtChallengeResponseLen);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse_, , "Pointer to Ntchallengeresponse (ntlmssp_NTLM_RESPONSE)",hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse__(subtvb, 0, pinfo, tree, drep, NtChallengeResponseLen);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *NtChallengeResponseLen)
+{
+       offset = ntlmssp_dissect_NTLM_RESPONSE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse, *NtChallengeResponseLen);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName_, , "Pointer to Domainname (string)",hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName_, , "Pointer to Username (string)",hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation_, , "Pointer to Workstation (string)",hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_, , "Pointer to Encryptedrandomsessionkey (DATA_BLOB)",hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NegotiateFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *NegotiateFlags)
+{
+       offset = ntlmssp_dissect_bitmap_NEGOTIATE(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_NegotiateFlags, NegotiateFlags);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = ntlmssp_dissect_Version(tvb, offset, pinfo, tree, drep, hf_ntlmssp_AUTHENTICATE_MESSAGE_Version, *);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_AUTHENTICATE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g LmChallengeResponseLen;
+        LmChallengeResponse;
+       g NtChallengeResponseLen;
+        NtChallengeResponse;
+        NegotiateFlags;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_AUTHENTICATE_MESSAGE);
+       }
+       
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Signature(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseLen(tvb, offset, pinfo, tree, drep, &LmChallengeResponseLen);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_LmChallengeResponse(tvb, offset, pinfo, tree, drep, &LmChallengeResponseLen);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseLen(tvb, offset, pinfo, tree, drep, &NtChallengeResponseLen);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NtChallengeResponse(tvb, offset, pinfo, tree, drep, &NtChallengeResponseLen);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainNameMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_DomainName(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserNameMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_UserName(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_WorkstationMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Workstation(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_NegotiateFlags(tvb, offset, pinfo, tree, drep, &NegotiateFlags);
+
+       offset = ntlmssp_dissect_element_AUTHENTICATE_MESSAGE_Version(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(NTLMSSP_SIGN_VERSION)] uint32 Version; */
+/* IDL:        uint32 RandomPad; */
+/* IDL:        uint32 Checksum; */
+/* IDL:        uint32 SeqNum; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Version, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_RandomPad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_RandomPad, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Checksum, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_SeqNum, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_NTLMSSP_MESSAGE_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE);
+       }
+       
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Version(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_RandomPad(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_Checksum(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_SeqNum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(NTLMSSP_SIGN_VERSION)] uint32 Version; */
+/* IDL:        uint8 Checksum[8]; */
+/* IDL:        uint32 SeqNum; */
+/* IDL: } */
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum, 0);
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum, 0);
+
+       return offset;
+}
+
+int
+ntlmssp_dissect_struct_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2);
+       }
+       
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum(tvb, offset, pinfo, tree, drep);
+
+       offset = ntlmssp_dissect_element_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_NEGOTIATE_MESSAGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_NEGOTIATE_MESSAGE_negotiate,0);
+
+       return offset;
+}
+
+/* IDL: void decode_NEGOTIATE_MESSAGE( */
+/* IDL: [in] NEGOTIATE_MESSAGE negotiate */
+/* IDL: ); */
+
+static int
+ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_NEGOTIATE_MESSAGE";
+       return offset;
+}
+
+static int
+ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_NEGOTIATE_MESSAGE";
+       offset = ntlmssp_dissect_element_decode_NEGOTIATE_MESSAGE_negotiate(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_CHALLENGE_MESSAGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_CHALLENGE_MESSAGE_challenge,0);
+
+       return offset;
+}
+
+/* IDL: void decode_CHALLENGE_MESSAGE( */
+/* IDL: [in] CHALLENGE_MESSAGE challenge */
+/* IDL: ); */
+
+static int
+ntlmssp_dissect_decode_CHALLENGE_MESSAGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_CHALLENGE_MESSAGE";
+       return offset;
+}
+
+static int
+ntlmssp_dissect_decode_CHALLENGE_MESSAGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_CHALLENGE_MESSAGE";
+       offset = ntlmssp_dissect_element_decode_CHALLENGE_MESSAGE_challenge(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_decode_AUTHENTICATE_MESSAGE_authenticate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_AUTHENTICATE_MESSAGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_AUTHENTICATE_MESSAGE_authenticate,0);
+
+       return offset;
+}
+
+/* IDL: void decode_AUTHENTICATE_MESSAGE( */
+/* IDL: [in] AUTHENTICATE_MESSAGE authenticate */
+/* IDL: ); */
+
+static int
+ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_AUTHENTICATE_MESSAGE";
+       return offset;
+}
+
+static int
+ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_AUTHENTICATE_MESSAGE";
+       offset = ntlmssp_dissect_element_decode_AUTHENTICATE_MESSAGE_authenticate(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_decode_NTLMv2_CLIENT_CHALLENGE_challenge(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_NTLMv2_CLIENT_CHALLENGE_challenge,0);
+
+       return offset;
+}
+
+/* IDL: void decode_NTLMv2_CLIENT_CHALLENGE( */
+/* IDL: [in] NTLMv2_CLIENT_CHALLENGE challenge */
+/* IDL: ); */
+
+static int
+ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_NTLMv2_CLIENT_CHALLENGE";
+       return offset;
+}
+
+static int
+ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_NTLMv2_CLIENT_CHALLENGE";
+       offset = ntlmssp_dissect_element_decode_NTLMv2_CLIENT_CHALLENGE_challenge(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+ntlmssp_dissect_element_decode_NTLMv2_RESPONSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvb,offset,pinfo,tree,drep,hf_ntlmssp_decode_NTLMv2_RESPONSE_response,0);
+
+       return offset;
+}
+
+/* IDL: void decode_NTLMv2_RESPONSE( */
+/* IDL: [in] NTLMv2_RESPONSE response */
+/* IDL: ); */
+
+static int
+ntlmssp_dissect_decode_NTLMv2_RESPONSE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_NTLMv2_RESPONSE";
+       return offset;
+}
+
+static int
+ntlmssp_dissect_decode_NTLMv2_RESPONSE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="decode_NTLMv2_RESPONSE";
+       offset = ntlmssp_dissect_element_decode_NTLMv2_RESPONSE_response(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector ntlmssp_dissectors[] = {
+       { 0, "decode_NEGOTIATE_MESSAGE",
+          ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_request, ntlmssp_dissect_decode_NEGOTIATE_MESSAGE_response},
+       { 1, "decode_CHALLENGE_MESSAGE",
+          ntlmssp_dissect_decode_CHALLENGE_MESSAGE_request, ntlmssp_dissect_decode_CHALLENGE_MESSAGE_response},
+       { 2, "decode_AUTHENTICATE_MESSAGE",
+          ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_request, ntlmssp_dissect_decode_AUTHENTICATE_MESSAGE_response},
+       { 3, "decode_NTLMv2_CLIENT_CHALLENGE",
+          ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_request, ntlmssp_dissect_decode_NTLMv2_CLIENT_CHALLENGE_response},
+       { 4, "decode_NTLMv2_RESPONSE",
+          ntlmssp_dissect_decode_NTLMv2_RESPONSE_request, ntlmssp_dissect_decode_NTLMv2_RESPONSE_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_ntlmssp(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_ntlmssp_decode_NTLMv2_RESPONSE_response,
+         { "Response", "ntlmssp.decode_NTLMv2_RESPONSE.response", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameInfoMaxLen,
+         { "Targetnameinfomaxlen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameInfoMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_VERSION_Reserved,
+         { "Reserved", "ntlmssp.ntlmssp_VERSION.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvNbComputerName,
+         { "Avnbcomputername", "ntlmssp.ntlmssp_AvValue.AvNbComputerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_Reserved,
+         { "Reserved", "ntlmssp.CHALLENGE_MESSAGE.Reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvTimestamp,
+         { "Avtimestamp", "ntlmssp.ntlmssp_AvValue.AvTimestamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM,
+         { "Ntlmssp Negotiate Oem", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_ntlmssp_Restriction_Encoding_MachineId,
+         { "Machineid", "ntlmssp.Restriction_Encoding.MachineId", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationLen,
+         { "Workstationlen", "ntlmssp.NEGOTIATE_MESSAGE.WorkstationLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM,
+         { "Ntlmssp Negotiate Ntlm", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NTLM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NTLM_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_ChannelBindings,
+         { "Channelbindings", "ntlmssp.ntlmssp_AvValue.ChannelBindings", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Signature,
+         { "Signature", "ntlmssp.AUTHENTICATE_MESSAGE.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL,
+         { "Ntlmssp Negotiate Seal", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_SEAL", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_SEAL_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH,
+         { "Ntlmssp Negotiate Key Exch", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_KEY_EXCH", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_KEY_EXCH_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved1,
+         { "Reserved1", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.Reserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs,
+         { "Avpairs", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.AvPairs", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName_,
+         { "Subcontext length", "ntlmssp.NEGOTIATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_WorkstationMaxLen,
+         { "Workstationmaxlen", "ntlmssp.NEGOTIATE_MESSAGE.WorkstationMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY,
+         { "Ntlmssp Negotiate Identify", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_IDENTIFY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_IDENTIFY_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfoLen,
+         { "Targetinfolen", "ntlmssp.CHALLENGE_MESSAGE.TargetInfoLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_LMv2_RESPONSE_ChallengeFromClient,
+         { "Challengefromclient", "ntlmssp.LMv2_RESPONSE.ChallengeFromClient", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse_,
+         { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse,
+         { "Lmchallengeresponse", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED,
+         { "Ntlmssp Negotiate Oem Workstation Supplied", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Checksum,
+         { "Checksum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.Checksum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Version,
+         { "Version", "ntlmssp.AUTHENTICATE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_LM_RESPONSE_Response,
+         { "Response", "ntlmssp.LM_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameLen,
+         { "Domainnamelen", "ntlmssp.NEGOTIATE_MESSAGE.DomainNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_RESPONSE_Response,
+         { "Response", "ntlmssp.NTLMv2_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE,
+         { "Ntlmssp Negotiate Netware", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NETWARE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NETWARE_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_RespType,
+         { "Resptype", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.RespType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameMaxLen,
+         { "Usernamemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.UserNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_Version_version,
+         { "Version", "ntlmssp.ntlmssp_Version.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameLen,
+         { "Targetnamelen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainNameMaxLen,
+         { "Domainnamemaxlen", "ntlmssp.NEGOTIATE_MESSAGE.DomainNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_56,
+         { "Ntlmssp Negotiate 56", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_56", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_56_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyMaxLen,
+         { "Encryptedrandomsessionkeymaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.EncryptedRandomSessionKeyMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_MessageType,
+         { "Messagetype", "ntlmssp.NEGOTIATE_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(ntlmssp_ntlmssp_MessageType_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvNbDomainName,
+         { "Avnbdomainname", "ntlmssp.ntlmssp_AvValue.AvNbDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE,
+         { "Ntlmssp Avflag Mic In Authenticate Message", "ntlmssp.ntlmssp_AvFlags.NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE", FT_BOOLEAN, 32, TFS(&ntlmssp_AvFlags_NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION,
+         { "Ntlmssp Negotiate Version", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_VERSION", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_VERSION_tfs), ( 0x02000000 ), NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetName_,
+         { "Subcontext length", "ntlmssp.CHALLENGE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_TARGET,
+         { "Ntlmssp Request Target", "ntlmssp.NEGOTIATE.NTLMSSP_REQUEST_TARGET", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_REQUEST_TARGET_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation_,
+         { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameMaxLen,
+         { "Domainnamemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.DomainNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN,
+         { "Ntlmssp Target Type Domain", "ntlmssp.NEGOTIATE.NTLMSSP_TARGET_TYPE_DOMAIN", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_TARGET_TYPE_DOMAIN_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_ntlmssp_decode_CHALLENGE_MESSAGE_challenge,
+         { "Challenge", "ntlmssp.decode_CHALLENGE_MESSAGE.challenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName_,
+         { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_LM_RESPONSE_v1,
+         { "V1", "ntlmssp.ntlmssp_LM_RESPONSE.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetName,
+         { "Targetname", "ntlmssp.CHALLENGE_MESSAGE.TargetName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved2,
+         { "Reserved2", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.Reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL,
+         { "Ntlmssp Negotiate This Is Local Call", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_MessageType,
+         { "Messagetype", "ntlmssp.AUTHENTICATE_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(ntlmssp_ntlmssp_MessageType_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v2,
+         { "V2", "ntlmssp.ntlmssp_NTLM_RESPONSE.v2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationLen,
+         { "Workstationlen", "ntlmssp.AUTHENTICATE_MESSAGE.WorkstationLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_Version,
+         { "Version", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AV_PAIR_AvLen,
+         { "Avlen", "ntlmssp.AV_PAIR.AvLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_decode_NTLMv2_CLIENT_CHALLENGE_challenge,
+         { "Challenge", "ntlmssp.decode_NTLMv2_CLIENT_CHALLENGE.challenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName_,
+         { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_LMv2_RESPONSE_Response,
+         { "Response", "ntlmssp.LMv2_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_WorkstationMaxLen,
+         { "Workstationmaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.WorkstationMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseMaxLen,
+         { "Lmchallengeresponsemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponseMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AV_PAIR_AvId,
+         { "Avid", "ntlmssp.AV_PAIR.AvId", FT_UINT1632, BASE_DEC, VALS(ntlmssp_ntlmssp_AvId_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_blob,
+         { "Blob", "ntlmssp.ntlmssp_AvValue.blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_ServerChallenge,
+         { "Serverchallenge", "ntlmssp.CHALLENGE_MESSAGE.ServerChallenge", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY,
+         { "Ntlmssp Negotiate Nt Only", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_NT_ONLY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_NT_ONLY_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN,
+         { "Ntlmssp Negotiate Sign", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_SIGN", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_SIGN_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_ntlmssp_AV_PAIR_LIST_pair,
+         { "Pair", "ntlmssp.AV_PAIR_LIST.pair", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponseLen,
+         { "Lmchallengeresponselen", "ntlmssp.AUTHENTICATE_MESSAGE.LmChallengeResponseLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLM_RESPONSE_Response,
+         { "Response", "ntlmssp.NTLM_RESPONSE.Response", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AV_PAIR_LIST_count,
+         { "Count", "ntlmssp.AV_PAIR_LIST.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Checksum,
+         { "Checksum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_Version,
+         { "Version", "ntlmssp.CHALLENGE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_Restriction_Encoding_SubjectIntegrityLevel,
+         { "Subjectintegritylevel", "ntlmssp.Restriction_Encoding.SubjectIntegrityLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponse,
+         { "Ntchallengeresponse", "ntlmssp.AUTHENTICATE_MESSAGE.NtChallengeResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_decode_NEGOTIATE_MESSAGE_negotiate,
+         { "Negotiate", "ntlmssp.decode_NEGOTIATE_MESSAGE.negotiate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserName,
+         { "Username", "ntlmssp.AUTHENTICATE_MESSAGE.UserName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvFlags,
+         { "Avflags", "ntlmssp.ntlmssp_AvValue.AvFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_Signature,
+         { "Signature", "ntlmssp.CHALLENGE_MESSAGE.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_Version,
+         { "Version", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_Restriction_Encoding_Z4,
+         { "Z4", "ntlmssp.Restriction_Encoding.Z4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvDnsTreeName,
+         { "Avdnstreename", "ntlmssp.ntlmssp_AvValue.AvDnsTreeName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey,
+         { "Encryptedrandomsessionkey", "ntlmssp.AUTHENTICATE_MESSAGE.EncryptedRandomSessionKey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseLen,
+         { "Ntchallengeresponselen", "ntlmssp.AUTHENTICATE_MESSAGE.NtChallengeResponseLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_SeqNum,
+         { "Seqnum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.SeqNum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY,
+         { "Ntlmssp Request Non Nt Session Key", "ntlmssp.NEGOTIATE.NTLMSSP_REQUEST_NON_NT_SESSION_KEY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_REQUEST_NON_NT_SESSION_KEY_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_VERSION_NTLMRevisionCurrent,
+         { "Ntlmrevisioncurrent", "ntlmssp.ntlmssp_VERSION.NTLMRevisionCurrent", FT_UINT8, BASE_DEC, VALS(ntlmssp_ntlmssp_NTLMRevisionCurrent_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO,
+         { "Ntlmssp Negotiate Target Info", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_TARGET_INFO", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_TARGET_INFO_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NtChallengeResponseMaxLen,
+         { "Ntchallengeresponsemaxlen", "ntlmssp.AUTHENTICATE_MESSAGE.NtChallengeResponseMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainNameLen,
+         { "Domainnamelen", "ntlmssp.AUTHENTICATE_MESSAGE.DomainNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_Signature,
+         { "Signature", "ntlmssp.NEGOTIATE_MESSAGE.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvRestrictions,
+         { "Avrestrictions", "ntlmssp.ntlmssp_AvValue.AvRestrictions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_MIC_MIC,
+         { "Mic", "ntlmssp.MIC.MIC", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AV_PAIR_Value_,
+         { "Subcontext length", "ntlmssp.AV_PAIR.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_Restriction_Encoding_Size,
+         { "Size", "ntlmssp.Restriction_Encoding.Size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_AvPairs_,
+         { "Subcontext length", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_HiRespType,
+         { "Hiresptype", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.HiRespType", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_ChallengeFromClient,
+         { "Challengefromclient", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.ChallengeFromClient", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT,
+         { "Ntlmssp Avflag Constrainted Account", "ntlmssp.ntlmssp_AvFlags.NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT", FT_BOOLEAN, 32, TFS(&ntlmssp_AvFlags_NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_ANONYMOUS,
+         { "Ntlmssp Anonymous", "ntlmssp.NEGOTIATE.NTLMSSP_ANONYMOUS", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_ANONYMOUS_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_RandomPad,
+         { "Randompad", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE.RandomPad", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_NegotiateFlags,
+         { "Negotiateflags", "ntlmssp.AUTHENTICATE_MESSAGE.NegotiateFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE,
+         { "Ntlmssp Target Type Share", "ntlmssp.NEGOTIATE.NTLMSSP_TARGET_TYPE_SHARE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_TARGET_TYPE_SHARE_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation_,
+         { "Subcontext length", "ntlmssp.NEGOTIATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_NTLM_RESPONSE_v1,
+         { "V1", "ntlmssp.ntlmssp_NTLM_RESPONSE.v1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_Version,
+         { "Version", "ntlmssp.NEGOTIATE_MESSAGE.Version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY,
+         { "Ntlmssp Negotiate Lm Key", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_LM_KEY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_LM_KEY_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE,
+         { "Ntlmssp Negotiate Unicode", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_UNICODE", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_UNICODE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2_SeqNum,
+         { "Seqnum", "ntlmssp.NTLMSSP_MESSAGE_SIGNATURE_NTLMv2.SeqNum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_decode_AUTHENTICATE_MESSAGE_authenticate,
+         { "Authenticate", "ntlmssp.decode_AUTHENTICATE_MESSAGE.authenticate", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo,
+         { "Targetinfo", "ntlmssp.CHALLENGE_MESSAGE.TargetInfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetInfo_,
+         { "Subcontext length", "ntlmssp.CHALLENGE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_opnum,
+         { "Operation", "ntlmssp.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_VERSION_ProductBuild,
+         { "Productbuild", "ntlmssp.ntlmssp_VERSION.ProductBuild", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM,
+         { "Ntlmssp Negotiate Datagram", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_DATAGRAM", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_DATAGRAM_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_DomainName,
+         { "Domainname", "ntlmssp.AUTHENTICATE_MESSAGE.DomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvDnsComputerName,
+         { "Avdnscomputername", "ntlmssp.ntlmssp_AvValue.AvDnsComputerName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_128,
+         { "Ntlmssp Negotiate 128", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_128", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_128_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_Reserved3,
+         { "Reserved3", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.Reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_NegotiateFlags,
+         { "Negotiateflags", "ntlmssp.NEGOTIATE_MESSAGE.NegotiateFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_RESPONSE_Challenge,
+         { "Challenge", "ntlmssp.NTLMv2_RESPONSE.Challenge", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKey_,
+         { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_TargetNameMaxLen,
+         { "Targetnamemaxlen", "ntlmssp.CHALLENGE_MESSAGE.TargetNameMaxLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_VERSION_ProductMinorVersion,
+         { "Productminorversion", "ntlmssp.ntlmssp_VERSION.ProductMinorVersion", FT_UINT8, BASE_DEC, VALS(ntlmssp_ntlmssp_WindowsMinorVersion_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_Workstation,
+         { "Workstation", "ntlmssp.NEGOTIATE_MESSAGE.Workstation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY,
+         { "Ntlmssp Negotiate Extended Sessionsecurity", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_NegotiateFlags,
+         { "Negotiateflags", "ntlmssp.CHALLENGE_MESSAGE.NegotiateFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvTargetName,
+         { "Avtargetname", "ntlmssp.ntlmssp_AvValue.AvTargetName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER,
+         { "Ntlmssp Target Type Server", "ntlmssp.NEGOTIATE.NTLMSSP_TARGET_TYPE_SERVER", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_TARGET_TYPE_SERVER_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED,
+         { "Ntlmssp Negotiate Oem Domain Supplied", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_ntlmssp_CHALLENGE_MESSAGE_MessageType,
+         { "Messagetype", "ntlmssp.CHALLENGE_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(ntlmssp_ntlmssp_MessageType_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN,
+         { "Ntlmssp Negotiate Always Sign", "ntlmssp.NEGOTIATE.NTLMSSP_NEGOTIATE_ALWAYS_SIGN", FT_BOOLEAN, 32, TFS(&NEGOTIATE_NTLMSSP_NEGOTIATE_ALWAYS_SIGN_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_ntlmssp_AV_PAIR_Value,
+         { "Value", "ntlmssp.AV_PAIR.Value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_UserNameLen,
+         { "Usernamelen", "ntlmssp.AUTHENTICATE_MESSAGE.UserNameLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_LmChallengeResponse_,
+         { "Subcontext length", "ntlmssp.AUTHENTICATE_MESSAGE.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_Restriction_Encoding_IntegrityLevel,
+         { "Integritylevel", "ntlmssp.Restriction_Encoding.IntegrityLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_EncryptedRandomSessionKeyLen,
+         { "Encryptedrandomsessionkeylen", "ntlmssp.AUTHENTICATE_MESSAGE.EncryptedRandomSessionKeyLen", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NEGOTIATE_MESSAGE_DomainName,
+         { "Domainname", "ntlmssp.NEGOTIATE_MESSAGE.DomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_VERSION_ProductMajorVersion,
+         { "Productmajorversion", "ntlmssp.ntlmssp_VERSION.ProductMajorVersion", FT_UINT8, BASE_DEC, VALS(ntlmssp_ntlmssp_WindowsMajorVersion_vals), 0, NULL, HFILL }},
+       { &hf_ntlmssp_AUTHENTICATE_MESSAGE_Workstation,
+         { "Workstation", "ntlmssp.AUTHENTICATE_MESSAGE.Workstation", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_ntlmssp_AvValue_AvDnsDomainName,
+         { "Avdnsdomainname", "ntlmssp.ntlmssp_AvValue.AvDnsDomainName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntlmssp_NTLMv2_CLIENT_CHALLENGE_TimeStamp,
+         { "Timestamp", "ntlmssp.NTLMv2_CLIENT_CHALLENGE.TimeStamp", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_ntlmssp,
+               &ett_ntlmssp_NEGOTIATE,
+               &ett_ntlmssp_ntlmssp_VERSION,
+               &ett_ntlmssp_ntlmssp_Version,
+               &ett_ntlmssp_NEGOTIATE_MESSAGE,
+               &ett_ntlmssp_Restriction_Encoding,
+               &ett_ntlmssp_ntlmssp_AvFlags,
+               &ett_ntlmssp_ntlmssp_AvValue,
+               &ett_ntlmssp_AV_PAIR,
+               &ett_ntlmssp_AV_PAIR_LIST,
+               &ett_ntlmssp_CHALLENGE_MESSAGE,
+               &ett_ntlmssp_LM_RESPONSE,
+               &ett_ntlmssp_LMv2_RESPONSE,
+               &ett_ntlmssp_ntlmssp_LM_RESPONSE,
+               &ett_ntlmssp_NTLM_RESPONSE,
+               &ett_ntlmssp_NTLMv2_CLIENT_CHALLENGE,
+               &ett_ntlmssp_NTLMv2_RESPONSE,
+               &ett_ntlmssp_ntlmssp_NTLM_RESPONSE,
+               &ett_ntlmssp_MIC,
+               &ett_ntlmssp_AUTHENTICATE_MESSAGE,
+               &ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE,
+               &ett_ntlmssp_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2,
+       };
+
+       proto_dcerpc_ntlmssp = proto_register_protocol("NTLM messages", "NTLMSSP", "ntlmssp");
+       proto_register_field_array(proto_dcerpc_ntlmssp, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_ntlmssp(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_ntlmssp, ett_dcerpc_ntlmssp,
+               &uuid_dcerpc_ntlmssp, ver_dcerpc_ntlmssp,
+               ntlmssp_dissectors, hf_ntlmssp_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.h b/bin/default/librpc/gen_ndr/packet-dcerpc-ntlmssp.h
new file mode 100644 (file)
index 0000000..71075a7
--- /dev/null
@@ -0,0 +1,73 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntlmssp.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntlmssp.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_NTLMSSP_H
+#define __PACKET_DCERPC_NTLMSSP_H
+
+#define NTLMSSP_NEGOTIATE_NTLM2        ( NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY )
+
+#define NTLMSSP_SIGN_VERSION   ( 0x01 )
+
+#define NTLMSSP_SIG_SIZE       ( 16 )
+
+#define NtLmNegotiate (0x00000001)
+#define NtLmChallenge (0x00000002)
+#define NtLmAuthenticate (0x00000003)
+extern const value_string ntlmssp_ntlmssp_MessageType_vals[];
+int ntlmssp_dissect_enum_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int ntlmssp_dissect_bitmap_NEGOTIATE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NTLMSSP_WINDOWS_MAJOR_VERSION_5 (0x05)
+#define NTLMSSP_WINDOWS_MAJOR_VERSION_6 (0x06)
+extern const value_string ntlmssp_ntlmssp_WindowsMajorVersion_vals[];
+int ntlmssp_dissect_enum_WindowsMajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NTLMSSP_WINDOWS_MINOR_VERSION_0 (0x00)
+#define NTLMSSP_WINDOWS_MINOR_VERSION_1 (0x01)
+#define NTLMSSP_WINDOWS_MINOR_VERSION_2 (0x02)
+extern const value_string ntlmssp_ntlmssp_WindowsMinorVersion_vals[];
+int ntlmssp_dissect_enum_WindowsMinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NTLMSSP_REVISION_W2K3_RC1 (0x0A)
+#define NTLMSSP_REVISION_W2K3 (0x0F)
+extern const value_string ntlmssp_ntlmssp_NTLMRevisionCurrent_vals[];
+int ntlmssp_dissect_enum_NTLMRevisionCurrent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int ntlmssp_dissect_struct_VERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_NEGOTIATE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define MsvAvEOL (0)
+#define MsvAvNbComputerName (1)
+#define MsvAvNbDomainName (2)
+#define MsvAvDnsComputerName (3)
+#define MsvAvDnsDomainName (4)
+#define MsvAvDnsTreeName (5)
+#define MsvAvFlags (6)
+#define MsvAvTimestamp (7)
+#define MsAvRestrictions (8)
+#define MsvAvTargetName (9)
+#define MsvChannelBindings (10)
+extern const value_string ntlmssp_ntlmssp_AvId_vals[];
+int ntlmssp_dissect_enum_AvId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int ntlmssp_dissect_struct_Restriction_Encoding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_bitmap_AvFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_AV_PAIR(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_AV_PAIR_LIST(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_CHALLENGE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_LM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_LMv2_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_NTLM_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_NTLMv2_CLIENT_CHALLENGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_NTLMv2_RESPONSE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_MIC(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_AUTHENTICATE_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_NTLMSSP_MESSAGE_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntlmssp_dissect_struct_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NTLMSSP_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.c b/bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.c
new file mode 100644 (file)
index 0000000..119bb99
--- /dev/null
@@ -0,0 +1,2796 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntsvcs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntsvcs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-ntsvcs.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_ntsvcs = -1;
+static gint ett_ntsvcs_PNP_GetIdListFlags = -1;
+static gint ett_ntsvcs_PNP_HwProfInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_POWERRELATIONS = -1;
+static gint hf_ntsvcs_PNP_GetHwProfInfo_idx = -1;
+static gint hf_ntsvcs_PNP_GetDeviceList_flags = -1;
+static gint hf_ntsvcs_PNP_GetDeviceList_filter = -1;
+static gint hf_ntsvcs_PNP_HwProfInfo_friendly_name = -1;
+static gint hf_ntsvcs_werror = -1;
+static gint hf_ntsvcs_PNP_HwProfInfo_flags = -1;
+static gint hf_ntsvcs_PNP_ValidateDeviceInstance_flags = -1;
+static gint hf_ntsvcs_PNP_GetDeviceList_buffer = -1;
+static gint hf_ntsvcs_PNP_GetHwProfInfo_flags = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_name_length = -1;
+static gint hf_ntsvcs_PNP_GetDeviceListSize_size = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_profile_flags = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_flags = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_property = -1;
+static gint hf_ntsvcs_PNP_GetHwProfInfo_size = -1;
+static gint hf_ntsvcs_PNP_GetDeviceListSize_flags = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_EJECTRELATIONS = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_PRESENT = -1;
+static gint hf_ntsvcs_PNP_GetHwProfInfo_info = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_REMOVALRELATIONS = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_buffer_size = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_config = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_devicepath = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_DONOTGENERATE = -1;
+static gint hf_ntsvcs_PNP_HwProfInfo_profile_handle = -1;
+static gint hf_ntsvcs_PNP_ValidateDeviceInstance_devicepath = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_unknown5 = -1;
+static gint hf_ntsvcs_PNP_GetDeviceListSize_devicename = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_TRANSPORTRELATIONS = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_action = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_devicepath = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_veto_type = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_SERVICE = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_CLASS = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_flags = -1;
+static gint hf_ntsvcs_PNP_GetVersion_version = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_needed = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_buffer = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR = -1;
+static gint hf_ntsvcs_PNP_GetDeviceRegProp_reg_data_type = -1;
+static gint hf_ntsvcs_PNP_GetDeviceList_length = -1;
+static gint hf_ntsvcs_opnum = -1;
+static gint hf_ntsvcs_PNP_HwProfFlags_unknown5a = -1;
+static gint hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_BUSRELATIONS = -1;
+
+static gint proto_dcerpc_ntsvcs = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_ntsvcs = {
+       0x8d9f4e40, 0xa03d, 0x11ce,
+       { 0x8f, 0x69, 0x08, 0x00, 0x3e, 0x30, 0x05, 0x1b }
+};
+static guint16 ver_dcerpc_ntsvcs = 1;
+
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR_tfs = {
+   "CM_GETIDLIST_FILTER_ENUMERATOR is SET",
+   "CM_GETIDLIST_FILTER_ENUMERATOR is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_SERVICE_tfs = {
+   "CM_GETIDLIST_FILTER_SERVICE is SET",
+   "CM_GETIDLIST_FILTER_SERVICE is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_EJECTRELATIONS_tfs = {
+   "CM_GETIDLIST_FILTER_EJECTRELATIONS is SET",
+   "CM_GETIDLIST_FILTER_EJECTRELATIONS is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_REMOVALRELATIONS_tfs = {
+   "CM_GETIDLIST_FILTER_REMOVALRELATIONS is SET",
+   "CM_GETIDLIST_FILTER_REMOVALRELATIONS is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_POWERRELATIONS_tfs = {
+   "CM_GETIDLIST_FILTER_POWERRELATIONS is SET",
+   "CM_GETIDLIST_FILTER_POWERRELATIONS is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_BUSRELATIONS_tfs = {
+   "CM_GETIDLIST_FILTER_BUSRELATIONS is SET",
+   "CM_GETIDLIST_FILTER_BUSRELATIONS is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_DONOTGENERATE_tfs = {
+   "CM_GETIDLIST_DONOTGENERATE is SET",
+   "CM_GETIDLIST_DONOTGENERATE is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_TRANSPORTRELATIONS_tfs = {
+   "CM_GETIDLIST_FILTER_TRANSPORTRELATIONS is SET",
+   "CM_GETIDLIST_FILTER_TRANSPORTRELATIONS is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_PRESENT_tfs = {
+   "CM_GETIDLIST_FILTER_PRESENT is SET",
+   "CM_GETIDLIST_FILTER_PRESENT is NOT SET",
+};
+static const true_false_string PNP_GetIdListFlags_CM_GETIDLIST_FILTER_CLASS_tfs = {
+   "CM_GETIDLIST_FILTER_CLASS is SET",
+   "CM_GETIDLIST_FILTER_CLASS is NOT SET",
+};
+static int ntsvcs_dissect_element_PNP_HwProfInfo_profile_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetVersion_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_ValidateDeviceInstance_devicepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_ValidateDeviceInstance_devicepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_ValidateDeviceInstance_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_filter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceListSize_devicename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceListSize_devicename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceListSize_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceListSize_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceListSize_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_devicepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_devicepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_property(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetDeviceRegProp_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_devicepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_devicepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_config(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_veto_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_veto_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_unknown5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_HwProfFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetHwProfInfo_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetHwProfInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetHwProfInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetHwProfInfo_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ntsvcs_dissect_element_PNP_GetHwProfInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL:        CM_GETIDLIST_FILTER_ENUMERATOR =  0x00000001 , */
+/* IDL:        CM_GETIDLIST_FILTER_SERVICE =  0x00000002 , */
+/* IDL:        CM_GETIDLIST_FILTER_EJECTRELATIONS =  0x00000004 , */
+/* IDL:        CM_GETIDLIST_FILTER_REMOVALRELATIONS =  0x00000008 , */
+/* IDL:        CM_GETIDLIST_FILTER_POWERRELATIONS =  0x00000010 , */
+/* IDL:        CM_GETIDLIST_FILTER_BUSRELATIONS =  0x00000020 , */
+/* IDL:        CM_GETIDLIST_DONOTGENERATE =  0x10000040 , */
+/* IDL:        CM_GETIDLIST_FILTER_TRANSPORTRELATIONS =  0x00000080 , */
+/* IDL:        CM_GETIDLIST_FILTER_PRESENT =  0x00000100 , */
+/* IDL:        CM_GETIDLIST_FILTER_CLASS =  0x00000200 , */
+/* IDL: } */
+
+int
+ntsvcs_dissect_bitmap_PNP_GetIdListFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_ntsvcs_PNP_GetIdListFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_ENUMERATOR");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_SERVICE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_SERVICE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_EJECTRELATIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_EJECTRELATIONS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_REMOVALRELATIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_REMOVALRELATIONS");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_POWERRELATIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_POWERRELATIONS");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_BUSRELATIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_BUSRELATIONS");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_DONOTGENERATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000040 )){
+               proto_item_append_text(item, "CM_GETIDLIST_DONOTGENERATE");
+               if (flags & (~( 0x10000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000040 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_TRANSPORTRELATIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_TRANSPORTRELATIONS");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_PRESENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_PRESENT");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_CLASS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "CM_GETIDLIST_FILTER_CLASS");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 profile_handle; */
+/* IDL:        uint16 friendly_name[80]; */
+/* IDL:        uint32 flags; */
+/* IDL: } */
+
+static int
+ntsvcs_dissect_element_PNP_HwProfInfo_profile_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfInfo_profile_handle, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 80; i++)
+               offset = ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfInfo_friendly_name, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfInfo_flags, 0);
+
+       return offset;
+}
+
+int
+ntsvcs_dissect_struct_PNP_HwProfInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ntsvcs_PNP_HwProfInfo);
+       }
+       
+       offset = ntsvcs_dissect_element_PNP_HwProfInfo_profile_handle(tvb, offset, pinfo, tree, drep);
+
+       offset = ntsvcs_dissect_element_PNP_HwProfInfo_friendly_name(tvb, offset, pinfo, tree, drep);
+
+       offset = ntsvcs_dissect_element_PNP_HwProfInfo_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_Disconnect( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_Disconnect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_Disconnect";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_Disconnect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_Disconnect";
+       return offset;
+}
+
+/* IDL: WERROR PNP_Connect( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_Connect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_Connect";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_Connect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_Connect";
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetVersion_version_, NDR_POINTER_REF, "Pointer to Version (uint16)",hf_ntsvcs_PNP_GetVersion_version);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetVersion_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetVersion_version, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetVersion( */
+/* IDL: [out] [ref] uint16 *version */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetVersion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetVersion";
+       offset = ntsvcs_dissect_element_PNP_GetVersion_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetVersion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetVersion";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetGlobalState( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetGlobalState_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetGlobalState";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetGlobalState_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetGlobalState";
+       return offset;
+}
+
+/* IDL: WERROR PNP_InitDetection( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_InitDetection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_InitDetection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_InitDetection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_InitDetection";
+       return offset;
+}
+
+/* IDL: WERROR PNP_ReportLogOn( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_ReportLogOn_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_ReportLogOn";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_ReportLogOn_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_ReportLogOn";
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_ValidateDeviceInstance_devicepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_ValidateDeviceInstance_devicepath_, NDR_POINTER_REF, "Pointer to Devicepath (uint16)",hf_ntsvcs_PNP_ValidateDeviceInstance_devicepath);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_ValidateDeviceInstance_devicepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_ValidateDeviceInstance_devicepath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_ValidateDeviceInstance_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_ValidateDeviceInstance_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_ValidateDeviceInstance( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *devicepath, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_ValidateDeviceInstance_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_ValidateDeviceInstance";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_ValidateDeviceInstance_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_ValidateDeviceInstance";
+       offset = ntsvcs_dissect_element_PNP_ValidateDeviceInstance_devicepath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_ValidateDeviceInstance_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetRootDeviceInstance( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetRootDeviceInstance_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetRootDeviceInstance";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetRootDeviceInstance_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetRootDeviceInstance";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetRelatedDeviceInstance( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetRelatedDeviceInstance_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetRelatedDeviceInstance";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetRelatedDeviceInstance_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetRelatedDeviceInstance";
+       return offset;
+}
+
+/* IDL: WERROR PNP_EnumerateSubKeys( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_EnumerateSubKeys_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_EnumerateSubKeys";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_EnumerateSubKeys_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_EnumerateSubKeys";
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceList_filter_, NDR_POINTER_UNIQUE, "Pointer to Filter (uint16)",hf_ntsvcs_PNP_GetDeviceList_filter);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_filter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_GetDeviceList_filter, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceList_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint16)",hf_ntsvcs_PNP_GetDeviceList_buffer);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceList_buffer__);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceList_buffer, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceList_length_, NDR_POINTER_REF, "Pointer to Length (uint32)",hf_ntsvcs_PNP_GetDeviceList_length);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceList_length, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceList_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntsvcs_dissect_bitmap_PNP_GetIdListFlags(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceList_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetDeviceList( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *filter, */
+/* IDL: [out] [ref] [length_is(*length)] [size_is(*length)] uint16 *buffer, */
+/* IDL: [out] [in] [ref] uint32 *length, */
+/* IDL: [in] PNP_GetIdListFlags flags */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetDeviceList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceList";
+       offset = ntsvcs_dissect_element_PNP_GetDeviceList_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = ntsvcs_dissect_element_PNP_GetDeviceList_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetDeviceList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceList";
+       offset = ntsvcs_dissect_element_PNP_GetDeviceList_filter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceList_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceList_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceListSize_devicename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceListSize_devicename_, NDR_POINTER_UNIQUE, "Pointer to Devicename (uint16)",hf_ntsvcs_PNP_GetDeviceListSize_devicename);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceListSize_devicename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_GetDeviceListSize_devicename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceListSize_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceListSize_size_, NDR_POINTER_REF, "Pointer to Size (uint32)",hf_ntsvcs_PNP_GetDeviceListSize_size);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceListSize_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceListSize_size, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceListSize_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntsvcs_dissect_bitmap_PNP_GetIdListFlags(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceListSize_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetDeviceListSize( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *devicename, */
+/* IDL: [out] [ref] uint32 *size, */
+/* IDL: [in] PNP_GetIdListFlags flags */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetDeviceListSize_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceListSize";
+       offset = ntsvcs_dissect_element_PNP_GetDeviceListSize_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetDeviceListSize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceListSize";
+       offset = ntsvcs_dissect_element_PNP_GetDeviceListSize_devicename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceListSize_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetDepth( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetDepth_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetDepth";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetDepth_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetDepth";
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_devicepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_devicepath_, NDR_POINTER_REF, "Pointer to Devicepath (uint16)",hf_ntsvcs_PNP_GetDeviceRegProp_devicepath);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_devicepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_GetDeviceRegProp_devicepath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_property(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceRegProp_property, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type_, NDR_POINTER_REF, "Pointer to Reg Data Type (winreg_Type)",hf_ntsvcs_PNP_GetDeviceRegProp_reg_data_type);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntsvcs_dissect_struct_winreg_Type(tvb,offset,pinfo,tree,drep,hf_ntsvcs_PNP_GetDeviceRegProp_reg_data_type,0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_ntsvcs_PNP_GetDeviceRegProp_buffer);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceRegProp_buffer, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size_, NDR_POINTER_REF, "Pointer to Buffer Size (uint32)",hf_ntsvcs_PNP_GetDeviceRegProp_buffer_size);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceRegProp_buffer_size, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_ntsvcs_PNP_GetDeviceRegProp_needed);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceRegProp_needed, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetDeviceRegProp_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetDeviceRegProp_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetDeviceRegProp( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *devicepath, */
+/* IDL: [in] uint32 property, */
+/* IDL: [out] [in] [ref] winreg_Type *reg_data_type, */
+/* IDL: [out] [ref] [length_is(*buffer_size)] [size_is(*buffer_size)] uint8 *buffer, */
+/* IDL: [out] [in] [ref] uint32 *buffer_size, */
+/* IDL: [out] [in] [ref] uint32 *needed, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetDeviceRegProp_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceRegProp";
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetDeviceRegProp_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceRegProp";
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_devicepath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_property(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_reg_data_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_buffer_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetDeviceRegProp_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR PNP_SetDeviceRegProp( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_SetDeviceRegProp_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_SetDeviceRegProp";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_SetDeviceRegProp_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_SetDeviceRegProp";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetClassInstance( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetClassInstance_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetClassInstance";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetClassInstance_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetClassInstance";
+       return offset;
+}
+
+/* IDL: WERROR PNP_CreateKey( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_CreateKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_CreateKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_CreateKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_CreateKey";
+       return offset;
+}
+
+/* IDL: WERROR PNP_DeleteRegistryKey( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_DeleteRegistryKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_DeleteRegistryKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_DeleteRegistryKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_DeleteRegistryKey";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetClassCount( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetClassCount_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetClassCount";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetClassCount_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetClassCount";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetClassName( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetClassName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetClassName";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetClassName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetClassName";
+       return offset;
+}
+
+/* IDL: WERROR PNP_DeleteClassKey( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_DeleteClassKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_DeleteClassKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_DeleteClassKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_DeleteClassKey";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetInterfaceDeviceAlias( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetInterfaceDeviceAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetInterfaceDeviceAlias";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetInterfaceDeviceAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetInterfaceDeviceAlias";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetInterfaceDeviceList( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetInterfaceDeviceList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetInterfaceDeviceList";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetInterfaceDeviceList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetInterfaceDeviceList";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetInterfaceDeviceListSize( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetInterfaceDeviceListSize_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetInterfaceDeviceListSize";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetInterfaceDeviceListSize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetInterfaceDeviceListSize";
+       return offset;
+}
+
+/* IDL: WERROR PNP_RegisterDeviceClassAssociation( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_RegisterDeviceClassAssociation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_RegisterDeviceClassAssociation";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_RegisterDeviceClassAssociation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_RegisterDeviceClassAssociation";
+       return offset;
+}
+
+/* IDL: WERROR PNP_UnregisterDeviceClassAssociation( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_UnregisterDeviceClassAssociation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_UnregisterDeviceClassAssociation";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_UnregisterDeviceClassAssociation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_UnregisterDeviceClassAssociation";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetClassRegProp( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetClassRegProp_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetClassRegProp";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetClassRegProp_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetClassRegProp";
+       return offset;
+}
+
+/* IDL: WERROR PNP_SetClassRegProp( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_SetClassRegProp_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_SetClassRegProp";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_SetClassRegProp_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_SetClassRegProp";
+       return offset;
+}
+
+/* IDL: WERROR PNP_CreateDevInst( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_CreateDevInst_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_CreateDevInst";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_CreateDevInst_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_CreateDevInst";
+       return offset;
+}
+
+/* IDL: WERROR PNP_DeviceInstanceAction( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_DeviceInstanceAction_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_DeviceInstanceAction";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_DeviceInstanceAction_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_DeviceInstanceAction";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetDeviceStatus( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetDeviceStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceStatus";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetDeviceStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetDeviceStatus";
+       return offset;
+}
+
+/* IDL: WERROR PNP_SetDeviceProblem( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_SetDeviceProblem_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_SetDeviceProblem";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_SetDeviceProblem_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_SetDeviceProblem";
+       return offset;
+}
+
+/* IDL: WERROR PNP_DisableDevInst( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_DisableDevInst_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_DisableDevInst";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_DisableDevInst_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_DisableDevInst";
+       return offset;
+}
+
+/* IDL: WERROR PNP_UninstallDevInst( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_UninstallDevInst_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_UninstallDevInst";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_UninstallDevInst_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_UninstallDevInst";
+       return offset;
+}
+
+/* IDL: WERROR PNP_AddID( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_AddID_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_AddID";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_AddID_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_AddID";
+       return offset;
+}
+
+/* IDL: WERROR PNP_RegisterDriver( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_RegisterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_RegisterDriver";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_RegisterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_RegisterDriver";
+       return offset;
+}
+
+/* IDL: WERROR PNP_QueryRemove( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_QueryRemove_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_QueryRemove";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_QueryRemove_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_QueryRemove";
+       return offset;
+}
+
+/* IDL: WERROR PNP_RequestDeviceEject( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_RequestDeviceEject_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_RequestDeviceEject";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_RequestDeviceEject_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_RequestDeviceEject";
+       return offset;
+}
+
+/* IDL: WERROR PNP_IsDockStationPresent( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_IsDockStationPresent_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_IsDockStationPresent";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_IsDockStationPresent_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_IsDockStationPresent";
+       return offset;
+}
+
+/* IDL: WERROR PNP_RequestEjectPC( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_RequestEjectPC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_RequestEjectPC";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_RequestEjectPC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_RequestEjectPC";
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfFlags_action, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_devicepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_HwProfFlags_devicepath_, NDR_POINTER_REF, "Pointer to Devicepath (uint16)",hf_ntsvcs_PNP_HwProfFlags_devicepath);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_devicepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_HwProfFlags_devicepath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_config(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfFlags_config, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags_, NDR_POINTER_REF, "Pointer to Profile Flags (uint32)",hf_ntsvcs_PNP_HwProfFlags_profile_flags);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfFlags_profile_flags, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_veto_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_HwProfFlags_veto_type_, NDR_POINTER_UNIQUE, "Pointer to Veto Type (uint16)",hf_ntsvcs_PNP_HwProfFlags_veto_type);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_veto_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfFlags_veto_type, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_HwProfFlags_unknown5_, NDR_POINTER_UNIQUE, "Pointer to Unknown5 (uint16)",hf_ntsvcs_PNP_HwProfFlags_unknown5);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_unknown5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_HwProfFlags_unknown5, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a_, NDR_POINTER_UNIQUE, "Pointer to Unknown5a (uint16)",hf_ntsvcs_PNP_HwProfFlags_unknown5a);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a__, NDR_POINTER_UNIQUE, "Pointer to Unknown5a (uint16)",hf_ntsvcs_PNP_HwProfFlags_unknown5a);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_ntsvcs_PNP_HwProfFlags_unknown5a, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfFlags_name_length, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_HwProfFlags_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_HwProfFlags_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_HwProfFlags( */
+/* IDL: [in] uint32 action, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *devicepath, */
+/* IDL: [in] uint32 config, */
+/* IDL: [out] [in] [ref] uint32 *profile_flags, */
+/* IDL: [out] [unique(1)] [in] uint16 *veto_type, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *unknown5, */
+/* IDL: [unique(1)] [out] [charset(UTF16)] uint16 **unknown5a, */
+/* IDL: [in] uint32 name_length, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_HwProfFlags_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_HwProfFlags";
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_veto_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_unknown5a(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_HwProfFlags_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_HwProfFlags";
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_action(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_devicepath(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_config(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_profile_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_veto_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_unknown5(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_HwProfFlags_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetHwProfInfo_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetHwProfInfo_idx, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetHwProfInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, ntsvcs_dissect_element_PNP_GetHwProfInfo_info_, NDR_POINTER_REF, "Pointer to Info (PNP_HwProfInfo)",hf_ntsvcs_PNP_GetHwProfInfo_info);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetHwProfInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ntsvcs_dissect_struct_PNP_HwProfInfo(tvb,offset,pinfo,tree,drep,hf_ntsvcs_PNP_GetHwProfInfo_info,0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetHwProfInfo_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetHwProfInfo_size, 0);
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_element_PNP_GetHwProfInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_PNP_GetHwProfInfo_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetHwProfInfo( */
+/* IDL: [in] uint32 idx, */
+/* IDL: [out] [in] [ref] PNP_HwProfInfo *info, */
+/* IDL: [in] uint32 size, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetHwProfInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetHwProfInfo";
+       offset = ntsvcs_dissect_element_PNP_GetHwProfInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetHwProfInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetHwProfInfo";
+       offset = ntsvcs_dissect_element_PNP_GetHwProfInfo_idx(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetHwProfInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetHwProfInfo_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = ntsvcs_dissect_element_PNP_GetHwProfInfo_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR PNP_AddEmptyLogConf( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_AddEmptyLogConf_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_AddEmptyLogConf";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_AddEmptyLogConf_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_AddEmptyLogConf";
+       return offset;
+}
+
+/* IDL: WERROR PNP_FreeLogConf( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_FreeLogConf_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_FreeLogConf";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_FreeLogConf_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_FreeLogConf";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetFirstLogConf( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetFirstLogConf_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetFirstLogConf";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetFirstLogConf_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetFirstLogConf";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetNextLogConf( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetNextLogConf_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetNextLogConf";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetNextLogConf_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetNextLogConf";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetLogConfPriority( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetLogConfPriority_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetLogConfPriority";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetLogConfPriority_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetLogConfPriority";
+       return offset;
+}
+
+/* IDL: WERROR PNP_AddResDes( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_AddResDes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_AddResDes";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_AddResDes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_AddResDes";
+       return offset;
+}
+
+/* IDL: WERROR PNP_FreeResDes( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_FreeResDes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_FreeResDes";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_FreeResDes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_FreeResDes";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetNextResDes( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetNextResDes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetNextResDes";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetNextResDes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetNextResDes";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetResDesData( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetResDesData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetResDesData";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetResDesData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetResDesData";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetResDesDataSize( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetResDesDataSize_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetResDesDataSize";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetResDesDataSize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetResDesDataSize";
+       return offset;
+}
+
+/* IDL: WERROR PNP_ModifyResDes( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_ModifyResDes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_ModifyResDes";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_ModifyResDes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_ModifyResDes";
+       return offset;
+}
+
+/* IDL: WERROR PNP_DetectResourceLimit( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_DetectResourceLimit_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_DetectResourceLimit";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_DetectResourceLimit_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_DetectResourceLimit";
+       return offset;
+}
+
+/* IDL: WERROR PNP_QueryResConfList( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_QueryResConfList_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_QueryResConfList";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_QueryResConfList_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_QueryResConfList";
+       return offset;
+}
+
+/* IDL: WERROR PNP_SetHwProf( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_SetHwProf_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_SetHwProf";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_SetHwProf_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_SetHwProf";
+       return offset;
+}
+
+/* IDL: WERROR PNP_QueryArbitratorFreeData( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_QueryArbitratorFreeData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_QueryArbitratorFreeData";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_QueryArbitratorFreeData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_QueryArbitratorFreeData";
+       return offset;
+}
+
+/* IDL: WERROR PNP_QueryArbitratorFreeSize( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_QueryArbitratorFreeSize_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_QueryArbitratorFreeSize";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_QueryArbitratorFreeSize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_QueryArbitratorFreeSize";
+       return offset;
+}
+
+/* IDL: WERROR PNP_RunDetection( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_RunDetection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_RunDetection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_RunDetection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_RunDetection";
+       return offset;
+}
+
+/* IDL: WERROR PNP_RegisterNotification( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_RegisterNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_RegisterNotification";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_RegisterNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_RegisterNotification";
+       return offset;
+}
+
+/* IDL: WERROR PNP_UnregisterNotification( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_UnregisterNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_UnregisterNotification";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_UnregisterNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_UnregisterNotification";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetCustomDevProp( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetCustomDevProp_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetCustomDevProp";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetCustomDevProp_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetCustomDevProp";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetVersionInternal( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetVersionInternal_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetVersionInternal";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetVersionInternal_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetVersionInternal";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetBlockedDriverInfo( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetBlockedDriverInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetBlockedDriverInfo";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetBlockedDriverInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetBlockedDriverInfo";
+       return offset;
+}
+
+/* IDL: WERROR PNP_GetServerSideDeviceInstallFlags( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+ntsvcs_dissect_PNP_GetServerSideDeviceInstallFlags_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PNP_GetServerSideDeviceInstallFlags";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_ntsvcs_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+ntsvcs_dissect_PNP_GetServerSideDeviceInstallFlags_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PNP_GetServerSideDeviceInstallFlags";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector ntsvcs_dissectors[] = {
+       { 0, "PNP_Disconnect",
+          ntsvcs_dissect_PNP_Disconnect_request, ntsvcs_dissect_PNP_Disconnect_response},
+       { 1, "PNP_Connect",
+          ntsvcs_dissect_PNP_Connect_request, ntsvcs_dissect_PNP_Connect_response},
+       { 2, "PNP_GetVersion",
+          ntsvcs_dissect_PNP_GetVersion_request, ntsvcs_dissect_PNP_GetVersion_response},
+       { 3, "PNP_GetGlobalState",
+          ntsvcs_dissect_PNP_GetGlobalState_request, ntsvcs_dissect_PNP_GetGlobalState_response},
+       { 4, "PNP_InitDetection",
+          ntsvcs_dissect_PNP_InitDetection_request, ntsvcs_dissect_PNP_InitDetection_response},
+       { 5, "PNP_ReportLogOn",
+          ntsvcs_dissect_PNP_ReportLogOn_request, ntsvcs_dissect_PNP_ReportLogOn_response},
+       { 6, "PNP_ValidateDeviceInstance",
+          ntsvcs_dissect_PNP_ValidateDeviceInstance_request, ntsvcs_dissect_PNP_ValidateDeviceInstance_response},
+       { 7, "PNP_GetRootDeviceInstance",
+          ntsvcs_dissect_PNP_GetRootDeviceInstance_request, ntsvcs_dissect_PNP_GetRootDeviceInstance_response},
+       { 8, "PNP_GetRelatedDeviceInstance",
+          ntsvcs_dissect_PNP_GetRelatedDeviceInstance_request, ntsvcs_dissect_PNP_GetRelatedDeviceInstance_response},
+       { 9, "PNP_EnumerateSubKeys",
+          ntsvcs_dissect_PNP_EnumerateSubKeys_request, ntsvcs_dissect_PNP_EnumerateSubKeys_response},
+       { 10, "PNP_GetDeviceList",
+          ntsvcs_dissect_PNP_GetDeviceList_request, ntsvcs_dissect_PNP_GetDeviceList_response},
+       { 11, "PNP_GetDeviceListSize",
+          ntsvcs_dissect_PNP_GetDeviceListSize_request, ntsvcs_dissect_PNP_GetDeviceListSize_response},
+       { 12, "PNP_GetDepth",
+          ntsvcs_dissect_PNP_GetDepth_request, ntsvcs_dissect_PNP_GetDepth_response},
+       { 13, "PNP_GetDeviceRegProp",
+          ntsvcs_dissect_PNP_GetDeviceRegProp_request, ntsvcs_dissect_PNP_GetDeviceRegProp_response},
+       { 14, "PNP_SetDeviceRegProp",
+          ntsvcs_dissect_PNP_SetDeviceRegProp_request, ntsvcs_dissect_PNP_SetDeviceRegProp_response},
+       { 15, "PNP_GetClassInstance",
+          ntsvcs_dissect_PNP_GetClassInstance_request, ntsvcs_dissect_PNP_GetClassInstance_response},
+       { 16, "PNP_CreateKey",
+          ntsvcs_dissect_PNP_CreateKey_request, ntsvcs_dissect_PNP_CreateKey_response},
+       { 17, "PNP_DeleteRegistryKey",
+          ntsvcs_dissect_PNP_DeleteRegistryKey_request, ntsvcs_dissect_PNP_DeleteRegistryKey_response},
+       { 18, "PNP_GetClassCount",
+          ntsvcs_dissect_PNP_GetClassCount_request, ntsvcs_dissect_PNP_GetClassCount_response},
+       { 19, "PNP_GetClassName",
+          ntsvcs_dissect_PNP_GetClassName_request, ntsvcs_dissect_PNP_GetClassName_response},
+       { 20, "PNP_DeleteClassKey",
+          ntsvcs_dissect_PNP_DeleteClassKey_request, ntsvcs_dissect_PNP_DeleteClassKey_response},
+       { 21, "PNP_GetInterfaceDeviceAlias",
+          ntsvcs_dissect_PNP_GetInterfaceDeviceAlias_request, ntsvcs_dissect_PNP_GetInterfaceDeviceAlias_response},
+       { 22, "PNP_GetInterfaceDeviceList",
+          ntsvcs_dissect_PNP_GetInterfaceDeviceList_request, ntsvcs_dissect_PNP_GetInterfaceDeviceList_response},
+       { 23, "PNP_GetInterfaceDeviceListSize",
+          ntsvcs_dissect_PNP_GetInterfaceDeviceListSize_request, ntsvcs_dissect_PNP_GetInterfaceDeviceListSize_response},
+       { 24, "PNP_RegisterDeviceClassAssociation",
+          ntsvcs_dissect_PNP_RegisterDeviceClassAssociation_request, ntsvcs_dissect_PNP_RegisterDeviceClassAssociation_response},
+       { 25, "PNP_UnregisterDeviceClassAssociation",
+          ntsvcs_dissect_PNP_UnregisterDeviceClassAssociation_request, ntsvcs_dissect_PNP_UnregisterDeviceClassAssociation_response},
+       { 26, "PNP_GetClassRegProp",
+          ntsvcs_dissect_PNP_GetClassRegProp_request, ntsvcs_dissect_PNP_GetClassRegProp_response},
+       { 27, "PNP_SetClassRegProp",
+          ntsvcs_dissect_PNP_SetClassRegProp_request, ntsvcs_dissect_PNP_SetClassRegProp_response},
+       { 28, "PNP_CreateDevInst",
+          ntsvcs_dissect_PNP_CreateDevInst_request, ntsvcs_dissect_PNP_CreateDevInst_response},
+       { 29, "PNP_DeviceInstanceAction",
+          ntsvcs_dissect_PNP_DeviceInstanceAction_request, ntsvcs_dissect_PNP_DeviceInstanceAction_response},
+       { 30, "PNP_GetDeviceStatus",
+          ntsvcs_dissect_PNP_GetDeviceStatus_request, ntsvcs_dissect_PNP_GetDeviceStatus_response},
+       { 31, "PNP_SetDeviceProblem",
+          ntsvcs_dissect_PNP_SetDeviceProblem_request, ntsvcs_dissect_PNP_SetDeviceProblem_response},
+       { 32, "PNP_DisableDevInst",
+          ntsvcs_dissect_PNP_DisableDevInst_request, ntsvcs_dissect_PNP_DisableDevInst_response},
+       { 33, "PNP_UninstallDevInst",
+          ntsvcs_dissect_PNP_UninstallDevInst_request, ntsvcs_dissect_PNP_UninstallDevInst_response},
+       { 34, "PNP_AddID",
+          ntsvcs_dissect_PNP_AddID_request, ntsvcs_dissect_PNP_AddID_response},
+       { 35, "PNP_RegisterDriver",
+          ntsvcs_dissect_PNP_RegisterDriver_request, ntsvcs_dissect_PNP_RegisterDriver_response},
+       { 36, "PNP_QueryRemove",
+          ntsvcs_dissect_PNP_QueryRemove_request, ntsvcs_dissect_PNP_QueryRemove_response},
+       { 37, "PNP_RequestDeviceEject",
+          ntsvcs_dissect_PNP_RequestDeviceEject_request, ntsvcs_dissect_PNP_RequestDeviceEject_response},
+       { 38, "PNP_IsDockStationPresent",
+          ntsvcs_dissect_PNP_IsDockStationPresent_request, ntsvcs_dissect_PNP_IsDockStationPresent_response},
+       { 39, "PNP_RequestEjectPC",
+          ntsvcs_dissect_PNP_RequestEjectPC_request, ntsvcs_dissect_PNP_RequestEjectPC_response},
+       { 40, "PNP_HwProfFlags",
+          ntsvcs_dissect_PNP_HwProfFlags_request, ntsvcs_dissect_PNP_HwProfFlags_response},
+       { 41, "PNP_GetHwProfInfo",
+          ntsvcs_dissect_PNP_GetHwProfInfo_request, ntsvcs_dissect_PNP_GetHwProfInfo_response},
+       { 42, "PNP_AddEmptyLogConf",
+          ntsvcs_dissect_PNP_AddEmptyLogConf_request, ntsvcs_dissect_PNP_AddEmptyLogConf_response},
+       { 43, "PNP_FreeLogConf",
+          ntsvcs_dissect_PNP_FreeLogConf_request, ntsvcs_dissect_PNP_FreeLogConf_response},
+       { 44, "PNP_GetFirstLogConf",
+          ntsvcs_dissect_PNP_GetFirstLogConf_request, ntsvcs_dissect_PNP_GetFirstLogConf_response},
+       { 45, "PNP_GetNextLogConf",
+          ntsvcs_dissect_PNP_GetNextLogConf_request, ntsvcs_dissect_PNP_GetNextLogConf_response},
+       { 46, "PNP_GetLogConfPriority",
+          ntsvcs_dissect_PNP_GetLogConfPriority_request, ntsvcs_dissect_PNP_GetLogConfPriority_response},
+       { 47, "PNP_AddResDes",
+          ntsvcs_dissect_PNP_AddResDes_request, ntsvcs_dissect_PNP_AddResDes_response},
+       { 48, "PNP_FreeResDes",
+          ntsvcs_dissect_PNP_FreeResDes_request, ntsvcs_dissect_PNP_FreeResDes_response},
+       { 49, "PNP_GetNextResDes",
+          ntsvcs_dissect_PNP_GetNextResDes_request, ntsvcs_dissect_PNP_GetNextResDes_response},
+       { 50, "PNP_GetResDesData",
+          ntsvcs_dissect_PNP_GetResDesData_request, ntsvcs_dissect_PNP_GetResDesData_response},
+       { 51, "PNP_GetResDesDataSize",
+          ntsvcs_dissect_PNP_GetResDesDataSize_request, ntsvcs_dissect_PNP_GetResDesDataSize_response},
+       { 52, "PNP_ModifyResDes",
+          ntsvcs_dissect_PNP_ModifyResDes_request, ntsvcs_dissect_PNP_ModifyResDes_response},
+       { 53, "PNP_DetectResourceLimit",
+          ntsvcs_dissect_PNP_DetectResourceLimit_request, ntsvcs_dissect_PNP_DetectResourceLimit_response},
+       { 54, "PNP_QueryResConfList",
+          ntsvcs_dissect_PNP_QueryResConfList_request, ntsvcs_dissect_PNP_QueryResConfList_response},
+       { 55, "PNP_SetHwProf",
+          ntsvcs_dissect_PNP_SetHwProf_request, ntsvcs_dissect_PNP_SetHwProf_response},
+       { 56, "PNP_QueryArbitratorFreeData",
+          ntsvcs_dissect_PNP_QueryArbitratorFreeData_request, ntsvcs_dissect_PNP_QueryArbitratorFreeData_response},
+       { 57, "PNP_QueryArbitratorFreeSize",
+          ntsvcs_dissect_PNP_QueryArbitratorFreeSize_request, ntsvcs_dissect_PNP_QueryArbitratorFreeSize_response},
+       { 58, "PNP_RunDetection",
+          ntsvcs_dissect_PNP_RunDetection_request, ntsvcs_dissect_PNP_RunDetection_response},
+       { 59, "PNP_RegisterNotification",
+          ntsvcs_dissect_PNP_RegisterNotification_request, ntsvcs_dissect_PNP_RegisterNotification_response},
+       { 60, "PNP_UnregisterNotification",
+          ntsvcs_dissect_PNP_UnregisterNotification_request, ntsvcs_dissect_PNP_UnregisterNotification_response},
+       { 61, "PNP_GetCustomDevProp",
+          ntsvcs_dissect_PNP_GetCustomDevProp_request, ntsvcs_dissect_PNP_GetCustomDevProp_response},
+       { 62, "PNP_GetVersionInternal",
+          ntsvcs_dissect_PNP_GetVersionInternal_request, ntsvcs_dissect_PNP_GetVersionInternal_response},
+       { 63, "PNP_GetBlockedDriverInfo",
+          ntsvcs_dissect_PNP_GetBlockedDriverInfo_request, ntsvcs_dissect_PNP_GetBlockedDriverInfo_response},
+       { 64, "PNP_GetServerSideDeviceInstallFlags",
+          ntsvcs_dissect_PNP_GetServerSideDeviceInstallFlags_request, ntsvcs_dissect_PNP_GetServerSideDeviceInstallFlags_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_ntsvcs(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_POWERRELATIONS,
+         { "Cm Getidlist Filter Powerrelations", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_POWERRELATIONS", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_POWERRELATIONS_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetHwProfInfo_idx,
+         { "Idx", "ntsvcs.PNP_GetHwProfInfo.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceList_flags,
+         { "Flags", "ntsvcs.PNP_GetDeviceList.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceList_filter,
+         { "Filter", "ntsvcs.PNP_GetDeviceList.filter", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfInfo_friendly_name,
+         { "Friendly Name", "ntsvcs.PNP_HwProfInfo.friendly_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_werror,
+         { "Windows Error", "ntsvcs.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfInfo_flags,
+         { "Flags", "ntsvcs.PNP_HwProfInfo.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_ValidateDeviceInstance_flags,
+         { "Flags", "ntsvcs.PNP_ValidateDeviceInstance.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceList_buffer,
+         { "Buffer", "ntsvcs.PNP_GetDeviceList.buffer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetHwProfInfo_flags,
+         { "Flags", "ntsvcs.PNP_GetHwProfInfo.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_name_length,
+         { "Name Length", "ntsvcs.PNP_HwProfFlags.name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceListSize_size,
+         { "Size", "ntsvcs.PNP_GetDeviceListSize.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_profile_flags,
+         { "Profile Flags", "ntsvcs.PNP_HwProfFlags.profile_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_flags,
+         { "Flags", "ntsvcs.PNP_HwProfFlags.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_property,
+         { "Property", "ntsvcs.PNP_GetDeviceRegProp.property", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetHwProfInfo_size,
+         { "Size", "ntsvcs.PNP_GetHwProfInfo.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceListSize_flags,
+         { "Flags", "ntsvcs.PNP_GetDeviceListSize.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_EJECTRELATIONS,
+         { "Cm Getidlist Filter Ejectrelations", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_EJECTRELATIONS", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_EJECTRELATIONS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_PRESENT,
+         { "Cm Getidlist Filter Present", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_PRESENT", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_PRESENT_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetHwProfInfo_info,
+         { "Info", "ntsvcs.PNP_GetHwProfInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_REMOVALRELATIONS,
+         { "Cm Getidlist Filter Removalrelations", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_REMOVALRELATIONS", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_REMOVALRELATIONS_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_buffer_size,
+         { "Buffer Size", "ntsvcs.PNP_GetDeviceRegProp.buffer_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_config,
+         { "Config", "ntsvcs.PNP_HwProfFlags.config", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_devicepath,
+         { "Devicepath", "ntsvcs.PNP_HwProfFlags.devicepath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_DONOTGENERATE,
+         { "Cm Getidlist Donotgenerate", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_DONOTGENERATE", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_DONOTGENERATE_tfs), ( 0x10000040 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfInfo_profile_handle,
+         { "Profile Handle", "ntsvcs.PNP_HwProfInfo.profile_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_ValidateDeviceInstance_devicepath,
+         { "Devicepath", "ntsvcs.PNP_ValidateDeviceInstance.devicepath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_unknown5,
+         { "Unknown5", "ntsvcs.PNP_HwProfFlags.unknown5", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceListSize_devicename,
+         { "Devicename", "ntsvcs.PNP_GetDeviceListSize.devicename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_TRANSPORTRELATIONS,
+         { "Cm Getidlist Filter Transportrelations", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_TRANSPORTRELATIONS", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_TRANSPORTRELATIONS_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_action,
+         { "Action", "ntsvcs.PNP_HwProfFlags.action", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_devicepath,
+         { "Devicepath", "ntsvcs.PNP_GetDeviceRegProp.devicepath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_veto_type,
+         { "Veto Type", "ntsvcs.PNP_HwProfFlags.veto_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_SERVICE,
+         { "Cm Getidlist Filter Service", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_SERVICE", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_SERVICE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_CLASS,
+         { "Cm Getidlist Filter Class", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_CLASS", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_CLASS_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_flags,
+         { "Flags", "ntsvcs.PNP_GetDeviceRegProp.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetVersion_version,
+         { "Version", "ntsvcs.PNP_GetVersion.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_needed,
+         { "Needed", "ntsvcs.PNP_GetDeviceRegProp.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_buffer,
+         { "Buffer", "ntsvcs.PNP_GetDeviceRegProp.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR,
+         { "Cm Getidlist Filter Enumerator", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_ENUMERATOR", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_ENUMERATOR_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceRegProp_reg_data_type,
+         { "Reg Data Type", "ntsvcs.PNP_GetDeviceRegProp.reg_data_type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetDeviceList_length,
+         { "Length", "ntsvcs.PNP_GetDeviceList.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_opnum,
+         { "Operation", "ntsvcs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_HwProfFlags_unknown5a,
+         { "Unknown5a", "ntsvcs.PNP_HwProfFlags.unknown5a", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ntsvcs_PNP_GetIdListFlags_CM_GETIDLIST_FILTER_BUSRELATIONS,
+         { "Cm Getidlist Filter Busrelations", "ntsvcs.PNP_GetIdListFlags.CM_GETIDLIST_FILTER_BUSRELATIONS", FT_BOOLEAN, 32, TFS(&PNP_GetIdListFlags_CM_GETIDLIST_FILTER_BUSRELATIONS_tfs), ( 0x00000020 ), NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_ntsvcs,
+               &ett_ntsvcs_PNP_GetIdListFlags,
+               &ett_ntsvcs_PNP_HwProfInfo,
+       };
+
+       proto_dcerpc_ntsvcs = proto_register_protocol("Plug and Play services", "NTSVCS", "ntsvcs");
+       proto_register_field_array(proto_dcerpc_ntsvcs, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_ntsvcs(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_ntsvcs, ett_dcerpc_ntsvcs,
+               &uuid_dcerpc_ntsvcs, ver_dcerpc_ntsvcs,
+               ntsvcs_dissectors, hf_ntsvcs_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.h b/bin/default/librpc/gen_ndr/packet-dcerpc-ntsvcs.h
new file mode 100644 (file)
index 0000000..d4b8de9
--- /dev/null
@@ -0,0 +1,27 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntsvcs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/ntsvcs.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_NTSVCS_H
+#define __PACKET_DCERPC_NTSVCS_H
+
+#define CM_GETIDLIST_FILTER_NONE       ( 0x00000000 )
+
+#define DEV_REGPROP_DESC       ( 1 )
+
+int ntsvcs_dissect_bitmap_PNP_GetIdListFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ntsvcs_dissect_struct_PNP_HwProfInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_NTSVCS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-orpc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-orpc.c
new file mode 100644 (file)
index 0000000..edbdbb6
--- /dev/null
@@ -0,0 +1,1885 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/orpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/orpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-orpc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_ObjectRpcBaseTypes = -1;
+static gint ett_ObjectRpcBaseTypes_COMVERSION = -1;
+static gint ett_ObjectRpcBaseTypes_ORPC_FLAGS = -1;
+static gint ett_ObjectRpcBaseTypes_ORPC_EXTENT = -1;
+static gint ett_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY = -1;
+static gint ett_ObjectRpcBaseTypes_ORPCTHIS = -1;
+static gint ett_ObjectRpcBaseTypes_ORPCTHAT = -1;
+static gint ett_ObjectRpcBaseTypes_STRINGBINDING = -1;
+static gint ett_ObjectRpcBaseTypes_STRINGARRAY = -1;
+static gint ett_ObjectRpcBaseTypes_DUALSTRINGARRAY = -1;
+static gint ett_ObjectRpcBaseTypes_SECURITYBINDING = -1;
+static gint ett_ObjectRpcBaseTypes_STDOBJREF_FLAGS = -1;
+static gint ett_ObjectRpcBaseTypes_STDOBJREF = -1;
+static gint ett_ObjectRpcBaseTypes_u_standard = -1;
+static gint ett_ObjectRpcBaseTypes_u_handler = -1;
+static gint ett_ObjectRpcBaseTypes_u_custom = -1;
+static gint ett_ObjectRpcBaseTypes_u_null = -1;
+static gint ett_ObjectRpcBaseTypes_OBJREF_Types = -1;
+static gint ett_ObjectRpcBaseTypes_OBJREF = -1;
+static gint ett_ObjectRpcBaseTypes_MInterfacePointer = -1;
+
+
+/* Header field declarations */
+static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED1 = -1;
+static gint hf_ObjectRpcBaseTypes_COMVERSION_MajorVersion = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED3 = -1;
+static gint hf_ObjectRpcBaseTypes_SECURITYBINDING_PrincName = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED2 = -1;
+static gint hf_ObjectRpcBaseTypes_u_standard_saResAddr = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_ipid = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES5 = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES2 = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHAT_flags = -1;
+static gint hf_ObjectRpcBaseTypes_MInterfacePointer_obj = -1;
+static gint hf_ObjectRpcBaseTypes_STRINGBINDING_NetworkAddr = -1;
+static gint hf_ObjectRpcBaseTypes_MInterfacePointer_obj_ = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHIS_reserved1 = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_u_objref = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_standard = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_LOCAL = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NOPING = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES3 = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_NULL = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHAT_extensions = -1;
+static gint hf_ObjectRpcBaseTypes_STRINGBINDING_wTowerId = -1;
+static gint hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES8 = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_cPublicRefs = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES6 = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_null = -1;
+static gint hf_ObjectRpcBaseTypes_u_standard_std = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHIS_flags = -1;
+static gint hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthzSvc = -1;
+static gint hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthnSvc = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHIS_extensions = -1;
+static gint hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_size = -1;
+static gint hf_ObjectRpcBaseTypes_u_handler_std = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_oxid = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_flags = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NULL = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED4 = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_size = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_handler = -1;
+static gint hf_ObjectRpcBaseTypes_u_custom_cbExtension = -1;
+static gint hf_ObjectRpcBaseTypes_opnum = -1;
+static gint hf_ObjectRpcBaseTypes_u_handler_clsid = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_signature = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_Types_u_custom = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_id = -1;
+static gint hf_ObjectRpcBaseTypes_u_custom_size = -1;
+static gint hf_ObjectRpcBaseTypes_OBJREF_iid = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHIS_version = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES4 = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_reserved = -1;
+static gint hf_ObjectRpcBaseTypes_COMVERSION_MinorVersion = -1;
+static gint hf_ObjectRpcBaseTypes_MInterfacePointer_size = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES1 = -1;
+static gint hf_ObjectRpcBaseTypes_u_custom_clsid = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_oid = -1;
+static gint hf_ObjectRpcBaseTypes_u_handler_saResAddr = -1;
+static gint hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES7 = -1;
+static gint hf_ObjectRpcBaseTypes_ORPCTHIS_cid = -1;
+static gint hf_ObjectRpcBaseTypes_STDOBJREF_flags = -1;
+static gint hf_ObjectRpcBaseTypes_u_custom_pData = -1;
+static gint hf_ObjectRpcBaseTypes_ORPC_EXTENT_data = -1;
+
+static gint proto_dcerpc_ObjectRpcBaseTypes = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_ObjectRpcBaseTypes = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_ObjectRpcBaseTypes = 0;
+
+static int ObjectRpcBaseTypes_dissect_element_COMVERSION_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_COMVERSION_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string ORPC_FLAGS_ORPCF_NULL_tfs = {
+   "ORPCF_NULL is SET",
+   "ORPCF_NULL is NOT SET",
+};
+static const true_false_string ORPC_FLAGS_ORPCF_LOCAL_tfs = {
+   "ORPCF_LOCAL is SET",
+   "ORPCF_LOCAL is NOT SET",
+};
+static const true_false_string ORPC_FLAGS_ORPCF_RESERVED1_tfs = {
+   "ORPCF_RESERVED1 is SET",
+   "ORPCF_RESERVED1 is NOT SET",
+};
+static const true_false_string ORPC_FLAGS_ORPCF_RESERVED2_tfs = {
+   "ORPCF_RESERVED2 is SET",
+   "ORPCF_RESERVED2 is NOT SET",
+};
+static const true_false_string ORPC_FLAGS_ORPCF_RESERVED3_tfs = {
+   "ORPCF_RESERVED3 is SET",
+   "ORPCF_RESERVED3 is NOT SET",
+};
+static const true_false_string ORPC_FLAGS_ORPCF_RESERVED4_tfs = {
+   "ORPCF_RESERVED4 is SET",
+   "ORPCF_RESERVED4 is NOT SET",
+};
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_cid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHAT_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STRINGBINDING_wTowerId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STRINGBINDING_NetworkAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthnSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthzSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_PrincName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string ObjectRpcBaseTypes_OBJREF_FLAGS_vals[] = {
+       { OBJREF_NULL, "OBJREF_NULL" },
+       { OBJREF_STANDARD, "OBJREF_STANDARD" },
+       { OBJREF_HANDLER, "OBJREF_HANDLER" },
+       { OBJREF_CUSTOM, "OBJREF_CUSTOM" },
+{ 0, NULL }
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_NULL_tfs = {
+   "SORF_NULL is SET",
+   "SORF_NULL is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES1_tfs = {
+   "SORF_OXRES1 is SET",
+   "SORF_OXRES1 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES2_tfs = {
+   "SORF_OXRES2 is SET",
+   "SORF_OXRES2 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES3_tfs = {
+   "SORF_OXRES3 is SET",
+   "SORF_OXRES3 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES4_tfs = {
+   "SORF_OXRES4 is SET",
+   "SORF_OXRES4 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES5_tfs = {
+   "SORF_OXRES5 is SET",
+   "SORF_OXRES5 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES6_tfs = {
+   "SORF_OXRES6 is SET",
+   "SORF_OXRES6 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES7_tfs = {
+   "SORF_OXRES7 is SET",
+   "SORF_OXRES7 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_OXRES8_tfs = {
+   "SORF_OXRES8 is SET",
+   "SORF_OXRES8 is NOT SET",
+};
+static const true_false_string STDOBJREF_FLAGS_SORF_NOPING_tfs = {
+   "SORF_NOPING is SET",
+   "SORF_NOPING is NOT SET",
+};
+static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_cPublicRefs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_oxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_STDOBJREF_ipid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_standard_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_standard_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_handler_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_handler_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_handler_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_custom_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_custom_cbExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_custom_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_custom_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_u_custom_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *flags);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_iid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_OBJREF_u_objref(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *flags);
+static int ObjectRpcBaseTypes_dissect_element_MInterfacePointer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string ObjectRpcBaseTypes_COMRESULT_vals[] = {
+       { COM_OK, "COM_OK" },
+       { COM_OUTOFMEMORY, "COM_OUTOFMEMORY" },
+       { COM_INVALIDARG, "COM_INVALIDARG" },
+       { COM_NOINTERFACE, "COM_NOINTERFACE" },
+       { COM_ACCESSDENIED, "COM_ACCESSDENIED" },
+       { COM_INVALID_OXID, "COM_INVALID_OXID" },
+       { COM_INVALID_OID, "COM_INVALID_OID" },
+       { COM_INVALID_SET, "COM_INVALID_SET" },
+       { COM_UNEXPECTED, "COM_UNEXPECTED" },
+       { COM_CLSNOTFOUND, "COM_CLSNOTFOUND" },
+{ 0, NULL }
+};
+
+
+/* IDL: struct { */
+/* IDL:        uint16 MajorVersion; */
+/* IDL:        uint16 MinorVersion; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_COMVERSION_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_COMVERSION_MajorVersion, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_COMVERSION_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_COMVERSION_MinorVersion, 0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_COMVERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_COMVERSION);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_COMVERSION_MajorVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_COMVERSION_MinorVersion(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        ORPCF_NULL =  0x00 , */
+/* IDL:        ORPCF_LOCAL =  0x01 , */
+/* IDL:        ORPCF_RESERVED1 =  0x02 , */
+/* IDL:        ORPCF_RESERVED2 =  0x04 , */
+/* IDL:        ORPCF_RESERVED3 =  0x08 , */
+/* IDL:        ORPCF_RESERVED4 =  0x10 , */
+/* IDL: } */
+
+int
+ObjectRpcBaseTypes_dissect_bitmap_ORPC_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_ObjectRpcBaseTypes_ORPC_FLAGS);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_NULL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00 )){
+               proto_item_append_text(item, "ORPCF_NULL");
+               if (flags & (~( 0x00 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_LOCAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x01 )){
+               proto_item_append_text(item, "ORPCF_LOCAL");
+               if (flags & (~( 0x01 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED1, tvb, offset-4, 4, flags);
+       if (flags&( 0x02 )){
+               proto_item_append_text(item, "ORPCF_RESERVED1");
+               if (flags & (~( 0x02 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED2, tvb, offset-4, 4, flags);
+       if (flags&( 0x04 )){
+               proto_item_append_text(item, "ORPCF_RESERVED2");
+               if (flags & (~( 0x04 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED3, tvb, offset-4, 4, flags);
+       if (flags&( 0x08 )){
+               proto_item_append_text(item, "ORPCF_RESERVED3");
+               if (flags & (~( 0x08 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED4, tvb, offset-4, 4, flags);
+       if (flags&( 0x10 )){
+               proto_item_append_text(item, "ORPCF_RESERVED4");
+               if (flags & (~( 0x10 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID id; */
+/* IDL:        uint32 size; */
+/* IDL:        [size_is(((size+7)&~7))] uint8 data[*]; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_id, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_size, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data_);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_data, 0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPC_EXTENT);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_id(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_size(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [unique(1)] [size_is(((size+1)&~1))] ORPC_EXTENT **extent; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_size, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_reserved, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent_, NDR_POINTER_UNIQUE, "Pointer to Extent (ORPC_EXTENT)",hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent__);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent___, NDR_POINTER_UNIQUE, "Pointer to Extent (ORPC_EXTENT)",hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_size(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPC_EXTENT_ARRAY_extent(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        COMVERSION version; */
+/* IDL:        uint32 flags; */
+/* IDL:        uint32 reserved1; */
+/* IDL:        GUID cid; */
+/* IDL:        [unique(1)] ORPC_EXTENT_ARRAY *extensions; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHIS_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_COMVERSION(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPCTHIS_version,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHIS_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHIS_flags, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHIS_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHIS_reserved1, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHIS_cid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHIS_cid, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions_, NDR_POINTER_UNIQUE, "Pointer to Extensions (ORPC_EXTENT_ARRAY)",hf_ObjectRpcBaseTypes_ORPCTHIS_extensions);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPCTHIS_extensions,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_ORPCTHIS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPCTHIS);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_version(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_cid(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHIS_extensions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        [unique(1)] ORPC_EXTENT_ARRAY *extensions; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHAT_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_ORPCTHAT_flags, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions_, NDR_POINTER_UNIQUE, "Pointer to Extensions (ORPC_EXTENT_ARRAY)",hf_ObjectRpcBaseTypes_ORPCTHAT_extensions);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_ORPCTHAT_extensions,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_ORPCTHAT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_ORPCTHAT);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHAT_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_ORPCTHAT_extensions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 wTowerId; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string NetworkAddr; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_STRINGBINDING_wTowerId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STRINGBINDING_wTowerId, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STRINGBINDING_NetworkAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STRINGBINDING_NetworkAddr , 0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_STRINGBINDING);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_STRINGBINDING_wTowerId(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_STRINGBINDING_NetworkAddr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] STRINGBINDING **stringbindings; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings_, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings__, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_STRINGARRAY);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_STRINGARRAY_stringbindings(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] STRINGBINDING **stringbindings; */
+/* IDL:        [unique(1)] SECURITYBINDING **securitybindings; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings_, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings__, NDR_POINTER_UNIQUE, "Pointer to Stringbindings (STRINGBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings_, NDR_POINTER_UNIQUE, "Pointer to Securitybindings (SECURITYBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings__, NDR_POINTER_UNIQUE, "Pointer to Securitybindings (SECURITYBINDING)",hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_SECURITYBINDING(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_DUALSTRINGARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_DUALSTRINGARRAY);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_stringbindings(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_DUALSTRINGARRAY_securitybindings(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 wAuthnSvc; */
+/* IDL:        uint16 wAuthzSvc; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string PrincName; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthnSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthnSvc, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthzSvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthzSvc, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_PrincName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_SECURITYBINDING_PrincName , 0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_SECURITYBINDING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_SECURITYBINDING);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthnSvc(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_wAuthzSvc(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_SECURITYBINDING_PrincName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        OBJREF_NULL=0x0, */
+/* IDL:        OBJREF_STANDARD=0x1, */
+/* IDL:        OBJREF_HANDLER=0x2, */
+/* IDL:        OBJREF_CUSTOM=0x4, */
+/* IDL: } */
+
+int
+ObjectRpcBaseTypes_dissect_enum_OBJREF_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SORF_NULL =  0x0000 , */
+/* IDL:        SORF_OXRES1 =  0x0001 , */
+/* IDL:        SORF_OXRES2 =  0x0020 , */
+/* IDL:        SORF_OXRES3 =  0x0040 , */
+/* IDL:        SORF_OXRES4 =  0x0080 , */
+/* IDL:        SORF_OXRES5 =  0x0100 , */
+/* IDL:        SORF_OXRES6 =  0x0200 , */
+/* IDL:        SORF_OXRES7 =  0x0400 , */
+/* IDL:        SORF_OXRES8 =  0x0800 , */
+/* IDL:        SORF_NOPING =  0x1000 , */
+/* IDL: } */
+
+int
+ObjectRpcBaseTypes_dissect_bitmap_STDOBJREF_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_ObjectRpcBaseTypes_STDOBJREF_FLAGS);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NULL, tvb, offset-4, 4, flags);
+       if (flags&( 0x0000 )){
+               proto_item_append_text(item, "SORF_NULL");
+               if (flags & (~( 0x0000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0000 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES1, tvb, offset-4, 4, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "SORF_OXRES1");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES2, tvb, offset-4, 4, flags);
+       if (flags&( 0x0020 )){
+               proto_item_append_text(item, "SORF_OXRES2");
+               if (flags & (~( 0x0020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0020 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES3, tvb, offset-4, 4, flags);
+       if (flags&( 0x0040 )){
+               proto_item_append_text(item, "SORF_OXRES3");
+               if (flags & (~( 0x0040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0040 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES4, tvb, offset-4, 4, flags);
+       if (flags&( 0x0080 )){
+               proto_item_append_text(item, "SORF_OXRES4");
+               if (flags & (~( 0x0080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0080 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES5, tvb, offset-4, 4, flags);
+       if (flags&( 0x0100 )){
+               proto_item_append_text(item, "SORF_OXRES5");
+               if (flags & (~( 0x0100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0100 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES6, tvb, offset-4, 4, flags);
+       if (flags&( 0x0200 )){
+               proto_item_append_text(item, "SORF_OXRES6");
+               if (flags & (~( 0x0200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0200 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES7, tvb, offset-4, 4, flags);
+       if (flags&( 0x0400 )){
+               proto_item_append_text(item, "SORF_OXRES7");
+               if (flags & (~( 0x0400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0400 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES8, tvb, offset-4, 4, flags);
+       if (flags&( 0x0800 )){
+               proto_item_append_text(item, "SORF_OXRES8");
+               if (flags & (~( 0x0800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0800 ));
+
+       proto_tree_add_boolean(tree, hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NOPING, tvb, offset-4, 4, flags);
+       if (flags&( 0x1000 )){
+               proto_item_append_text(item, "SORF_NOPING");
+               if (flags & (~( 0x1000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x1000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        uint32 cPublicRefs; */
+/* IDL:        hyper oxid; */
+/* IDL:        hyper oid; */
+/* IDL:        GUID ipid; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_STDOBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_flags, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STDOBJREF_cPublicRefs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_cPublicRefs, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STDOBJREF_oxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_oxid, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STDOBJREF_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_oid, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_STDOBJREF_ipid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_STDOBJREF_ipid, NULL);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_STDOBJREF);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_cPublicRefs(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_oxid(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_oid(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_STDOBJREF_ipid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        STDOBJREF std; */
+/* IDL:        STRINGARRAY saResAddr; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_standard_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_standard_std,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_standard_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_standard_saResAddr,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_standard);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_u_standard_std(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_u_standard_saResAddr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        STDOBJREF std; */
+/* IDL:        GUID clsid; */
+/* IDL:        STRINGARRAY saResAddr; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_handler_std(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_handler_std,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_handler_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_handler_clsid, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_handler_saResAddr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_u_handler_saResAddr,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_handler);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_u_handler_std(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_u_handler_clsid(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_u_handler_saResAddr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID clsid; */
+/* IDL:        uint32 cbExtension; */
+/* IDL:        uint32 size; */
+/* IDL:        uint8 pData[size]; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_custom_clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_clsid, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_custom_cbExtension(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_cbExtension, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_custom_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_size, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_custom_pData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_u_custom_pData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_u_custom_pData, 0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_custom);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_u_custom_clsid(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_u_custom_cbExtension(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_u_custom_size(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_u_custom_pData(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: } */
+
+int
+ObjectRpcBaseTypes_dissect_struct_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_u_null);
+       }
+       
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(OBJREF_NULL)] [case(OBJREF_NULL)] u_null u_null; */
+/* IDL: [case(OBJREF_STANDARD)] [case(OBJREF_STANDARD)] u_standard u_standard; */
+/* IDL: [case(OBJREF_HANDLER)] [case(OBJREF_HANDLER)] u_handler u_handler; */
+/* IDL: [case(OBJREF_CUSTOM)] [case(OBJREF_CUSTOM)] u_custom u_custom; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_u_null(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_null,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_u_standard(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_standard,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_u_handler(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_handler,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_u_custom(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_OBJREF_Types_u_custom,0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_OBJREF_Types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "OBJREF_Types");
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_OBJREF_Types);
+       }
+
+       switch(level) {
+               case OBJREF_NULL:
+                       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_null(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case OBJREF_STANDARD:
+                       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_standard(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case OBJREF_HANDLER:
+                       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_handler(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case OBJREF_CUSTOM:
+                       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_Types_u_custom(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 signature; */
+/* IDL:        uint32 flags; */
+/* IDL:        GUID iid; */
+/* IDL:        [switch_is(flags)] [switch_type(uint32)] OBJREF_Types u_objref; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_signature, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *flags)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_flags, flags);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_iid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_iid, NULL);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_OBJREF_u_objref(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *flags)
+{
+       offset = ObjectRpcBaseTypes_dissect_OBJREF_Types(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_OBJREF_u_objref, *flags);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_OBJREF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g flags;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_OBJREF);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_signature(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_flags(tvb, offset, pinfo, tree, drep, &flags);
+
+       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_iid(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_OBJREF_u_objref(tvb, offset, pinfo, tree, drep, &flags);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        [subcontext(4)] OBJREF obj; */
+/* IDL: } */
+
+static int
+ObjectRpcBaseTypes_dissect_element_MInterfacePointer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_MInterfacePointer_size, 0);
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_ObjectRpcBaseTypes_MInterfacePointer_obj_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = ObjectRpcBaseTypes_dissect_struct_OBJREF(tvb,offset,pinfo,tree,drep,hf_ObjectRpcBaseTypes_MInterfacePointer_obj,0);
+
+       return offset;
+}
+
+int
+ObjectRpcBaseTypes_dissect_struct_MInterfacePointer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_ObjectRpcBaseTypes_MInterfacePointer);
+       }
+       
+       offset = ObjectRpcBaseTypes_dissect_element_MInterfacePointer_size(tvb, offset, pinfo, tree, drep);
+
+       offset = ObjectRpcBaseTypes_dissect_element_MInterfacePointer_obj(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        COM_OK=0x00000000, */
+/* IDL:        COM_OUTOFMEMORY=0x80000002, */
+/* IDL:        COM_INVALIDARG=0x80000003, */
+/* IDL:        COM_NOINTERFACE=0x80000004, */
+/* IDL:        COM_ACCESSDENIED=0x80070005, */
+/* IDL:        COM_INVALID_OXID=0x80070776, */
+/* IDL:        COM_INVALID_OID=0x80070777, */
+/* IDL:        COM_INVALID_SET=0x80070778, */
+/* IDL:        COM_UNEXPECTED=0x8000FFFF, */
+/* IDL:        COM_CLSNOTFOUND=0x80040154, */
+/* IDL: } */
+
+int
+ObjectRpcBaseTypes_dissect_enum_COMRESULT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+static dcerpc_sub_dissector ObjectRpcBaseTypes_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_ObjectRpcBaseTypes(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED1,
+         { "Orpcf Reserved1", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED1", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED1_tfs), ( 0x02 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_COMVERSION_MajorVersion,
+         { "Majorversion", "ObjectRpcBaseTypes.COMVERSION.MajorVersion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED3,
+         { "Orpcf Reserved3", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED3", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED3_tfs), ( 0x08 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_SECURITYBINDING_PrincName,
+         { "Princname", "ObjectRpcBaseTypes.SECURITYBINDING.PrincName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED2,
+         { "Orpcf Reserved2", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED2", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED2_tfs), ( 0x04 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_standard_saResAddr,
+         { "Saresaddr", "ObjectRpcBaseTypes.u_standard.saResAddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_ipid,
+         { "Ipid", "ObjectRpcBaseTypes.STDOBJREF.ipid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES5,
+         { "Sorf Oxres5", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES5", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES5_tfs), ( 0x0100 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES2,
+         { "Sorf Oxres2", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES2", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES2_tfs), ( 0x0020 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHAT_flags,
+         { "Flags", "ObjectRpcBaseTypes.ORPCTHAT.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_MInterfacePointer_obj,
+         { "Obj", "ObjectRpcBaseTypes.MInterfacePointer.obj", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STRINGBINDING_NetworkAddr,
+         { "Networkaddr", "ObjectRpcBaseTypes.STRINGBINDING.NetworkAddr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_MInterfacePointer_obj_,
+         { "Subcontext length", "ObjectRpcBaseTypes.MInterfacePointer.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHIS_reserved1,
+         { "Reserved1", "ObjectRpcBaseTypes.ORPCTHIS.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_u_objref,
+         { "U Objref", "ObjectRpcBaseTypes.OBJREF.u_objref", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_standard,
+         { "U Standard", "ObjectRpcBaseTypes.OBJREF_Types.u_standard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_LOCAL,
+         { "Orpcf Local", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_LOCAL", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_LOCAL_tfs), ( 0x01 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NOPING,
+         { "Sorf Noping", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_NOPING", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_NOPING_tfs), ( 0x1000 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES3,
+         { "Sorf Oxres3", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES3", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES3_tfs), ( 0x0040 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_NULL,
+         { "Orpcf Null", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_NULL", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_NULL_tfs), ( 0x00 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHAT_extensions,
+         { "Extensions", "ObjectRpcBaseTypes.ORPCTHAT.extensions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STRINGBINDING_wTowerId,
+         { "Wtowerid", "ObjectRpcBaseTypes.STRINGBINDING.wTowerId", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STRINGARRAY_stringbindings,
+         { "Stringbindings", "ObjectRpcBaseTypes.STRINGARRAY.stringbindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES8,
+         { "Sorf Oxres8", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES8", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES8_tfs), ( 0x0800 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_cPublicRefs,
+         { "Cpublicrefs", "ObjectRpcBaseTypes.STDOBJREF.cPublicRefs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES6,
+         { "Sorf Oxres6", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES6", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES6_tfs), ( 0x0200 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_null,
+         { "U Null", "ObjectRpcBaseTypes.OBJREF_Types.u_null", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_standard_std,
+         { "Std", "ObjectRpcBaseTypes.u_standard.std", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHIS_flags,
+         { "Flags", "ObjectRpcBaseTypes.ORPCTHIS.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthzSvc,
+         { "Wauthzsvc", "ObjectRpcBaseTypes.SECURITYBINDING.wAuthzSvc", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_SECURITYBINDING_wAuthnSvc,
+         { "Wauthnsvc", "ObjectRpcBaseTypes.SECURITYBINDING.wAuthnSvc", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHIS_extensions,
+         { "Extensions", "ObjectRpcBaseTypes.ORPCTHIS.extensions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_securitybindings,
+         { "Securitybindings", "ObjectRpcBaseTypes.DUALSTRINGARRAY.securitybindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_size,
+         { "Size", "ObjectRpcBaseTypes.ORPC_EXTENT_ARRAY.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_handler_std,
+         { "Std", "ObjectRpcBaseTypes.u_handler.std", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_oxid,
+         { "Oxid", "ObjectRpcBaseTypes.STDOBJREF.oxid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_flags,
+         { "Flags", "ObjectRpcBaseTypes.OBJREF.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_NULL,
+         { "Sorf Null", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_NULL", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_NULL_tfs), ( 0x0000 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_FLAGS_ORPCF_RESERVED4,
+         { "Orpcf Reserved4", "ObjectRpcBaseTypes.ORPC_FLAGS.ORPCF_RESERVED4", FT_BOOLEAN, 32, TFS(&ORPC_FLAGS_ORPCF_RESERVED4_tfs), ( 0x10 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_size,
+         { "Size", "ObjectRpcBaseTypes.ORPC_EXTENT.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_handler,
+         { "U Handler", "ObjectRpcBaseTypes.OBJREF_Types.u_handler", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_custom_cbExtension,
+         { "Cbextension", "ObjectRpcBaseTypes.u_custom.cbExtension", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_opnum,
+         { "Operation", "ObjectRpcBaseTypes.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_handler_clsid,
+         { "Clsid", "ObjectRpcBaseTypes.u_handler.clsid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_signature,
+         { "Signature", "ObjectRpcBaseTypes.OBJREF.signature", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_Types_u_custom,
+         { "U Custom", "ObjectRpcBaseTypes.OBJREF_Types.u_custom", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_extent,
+         { "Extent", "ObjectRpcBaseTypes.ORPC_EXTENT_ARRAY.extent", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_id,
+         { "Id", "ObjectRpcBaseTypes.ORPC_EXTENT.id", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_custom_size,
+         { "Size", "ObjectRpcBaseTypes.u_custom.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_OBJREF_iid,
+         { "Iid", "ObjectRpcBaseTypes.OBJREF.iid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHIS_version,
+         { "Version", "ObjectRpcBaseTypes.ORPCTHIS.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES4,
+         { "Sorf Oxres4", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES4", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES4_tfs), ( 0x0080 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY_reserved,
+         { "Reserved", "ObjectRpcBaseTypes.ORPC_EXTENT_ARRAY.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_COMVERSION_MinorVersion,
+         { "Minorversion", "ObjectRpcBaseTypes.COMVERSION.MinorVersion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_MInterfacePointer_size,
+         { "Size", "ObjectRpcBaseTypes.MInterfacePointer.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES1,
+         { "Sorf Oxres1", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES1", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES1_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_custom_clsid,
+         { "Clsid", "ObjectRpcBaseTypes.u_custom.clsid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_oid,
+         { "Oid", "ObjectRpcBaseTypes.STDOBJREF.oid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_handler_saResAddr,
+         { "Saresaddr", "ObjectRpcBaseTypes.u_handler.saResAddr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_DUALSTRINGARRAY_stringbindings,
+         { "Stringbindings", "ObjectRpcBaseTypes.DUALSTRINGARRAY.stringbindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_FLAGS_SORF_OXRES7,
+         { "Sorf Oxres7", "ObjectRpcBaseTypes.STDOBJREF_FLAGS.SORF_OXRES7", FT_BOOLEAN, 32, TFS(&STDOBJREF_FLAGS_SORF_OXRES7_tfs), ( 0x0400 ), NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPCTHIS_cid,
+         { "Cid", "ObjectRpcBaseTypes.ORPCTHIS.cid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_STDOBJREF_flags,
+         { "Flags", "ObjectRpcBaseTypes.STDOBJREF.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_u_custom_pData,
+         { "Pdata", "ObjectRpcBaseTypes.u_custom.pData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_ObjectRpcBaseTypes_ORPC_EXTENT_data,
+         { "Data", "ObjectRpcBaseTypes.ORPC_EXTENT.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_ObjectRpcBaseTypes,
+               &ett_ObjectRpcBaseTypes_COMVERSION,
+               &ett_ObjectRpcBaseTypes_ORPC_FLAGS,
+               &ett_ObjectRpcBaseTypes_ORPC_EXTENT,
+               &ett_ObjectRpcBaseTypes_ORPC_EXTENT_ARRAY,
+               &ett_ObjectRpcBaseTypes_ORPCTHIS,
+               &ett_ObjectRpcBaseTypes_ORPCTHAT,
+               &ett_ObjectRpcBaseTypes_STRINGBINDING,
+               &ett_ObjectRpcBaseTypes_STRINGARRAY,
+               &ett_ObjectRpcBaseTypes_DUALSTRINGARRAY,
+               &ett_ObjectRpcBaseTypes_SECURITYBINDING,
+               &ett_ObjectRpcBaseTypes_STDOBJREF_FLAGS,
+               &ett_ObjectRpcBaseTypes_STDOBJREF,
+               &ett_ObjectRpcBaseTypes_u_standard,
+               &ett_ObjectRpcBaseTypes_u_handler,
+               &ett_ObjectRpcBaseTypes_u_custom,
+               &ett_ObjectRpcBaseTypes_u_null,
+               &ett_ObjectRpcBaseTypes_OBJREF_Types,
+               &ett_ObjectRpcBaseTypes_OBJREF,
+               &ett_ObjectRpcBaseTypes_MInterfacePointer,
+       };
+
+       proto_dcerpc_ObjectRpcBaseTypes = proto_register_protocol("OBJECTRPCBASETYPES (pidl)", "OBJECTRPCBASETYPES", "ObjectRpcBaseTypes");
+       proto_register_field_array(proto_dcerpc_ObjectRpcBaseTypes, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_ObjectRpcBaseTypes(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_ObjectRpcBaseTypes, ett_dcerpc_ObjectRpcBaseTypes,
+               &uuid_dcerpc_ObjectRpcBaseTypes, ver_dcerpc_ObjectRpcBaseTypes,
+               ObjectRpcBaseTypes_dissectors, hf_ObjectRpcBaseTypes_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-orpc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-orpc.h
new file mode 100644 (file)
index 0000000..dcb122c
--- /dev/null
@@ -0,0 +1,69 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/orpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/orpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_OBJECTRPCBASETYPES_H
+#define __PACKET_DCERPC_OBJECTRPCBASETYPES_H
+
+#define COM_MAJOR_VERSION      ( 5 )
+
+#define COM_MINOR_VERSION      ( 1 )
+
+#define dcom_ext_debugging     ( "f1f19680-4d2a-11ce-a66a-0020af6e72f4" )
+
+#define dcom_ext_extended_error        ( "f1f19681-4d2a-11ce-a66a-0020af6e72f4" )
+
+#define COM_C_AUTHZ_NONE       ( 0xffff )
+
+#define OBJREF_SIGNATURE       ( 0x574f454d )
+
+int ObjectRpcBaseTypes_dissect_struct_COMVERSION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_bitmap_ORPC_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_ORPC_EXTENT_ARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_ORPCTHIS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_ORPCTHAT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_STRINGBINDING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_STRINGARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_DUALSTRINGARRAY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_SECURITYBINDING(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define OBJREF_NULL (0x0)
+#define OBJREF_STANDARD (0x1)
+#define OBJREF_HANDLER (0x2)
+#define OBJREF_CUSTOM (0x4)
+extern const value_string ObjectRpcBaseTypes_OBJREF_FLAGS_vals[];
+int ObjectRpcBaseTypes_dissect_enum_OBJREF_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int ObjectRpcBaseTypes_dissect_bitmap_STDOBJREF_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_STDOBJREF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_u_standard(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_u_handler(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_u_custom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_u_null(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_OBJREF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int ObjectRpcBaseTypes_dissect_struct_MInterfacePointer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define COM_OK (0x00000000)
+#define COM_OUTOFMEMORY (0x80000002)
+#define COM_INVALIDARG (0x80000003)
+#define COM_NOINTERFACE (0x80000004)
+#define COM_ACCESSDENIED (0x80070005)
+#define COM_INVALID_OXID (0x80070776)
+#define COM_INVALID_OID (0x80070777)
+#define COM_INVALID_SET (0x80070778)
+#define COM_UNEXPECTED (0x8000FFFF)
+#define COM_CLSNOTFOUND (0x80040154)
+extern const value_string ObjectRpcBaseTypes_COMRESULT_vals[];
+int ObjectRpcBaseTypes_dissect_enum_COMRESULT(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_OBJECTRPCBASETYPES_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-oxidresolver.c b/bin/default/librpc/gen_ndr/packet-dcerpc-oxidresolver.c
new file mode 100644 (file)
index 0000000..8253681
--- /dev/null
@@ -0,0 +1,895 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/oxidresolver.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/oxidresolver.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-oxidresolver.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_IOXIDResolver = -1;
+static gint ett_IOXIDResolver_COMINFO = -1;
+
+
+/* Header field declarations */
+static gint hf_IOXIDResolver_ResolveOxid2_pOxid = -1;
+static gint hf_IOXIDResolver_ServerAlive2_info = -1;
+static gint hf_IOXIDResolver_werror = -1;
+static gint hf_IOXIDResolver_ServerAlive2_unknown3 = -1;
+static gint hf_IOXIDResolver_ResolveOxid2_AuthnHint = -1;
+static gint hf_IOXIDResolver_ResolveOxid_pAuthnHint = -1;
+static gint hf_IOXIDResolver_ResolveOxid2_arRequestedProtseqs = -1;
+static gint hf_IOXIDResolver_ResolveOxid2_cRequestedProtseqs = -1;
+static gint hf_IOXIDResolver_ComplexPing_cDelFromSet = -1;
+static gint hf_IOXIDResolver_ComplexPing_cAddToSet = -1;
+static gint hf_IOXIDResolver_opnum = -1;
+static gint hf_IOXIDResolver_ComplexPing_PingBackoffFactor = -1;
+static gint hf_IOXIDResolver_ComplexPing_DelFromSet = -1;
+static gint hf_IOXIDResolver_ResolveOxid2_pdsaOxidBindings = -1;
+static gint hf_IOXIDResolver_ResolveOxid_ppdsaOxidBindings = -1;
+static gint hf_IOXIDResolver_ComplexPing_AddToSet = -1;
+static gint hf_IOXIDResolver_ResolveOxid2_ComVersion = -1;
+static gint hf_IOXIDResolver_ResolveOxid_pipidRemUnknown = -1;
+static gint hf_IOXIDResolver_ResolveOxid2_ipidRemUnknown = -1;
+static gint hf_IOXIDResolver_SimplePing_SetId = -1;
+static gint hf_IOXIDResolver_ResolveOxid_arRequestedProtseqs = -1;
+static gint hf_IOXIDResolver_ServerAlive2_unknown4 = -1;
+static gint hf_IOXIDResolver_COMINFO_unknown1 = -1;
+static gint hf_IOXIDResolver_ServerAlive2_unknown2 = -1;
+static gint hf_IOXIDResolver_COMINFO_version = -1;
+static gint hf_IOXIDResolver_ResolveOxid_pOxid = -1;
+static gint hf_IOXIDResolver_ComplexPing_SequenceNum = -1;
+static gint hf_IOXIDResolver_ComplexPing_SetId = -1;
+static gint hf_IOXIDResolver_ServerAlive2_dualstring = -1;
+static gint hf_IOXIDResolver_ResolveOxid_cRequestedProtseqs = -1;
+
+static gint proto_dcerpc_IOXIDResolver = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_IOXIDResolver = {
+       0x99fcfec4, 0x5260, 0x101b,
+       { 0xbb, 0xcb, 0x00, 0xaa, 0x00, 0x21, 0x34, 0x7a }
+};
+static guint16 ver_dcerpc_IOXIDResolver = 0;
+
+static int IOXIDResolver_dissect_element_COMINFO_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_COMINFO_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_pOxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_cRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_arRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_arRequestedProtseqs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_pipidRemUnknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_pipidRemUnknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_pAuthnHint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid_pAuthnHint_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_SimplePing_SetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_SimplePing_SetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_SetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_SetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_SequenceNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_cAddToSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_cDelFromSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_AddToSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_AddToSet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_DelFromSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_DelFromSet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_PingBackoffFactor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ComplexPing_PingBackoffFactor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_pOxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_cRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_arRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_arRequestedProtseqs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_ipidRemUnknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_ipidRemUnknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_AuthnHint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_AuthnHint_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_ComVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ResolveOxid2_ComVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_dualstring(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_dualstring_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_unknown3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IOXIDResolver_dissect_element_ServerAlive2_unknown4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        COMVERSION version; */
+/* IDL:        uint32 unknown1; */
+/* IDL: } */
+
+static int
+IOXIDResolver_dissect_element_COMINFO_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IOXIDResolver_dissect_struct_COMVERSION(tvb,offset,pinfo,tree,drep,hf_IOXIDResolver_COMINFO_version,0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_COMINFO_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_COMINFO_unknown1, 0);
+
+       return offset;
+}
+
+int
+IOXIDResolver_dissect_struct_COMINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_IOXIDResolver_COMINFO);
+       }
+       
+       offset = IOXIDResolver_dissect_element_COMINFO_version(tvb, offset, pinfo, tree, drep);
+
+       offset = IOXIDResolver_dissect_element_COMINFO_unknown1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_pOxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid_pOxid, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_cRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid_cRequestedProtseqs, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_arRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid_arRequestedProtseqs_);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_arRequestedProtseqs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid_arRequestedProtseqs, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings_, NDR_POINTER_REF, "Pointer to Ppdsaoxidbindings (DUALSTRINGARRAY)",hf_IOXIDResolver_ResolveOxid_ppdsaOxidBindings);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings__, NDR_POINTER_UNIQUE, "Pointer to Ppdsaoxidbindings (DUALSTRINGARRAY)",hf_IOXIDResolver_ResolveOxid_ppdsaOxidBindings);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IOXIDResolver_dissect_struct_DUALSTRINGARRAY(tvb,offset,pinfo,tree,drep,hf_IOXIDResolver_ResolveOxid_ppdsaOxidBindings,0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_pipidRemUnknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid_pipidRemUnknown_, NDR_POINTER_REF, "Pointer to Pipidremunknown (GUID)",hf_IOXIDResolver_ResolveOxid_pipidRemUnknown);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_pipidRemUnknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid_pipidRemUnknown, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_pAuthnHint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid_pAuthnHint_, NDR_POINTER_REF, "Pointer to Pauthnhint (uint32)",hf_IOXIDResolver_ResolveOxid_pAuthnHint);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid_pAuthnHint_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid_pAuthnHint, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR ResolveOxid( */
+/* IDL: [in] hyper pOxid, */
+/* IDL: [in] uint16 cRequestedProtseqs, */
+/* IDL: [in] [size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[*], */
+/* IDL: [out] [ref] DUALSTRINGARRAY **ppdsaOxidBindings, */
+/* IDL: [out] [ref] GUID *pipidRemUnknown, */
+/* IDL: [out] [ref] uint32 *pAuthnHint */
+/* IDL: ); */
+
+static int
+IOXIDResolver_dissect_ResolveOxid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ResolveOxid";
+       offset = IOXIDResolver_dissect_element_ResolveOxid_ppdsaOxidBindings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ResolveOxid_pipidRemUnknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ResolveOxid_pAuthnHint(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_ResolveOxid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ResolveOxid";
+       offset = IOXIDResolver_dissect_element_ResolveOxid_pOxid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ResolveOxid_cRequestedProtseqs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ResolveOxid_arRequestedProtseqs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_SimplePing_SetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_SimplePing_SetId_, NDR_POINTER_REF, "Pointer to Setid (hyper)",hf_IOXIDResolver_SimplePing_SetId);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_SimplePing_SetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_SimplePing_SetId, NULL);
+
+       return offset;
+}
+
+/* IDL: WERROR SimplePing( */
+/* IDL: [ref] [in] hyper *SetId */
+/* IDL: ); */
+
+static int
+IOXIDResolver_dissect_SimplePing_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SimplePing";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_SimplePing_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SimplePing";
+       offset = IOXIDResolver_dissect_element_SimplePing_SetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_SetId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ComplexPing_SetId_, NDR_POINTER_REF, "Pointer to Setid (hyper)",hf_IOXIDResolver_ComplexPing_SetId);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_SetId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_SetId, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_SequenceNum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_SequenceNum, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_cAddToSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_cAddToSet, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_cDelFromSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_cDelFromSet, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_AddToSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ComplexPing_AddToSet_);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_AddToSet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_AddToSet, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_DelFromSet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ComplexPing_DelFromSet_);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_DelFromSet_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_DelFromSet, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_PingBackoffFactor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ComplexPing_PingBackoffFactor_, NDR_POINTER_REF, "Pointer to Pingbackofffactor (uint16)",hf_IOXIDResolver_ComplexPing_PingBackoffFactor);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ComplexPing_PingBackoffFactor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ComplexPing_PingBackoffFactor, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR ComplexPing( */
+/* IDL: [out] [in] [ref] hyper *SetId, */
+/* IDL: [in] uint16 SequenceNum, */
+/* IDL: [in] uint16 cAddToSet, */
+/* IDL: [in] uint16 cDelFromSet, */
+/* IDL: [in] [size_is(cAddToSet)] GUID AddToSet[*], */
+/* IDL: [in] [size_is(cDelFromSet)] GUID DelFromSet[*], */
+/* IDL: [out] [ref] uint16 *PingBackoffFactor */
+/* IDL: ); */
+
+static int
+IOXIDResolver_dissect_ComplexPing_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ComplexPing";
+       offset = IOXIDResolver_dissect_element_ComplexPing_SetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ComplexPing_PingBackoffFactor(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_ComplexPing_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ComplexPing";
+       offset = IOXIDResolver_dissect_element_ComplexPing_SetId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ComplexPing_SequenceNum(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ComplexPing_cAddToSet(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ComplexPing_cDelFromSet(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ComplexPing_AddToSet(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ComplexPing_DelFromSet(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR ServerAlive( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+IOXIDResolver_dissect_ServerAlive_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ServerAlive";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_ServerAlive_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ServerAlive";
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_pOxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid2_pOxid, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_cRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid2_cRequestedProtseqs, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_arRequestedProtseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid2_arRequestedProtseqs_);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_arRequestedProtseqs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid2_arRequestedProtseqs, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings_, NDR_POINTER_REF, "Pointer to Pdsaoxidbindings (DUALSTRINGARRAY)",hf_IOXIDResolver_ResolveOxid2_pdsaOxidBindings);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings__, NDR_POINTER_UNIQUE, "Pointer to Pdsaoxidbindings (DUALSTRINGARRAY)",hf_IOXIDResolver_ResolveOxid2_pdsaOxidBindings);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IOXIDResolver_dissect_struct_DUALSTRINGARRAY(tvb,offset,pinfo,tree,drep,hf_IOXIDResolver_ResolveOxid2_pdsaOxidBindings,0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_ipidRemUnknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid2_ipidRemUnknown_, NDR_POINTER_REF, "Pointer to Ipidremunknown (GUID)",hf_IOXIDResolver_ResolveOxid2_ipidRemUnknown);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_ipidRemUnknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid2_ipidRemUnknown, NULL);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_AuthnHint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid2_AuthnHint_, NDR_POINTER_REF, "Pointer to Authnhint (uint32)",hf_IOXIDResolver_ResolveOxid2_AuthnHint);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_AuthnHint_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ResolveOxid2_AuthnHint, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_ComVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ResolveOxid2_ComVersion_, NDR_POINTER_REF, "Pointer to Comversion (COMVERSION)",hf_IOXIDResolver_ResolveOxid2_ComVersion);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ResolveOxid2_ComVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IOXIDResolver_dissect_struct_COMVERSION(tvb,offset,pinfo,tree,drep,hf_IOXIDResolver_ResolveOxid2_ComVersion,0);
+
+       return offset;
+}
+
+/* IDL: WERROR ResolveOxid2( */
+/* IDL: [in] hyper pOxid, */
+/* IDL: [in] uint16 cRequestedProtseqs, */
+/* IDL: [in] [size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[*], */
+/* IDL: [out] [ref] DUALSTRINGARRAY **pdsaOxidBindings, */
+/* IDL: [out] [ref] GUID *ipidRemUnknown, */
+/* IDL: [out] [ref] uint32 *AuthnHint, */
+/* IDL: [out] [ref] COMVERSION *ComVersion */
+/* IDL: ); */
+
+static int
+IOXIDResolver_dissect_ResolveOxid2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ResolveOxid2";
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_pdsaOxidBindings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_ipidRemUnknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_AuthnHint(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_ComVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_ResolveOxid2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ResolveOxid2";
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_pOxid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_cRequestedProtseqs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IOXIDResolver_dissect_element_ResolveOxid2_arRequestedProtseqs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ServerAlive2_info_, NDR_POINTER_REF, "Pointer to Info (COMINFO)",hf_IOXIDResolver_ServerAlive2_info);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IOXIDResolver_dissect_struct_COMINFO(tvb,offset,pinfo,tree,drep,hf_IOXIDResolver_ServerAlive2_info,0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_dualstring(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ServerAlive2_dualstring_, NDR_POINTER_REF, "Pointer to Dualstring (DUALSTRINGARRAY)",hf_IOXIDResolver_ServerAlive2_dualstring);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_dualstring_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IOXIDResolver_dissect_struct_DUALSTRINGARRAY(tvb,offset,pinfo,tree,drep,hf_IOXIDResolver_ServerAlive2_dualstring,0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ServerAlive2_unknown2_, NDR_POINTER_REF, "Pointer to Unknown2 (uint8)",hf_IOXIDResolver_ServerAlive2_unknown2);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ServerAlive2_unknown2, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ServerAlive2_unknown3_, NDR_POINTER_REF, "Pointer to Unknown3 (uint8)",hf_IOXIDResolver_ServerAlive2_unknown3);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_unknown3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ServerAlive2_unknown3, 0);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IOXIDResolver_dissect_element_ServerAlive2_unknown4_, NDR_POINTER_REF, "Pointer to Unknown4 (uint8)",hf_IOXIDResolver_ServerAlive2_unknown4);
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_element_ServerAlive2_unknown4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_ServerAlive2_unknown4, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR ServerAlive2( */
+/* IDL: [out] [ref] COMINFO *info, */
+/* IDL: [out] [ref] DUALSTRINGARRAY *dualstring, */
+/* IDL: [out] [ref] uint8 *unknown2, */
+/* IDL: [out] [ref] uint8 *unknown3, */
+/* IDL: [out] [ref] uint8 *unknown4 */
+/* IDL: ); */
+
+static int
+IOXIDResolver_dissect_ServerAlive2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ServerAlive2";
+       offset = IOXIDResolver_dissect_element_ServerAlive2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ServerAlive2_dualstring(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ServerAlive2_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ServerAlive2_unknown3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IOXIDResolver_dissect_element_ServerAlive2_unknown4(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IOXIDResolver_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IOXIDResolver_dissect_ServerAlive2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ServerAlive2";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector IOXIDResolver_dissectors[] = {
+       { 0, "ResolveOxid",
+          IOXIDResolver_dissect_ResolveOxid_request, IOXIDResolver_dissect_ResolveOxid_response},
+       { 1, "SimplePing",
+          IOXIDResolver_dissect_SimplePing_request, IOXIDResolver_dissect_SimplePing_response},
+       { 2, "ComplexPing",
+          IOXIDResolver_dissect_ComplexPing_request, IOXIDResolver_dissect_ComplexPing_response},
+       { 3, "ServerAlive",
+          IOXIDResolver_dissect_ServerAlive_request, IOXIDResolver_dissect_ServerAlive_response},
+       { 4, "ResolveOxid2",
+          IOXIDResolver_dissect_ResolveOxid2_request, IOXIDResolver_dissect_ResolveOxid2_response},
+       { 5, "ServerAlive2",
+          IOXIDResolver_dissect_ServerAlive2_request, IOXIDResolver_dissect_ServerAlive2_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_IOXIDResolver(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_IOXIDResolver_ResolveOxid2_pOxid,
+         { "Poxid", "IOXIDResolver.ResolveOxid2.pOxid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ServerAlive2_info,
+         { "Info", "IOXIDResolver.ServerAlive2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_werror,
+         { "Windows Error", "IOXIDResolver.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ServerAlive2_unknown3,
+         { "Unknown3", "IOXIDResolver.ServerAlive2.unknown3", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid2_AuthnHint,
+         { "Authnhint", "IOXIDResolver.ResolveOxid2.AuthnHint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid_pAuthnHint,
+         { "Pauthnhint", "IOXIDResolver.ResolveOxid.pAuthnHint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid2_arRequestedProtseqs,
+         { "Arrequestedprotseqs", "IOXIDResolver.ResolveOxid2.arRequestedProtseqs", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid2_cRequestedProtseqs,
+         { "Crequestedprotseqs", "IOXIDResolver.ResolveOxid2.cRequestedProtseqs", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_cDelFromSet,
+         { "Cdelfromset", "IOXIDResolver.ComplexPing.cDelFromSet", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_cAddToSet,
+         { "Caddtoset", "IOXIDResolver.ComplexPing.cAddToSet", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_opnum,
+         { "Operation", "IOXIDResolver.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_PingBackoffFactor,
+         { "Pingbackofffactor", "IOXIDResolver.ComplexPing.PingBackoffFactor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_DelFromSet,
+         { "Delfromset", "IOXIDResolver.ComplexPing.DelFromSet", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid2_pdsaOxidBindings,
+         { "Pdsaoxidbindings", "IOXIDResolver.ResolveOxid2.pdsaOxidBindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid_ppdsaOxidBindings,
+         { "Ppdsaoxidbindings", "IOXIDResolver.ResolveOxid.ppdsaOxidBindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_AddToSet,
+         { "Addtoset", "IOXIDResolver.ComplexPing.AddToSet", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid2_ComVersion,
+         { "Comversion", "IOXIDResolver.ResolveOxid2.ComVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid_pipidRemUnknown,
+         { "Pipidremunknown", "IOXIDResolver.ResolveOxid.pipidRemUnknown", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid2_ipidRemUnknown,
+         { "Ipidremunknown", "IOXIDResolver.ResolveOxid2.ipidRemUnknown", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_SimplePing_SetId,
+         { "Setid", "IOXIDResolver.SimplePing.SetId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid_arRequestedProtseqs,
+         { "Arrequestedprotseqs", "IOXIDResolver.ResolveOxid.arRequestedProtseqs", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ServerAlive2_unknown4,
+         { "Unknown4", "IOXIDResolver.ServerAlive2.unknown4", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_COMINFO_unknown1,
+         { "Unknown1", "IOXIDResolver.COMINFO.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ServerAlive2_unknown2,
+         { "Unknown2", "IOXIDResolver.ServerAlive2.unknown2", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_COMINFO_version,
+         { "Version", "IOXIDResolver.COMINFO.version", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid_pOxid,
+         { "Poxid", "IOXIDResolver.ResolveOxid.pOxid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_SequenceNum,
+         { "Sequencenum", "IOXIDResolver.ComplexPing.SequenceNum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ComplexPing_SetId,
+         { "Setid", "IOXIDResolver.ComplexPing.SetId", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ServerAlive2_dualstring,
+         { "Dualstring", "IOXIDResolver.ServerAlive2.dualstring", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IOXIDResolver_ResolveOxid_cRequestedProtseqs,
+         { "Crequestedprotseqs", "IOXIDResolver.ResolveOxid.cRequestedProtseqs", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_IOXIDResolver,
+               &ett_IOXIDResolver_COMINFO,
+       };
+
+       proto_dcerpc_IOXIDResolver = proto_register_protocol("Object Exporter ID Resolver", "IOXIDRESOLVER", "IOXIDResolver");
+       proto_register_field_array(proto_dcerpc_IOXIDResolver, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_IOXIDResolver(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_IOXIDResolver, ett_dcerpc_IOXIDResolver,
+               &uuid_dcerpc_IOXIDResolver, ver_dcerpc_IOXIDResolver,
+               IOXIDResolver_dissectors, hf_IOXIDResolver_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-oxidresolver.h b/bin/default/librpc/gen_ndr/packet-dcerpc-oxidresolver.h
new file mode 100644 (file)
index 0000000..9e58f9e
--- /dev/null
@@ -0,0 +1,23 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/oxidresolver.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/oxidresolver.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-orpc.h"
+
+#ifndef __PACKET_DCERPC_IOXIDRESOLVER_H
+#define __PACKET_DCERPC_IOXIDRESOLVER_H
+
+int IOXIDResolver_dissect_struct_COMINFO(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_IOXIDRESOLVER_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-policyagent.c b/bin/default/librpc/gen_ndr/packet-dcerpc-policyagent.c
new file mode 100644 (file)
index 0000000..8a8044b
--- /dev/null
@@ -0,0 +1,106 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/policyagent.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/policyagent.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-policyagent.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_policyagent = -1;
+
+
+/* Header field declarations */
+static gint hf_policyagent_werror = -1;
+static gint hf_policyagent_opnum = -1;
+
+static gint proto_dcerpc_policyagent = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_policyagent = {
+       0xd335b8f6, 0xcb31, 0x11d0,
+       { 0xb0, 0xf9, 0x00, 0x60, 0x97, 0xba, 0x4e, 0x54 }
+};
+static guint16 ver_dcerpc_policyagent = 1;
+
+
+/* IDL: WERROR policyagent_Dummy( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+policyagent_dissect_Dummy_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Dummy";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_policyagent_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+policyagent_dissect_Dummy_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Dummy";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector policyagent_dissectors[] = {
+       { 0, "Dummy",
+          policyagent_dissect_Dummy_request, policyagent_dissect_Dummy_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_policyagent(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_policyagent_werror,
+         { "Windows Error", "policyagent.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_policyagent_opnum,
+         { "Operation", "policyagent.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_policyagent,
+       };
+
+       proto_dcerpc_policyagent = proto_register_protocol("IPSec Policy Agent", "POLICYAGENT", "policyagent");
+       proto_register_field_array(proto_dcerpc_policyagent, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_policyagent(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_policyagent, ett_dcerpc_policyagent,
+               &uuid_dcerpc_policyagent, ver_dcerpc_policyagent,
+               policyagent_dissectors, hf_policyagent_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-policyagent.h b/bin/default/librpc/gen_ndr/packet-dcerpc-policyagent.h
new file mode 100644 (file)
index 0000000..dee87c5
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/policyagent.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/policyagent.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_POLICYAGENT_H
+#define __PACKET_DCERPC_POLICYAGENT_H
+
+#endif /* __PACKET_DCERPC_POLICYAGENT_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-remact.c b/bin/default/librpc/gen_ndr/packet-dcerpc-remact.c
new file mode 100644 (file)
index 0000000..a33c81e
--- /dev/null
@@ -0,0 +1,568 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/remact.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/remact.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-remact.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_IRemoteActivation = -1;
+
+
+/* Header field declarations */
+static gint hf_IRemoteActivation_RemoteActivation_ifaces = -1;
+static gint hf_IRemoteActivation_werror = -1;
+static gint hf_IRemoteActivation_RemoteActivation_AuthnHint = -1;
+static gint hf_IRemoteActivation_RemoteActivation_protseq = -1;
+static gint hf_IRemoteActivation_RemoteActivation_pIIDs = -1;
+static gint hf_IRemoteActivation_RemoteActivation_pObjectStorage = -1;
+static gint hf_IRemoteActivation_RemoteActivation_Interfaces = -1;
+static gint hf_IRemoteActivation_RemoteActivation_pdsaOxidBindings = -1;
+static gint hf_IRemoteActivation_RemoteActivation_ipidRemUnknown = -1;
+static gint hf_IRemoteActivation_RemoteActivation_results = -1;
+static gint hf_IRemoteActivation_RemoteActivation_that = -1;
+static gint hf_IRemoteActivation_RemoteActivation_pOxid = -1;
+static gint hf_IRemoteActivation_RemoteActivation_ClientImpLevel = -1;
+static gint hf_IRemoteActivation_RemoteActivation_num_protseqs = -1;
+static gint hf_IRemoteActivation_RemoteActivation_pwszObjectName = -1;
+static gint hf_IRemoteActivation_opnum = -1;
+static gint hf_IRemoteActivation_RemoteActivation_Clsid = -1;
+static gint hf_IRemoteActivation_RemoteActivation_hr = -1;
+static gint hf_IRemoteActivation_RemoteActivation_Mode = -1;
+static gint hf_IRemoteActivation_RemoteActivation_ServerVersion = -1;
+static gint hf_IRemoteActivation_RemoteActivation_this_object = -1;
+
+static gint proto_dcerpc_IRemoteActivation = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_IRemoteActivation = {
+       0x4d9f4ab8, 0x7d1c, 0x11cf,
+       { 0x86, 0x1e, 0x00, 0x20, 0xaf, 0x6e, 0x7c, 0x57 }
+};
+static guint16 ver_dcerpc_IRemoteActivation = 0;
+
+const value_string IRemoteActivation_imp_levels_vals[] = {
+       { RPC_C_IMP_LEVEL_DEFAULT, "RPC_C_IMP_LEVEL_DEFAULT" },
+       { RPC_C_IMP_LEVEL_ANONYMOUS, "RPC_C_IMP_LEVEL_ANONYMOUS" },
+       { RPC_C_IMP_LEVEL_IDENTIFY, "RPC_C_IMP_LEVEL_IDENTIFY" },
+       { RPC_C_IMP_LEVEL_IMPERSONATE, "RPC_C_IMP_LEVEL_IMPERSONATE" },
+       { RPC_C_IMP_LEVEL_DELEGATE, "RPC_C_IMP_LEVEL_DELEGATE" },
+{ 0, NULL }
+};
+static int IRemoteActivation_dissect_element_RemoteActivation_this_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_that(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_that_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_Clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pwszObjectName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pwszObjectName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pObjectStorage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pObjectStorage_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ClientImpLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_Mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_Interfaces(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pIIDs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pIIDs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pIIDs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_num_protseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_protseq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_protseq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pOxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pOxid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pdsaOxidBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_pdsaOxidBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ipidRemUnknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ipidRemUnknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_AuthnHint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_AuthnHint_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ServerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ServerVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_hr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_hr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ifaces(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ifaces_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_ifaces__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_results(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int IRemoteActivation_dissect_element_RemoteActivation_results_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        RPC_C_IMP_LEVEL_DEFAULT=0, */
+/* IDL:        RPC_C_IMP_LEVEL_ANONYMOUS=1, */
+/* IDL:        RPC_C_IMP_LEVEL_IDENTIFY=2, */
+/* IDL:        RPC_C_IMP_LEVEL_IMPERSONATE=3, */
+/* IDL:        RPC_C_IMP_LEVEL_DELEGATE=4, */
+/* IDL: } */
+
+int
+IRemoteActivation_dissect_enum_imp_levels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_this_object(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IRemoteActivation_dissect_struct_ORPCTHIS(tvb,offset,pinfo,tree,drep,hf_IRemoteActivation_RemoteActivation_this_object,0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_that(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_that_, NDR_POINTER_REF, "Pointer to That (ORPCTHAT)",hf_IRemoteActivation_RemoteActivation_that);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_that_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IRemoteActivation_dissect_struct_ORPCTHAT(tvb,offset,pinfo,tree,drep,hf_IRemoteActivation_RemoteActivation_that,0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_Clsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_Clsid, NULL);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pwszObjectName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_pwszObjectName_, NDR_POINTER_REF, "Pointer to Pwszobjectname (uint16)",hf_IRemoteActivation_RemoteActivation_pwszObjectName);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pwszObjectName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_IRemoteActivation_RemoteActivation_pwszObjectName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pObjectStorage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_pObjectStorage_, NDR_POINTER_REF, "Pointer to Pobjectstorage (MInterfacePointer)",hf_IRemoteActivation_RemoteActivation_pObjectStorage);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pObjectStorage_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IRemoteActivation_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_IRemoteActivation_RemoteActivation_pObjectStorage,0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ClientImpLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_ClientImpLevel, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_Mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_Mode, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_Interfaces(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_Interfaces, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pIIDs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_pIIDs_, NDR_POINTER_REF, "Pointer to Piids (GUID)",hf_IRemoteActivation_RemoteActivation_pIIDs);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pIIDs_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_pIIDs__);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pIIDs__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_pIIDs, NULL);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_num_protseqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_num_protseqs, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_protseq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_protseq_);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_protseq_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_protseq, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pOxid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_pOxid_, NDR_POINTER_REF, "Pointer to Poxid (hyper)",hf_IRemoteActivation_RemoteActivation_pOxid);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pOxid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_pOxid, NULL);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pdsaOxidBindings(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_pdsaOxidBindings_, NDR_POINTER_REF, "Pointer to Pdsaoxidbindings (DUALSTRINGARRAY)",hf_IRemoteActivation_RemoteActivation_pdsaOxidBindings);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_pdsaOxidBindings_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IRemoteActivation_dissect_struct_DUALSTRINGARRAY(tvb,offset,pinfo,tree,drep,hf_IRemoteActivation_RemoteActivation_pdsaOxidBindings,0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ipidRemUnknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_ipidRemUnknown_, NDR_POINTER_REF, "Pointer to Ipidremunknown (GUID)",hf_IRemoteActivation_RemoteActivation_ipidRemUnknown);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ipidRemUnknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_ipidRemUnknown, NULL);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_AuthnHint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_AuthnHint_, NDR_POINTER_REF, "Pointer to Authnhint (uint32)",hf_IRemoteActivation_RemoteActivation_AuthnHint);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_AuthnHint_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_AuthnHint, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ServerVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_ServerVersion_, NDR_POINTER_REF, "Pointer to Serverversion (COMVERSION)",hf_IRemoteActivation_RemoteActivation_ServerVersion);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ServerVersion_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IRemoteActivation_dissect_struct_COMVERSION(tvb,offset,pinfo,tree,drep,hf_IRemoteActivation_RemoteActivation_ServerVersion,0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_hr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_hr_, NDR_POINTER_REF, "Pointer to Hr (WERROR)",hf_IRemoteActivation_RemoteActivation_hr);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_hr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_hr, 0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ifaces(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_ifaces_);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ifaces_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_ifaces__, NDR_POINTER_REF, "Pointer to Ifaces (MInterfacePointer)",hf_IRemoteActivation_RemoteActivation_ifaces);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_ifaces__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = IRemoteActivation_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_IRemoteActivation_RemoteActivation_ifaces,0);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_results(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, IRemoteActivation_dissect_element_RemoteActivation_results_);
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_element_RemoteActivation_results_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_RemoteActivation_results, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR RemoteActivation( */
+/* IDL: [in] ORPCTHIS this_object, */
+/* IDL: [out] [ref] ORPCTHAT *that, */
+/* IDL: [in] GUID Clsid, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *pwszObjectName, */
+/* IDL: [ref] [in] MInterfacePointer *pObjectStorage, */
+/* IDL: [in] uint32 ClientImpLevel, */
+/* IDL: [in] uint32 Mode, */
+/* IDL: [in] [range(1,32768)] uint32 Interfaces, */
+/* IDL: [ref] [in] [size_is(Interfaces)] GUID *pIIDs, */
+/* IDL: [in] uint16 num_protseqs, */
+/* IDL: [in] [size_is(num_protseqs)] uint16 protseq[*], */
+/* IDL: [out] [ref] hyper *pOxid, */
+/* IDL: [out] [ref] DUALSTRINGARRAY *pdsaOxidBindings, */
+/* IDL: [out] [ref] GUID *ipidRemUnknown, */
+/* IDL: [out] [ref] uint32 *AuthnHint, */
+/* IDL: [out] [ref] COMVERSION *ServerVersion, */
+/* IDL: [out] [ref] WERROR *hr, */
+/* IDL: [out] [ref] [size_is(Interfaces)] MInterfacePointer *ifaces[*], */
+/* IDL: [out] [size_is(Interfaces)] WERROR results[*] */
+/* IDL: ); */
+
+static int
+IRemoteActivation_dissect_RemoteActivation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RemoteActivation";
+       offset = IRemoteActivation_dissect_element_RemoteActivation_that(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_pOxid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_pdsaOxidBindings(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_ipidRemUnknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_AuthnHint(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_ServerVersion(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_hr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_ifaces(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = IRemoteActivation_dissect_element_RemoteActivation_results(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_IRemoteActivation_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+IRemoteActivation_dissect_RemoteActivation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RemoteActivation";
+       offset = IRemoteActivation_dissect_element_RemoteActivation_this_object(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_Clsid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_pwszObjectName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_pObjectStorage(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_ClientImpLevel(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_Mode(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_Interfaces(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_pIIDs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_num_protseqs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = IRemoteActivation_dissect_element_RemoteActivation_protseq(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector IRemoteActivation_dissectors[] = {
+       { 0, "RemoteActivation",
+          IRemoteActivation_dissect_RemoteActivation_request, IRemoteActivation_dissect_RemoteActivation_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_IRemoteActivation(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_IRemoteActivation_RemoteActivation_ifaces,
+         { "Ifaces", "IRemoteActivation.RemoteActivation.ifaces", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_werror,
+         { "Windows Error", "IRemoteActivation.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_AuthnHint,
+         { "Authnhint", "IRemoteActivation.RemoteActivation.AuthnHint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_protseq,
+         { "Protseq", "IRemoteActivation.RemoteActivation.protseq", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_pIIDs,
+         { "Piids", "IRemoteActivation.RemoteActivation.pIIDs", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_pObjectStorage,
+         { "Pobjectstorage", "IRemoteActivation.RemoteActivation.pObjectStorage", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_Interfaces,
+         { "Interfaces", "IRemoteActivation.RemoteActivation.Interfaces", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_pdsaOxidBindings,
+         { "Pdsaoxidbindings", "IRemoteActivation.RemoteActivation.pdsaOxidBindings", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_ipidRemUnknown,
+         { "Ipidremunknown", "IRemoteActivation.RemoteActivation.ipidRemUnknown", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_results,
+         { "Results", "IRemoteActivation.RemoteActivation.results", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_that,
+         { "That", "IRemoteActivation.RemoteActivation.that", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_pOxid,
+         { "Poxid", "IRemoteActivation.RemoteActivation.pOxid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_ClientImpLevel,
+         { "Clientimplevel", "IRemoteActivation.RemoteActivation.ClientImpLevel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_num_protseqs,
+         { "Num Protseqs", "IRemoteActivation.RemoteActivation.num_protseqs", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_pwszObjectName,
+         { "Pwszobjectname", "IRemoteActivation.RemoteActivation.pwszObjectName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_opnum,
+         { "Operation", "IRemoteActivation.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_Clsid,
+         { "Clsid", "IRemoteActivation.RemoteActivation.Clsid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_hr,
+         { "Hr", "IRemoteActivation.RemoteActivation.hr", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_Mode,
+         { "Mode", "IRemoteActivation.RemoteActivation.Mode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_ServerVersion,
+         { "Serverversion", "IRemoteActivation.RemoteActivation.ServerVersion", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_IRemoteActivation_RemoteActivation_this_object,
+         { "This Object", "IRemoteActivation.RemoteActivation.this_object", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_IRemoteActivation,
+       };
+
+       proto_dcerpc_IRemoteActivation = proto_register_protocol("NULL", "IREMOTEACTIVATION", "IRemoteActivation");
+       proto_register_field_array(proto_dcerpc_IRemoteActivation, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_IRemoteActivation(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_IRemoteActivation, ett_dcerpc_IRemoteActivation,
+               &uuid_dcerpc_IRemoteActivation, ver_dcerpc_IRemoteActivation,
+               IRemoteActivation_dissectors, hf_IRemoteActivation_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-remact.h b/bin/default/librpc/gen_ndr/packet-dcerpc-remact.h
new file mode 100644 (file)
index 0000000..0e1a3bc
--- /dev/null
@@ -0,0 +1,31 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/remact.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/remact.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-orpc.h"
+
+#ifndef __PACKET_DCERPC_IREMOTEACTIVATION_H
+#define __PACKET_DCERPC_IREMOTEACTIVATION_H
+
+#define MODE_GET_CLASS_OBJECT  ( 0xffffffff )
+
+#define RPC_C_IMP_LEVEL_DEFAULT (0)
+#define RPC_C_IMP_LEVEL_ANONYMOUS (1)
+#define RPC_C_IMP_LEVEL_IDENTIFY (2)
+#define RPC_C_IMP_LEVEL_IMPERSONATE (3)
+#define RPC_C_IMP_LEVEL_DELEGATE (4)
+extern const value_string IRemoteActivation_imp_levels_vals[];
+int IRemoteActivation_dissect_enum_imp_levels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_IREMOTEACTIVATION_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-rot.c b/bin/default/librpc/gen_ndr/packet-dcerpc-rot.c
new file mode 100644 (file)
index 0000000..5f71628
--- /dev/null
@@ -0,0 +1,550 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/rot.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/rot.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-rot.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_rot = -1;
+
+
+/* Header field declarations */
+static gint hf_rot_rot_set_modification_time_t = -1;
+static gint hf_rot_rot_add_flags = -1;
+static gint hf_rot_rot_add_moniker = -1;
+static gint hf_rot_rot_add_unk = -1;
+static gint hf_rot_rot_get_modification_time_moniker = -1;
+static gint hf_rot_rot_get_interface_pointer_ip = -1;
+static gint hf_rot_rot_get_interface_pointer_moniker = -1;
+static gint hf_rot_opnum = -1;
+static gint hf_rot_werror = -1;
+static gint hf_rot_rot_set_modification_time_rotid = -1;
+static gint hf_rot_rot_get_modification_time_t = -1;
+static gint hf_rot_rot_add_rotid = -1;
+static gint hf_rot_rot_enum_EnumMoniker = -1;
+static gint hf_rot_rot_remove_rotid = -1;
+static gint hf_rot_rot_is_listed_moniker = -1;
+
+static gint proto_dcerpc_rot = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_rot = {
+       0xb9e79e60, 0x3d52, 0x11ce,
+       { 0xaa, 0xa1, 0x00, 0x00, 0x69, 0x01, 0x29, 0x3f }
+};
+static guint16 ver_dcerpc_rot = 0;
+
+static int rot_dissect_element_add_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_add_unk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_add_unk_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_add_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_add_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_add_rotid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_add_rotid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_remove_rotid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_is_listed_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_is_listed_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_interface_pointer_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_interface_pointer_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_interface_pointer_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_interface_pointer_ip_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_set_modification_time_rotid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_set_modification_time_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_set_modification_time_t_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_modification_time_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_modification_time_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_modification_time_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_get_modification_time_t_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_enum_EnumMoniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int rot_dissect_element_enum_EnumMoniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+static int
+rot_dissect_element_add_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rot_rot_add_flags, 0);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_add_unk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_add_unk_, NDR_POINTER_REF, "Pointer to Unk (MInterfacePointer)",hf_rot_rot_add_unk);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_add_unk_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_add_unk,0);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_add_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_add_moniker_, NDR_POINTER_REF, "Pointer to Moniker (MInterfacePointer)",hf_rot_rot_add_moniker);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_add_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_add_moniker,0);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_add_rotid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_add_rotid_, NDR_POINTER_REF, "Pointer to Rotid (uint32)",hf_rot_rot_add_rotid);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_add_rotid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rot_rot_add_rotid, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_add( */
+/* IDL: [in] uint32 flags, */
+/* IDL: [ref] [in] MInterfacePointer *unk, */
+/* IDL: [ref] [in] MInterfacePointer *moniker, */
+/* IDL: [out] [ref] uint32 *rotid */
+/* IDL: ); */
+
+static int
+rot_dissect_add_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="add";
+       offset = rot_dissect_element_add_rotid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_add_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="add";
+       offset = rot_dissect_element_add_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rot_dissect_element_add_unk(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rot_dissect_element_add_moniker(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rot_dissect_element_remove_rotid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rot_rot_remove_rotid, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_remove( */
+/* IDL: [in] uint32 rotid */
+/* IDL: ); */
+
+static int
+rot_dissect_remove_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="remove";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_remove_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="remove";
+       offset = rot_dissect_element_remove_rotid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rot_dissect_element_is_listed_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_is_listed_moniker_, NDR_POINTER_REF, "Pointer to Moniker (MInterfacePointer)",hf_rot_rot_is_listed_moniker);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_is_listed_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_is_listed_moniker,0);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_is_listed( */
+/* IDL: [ref] [in] MInterfacePointer *moniker */
+/* IDL: ); */
+
+static int
+rot_dissect_is_listed_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="is_listed";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_is_listed_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="is_listed";
+       offset = rot_dissect_element_is_listed_moniker(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rot_dissect_element_get_interface_pointer_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_get_interface_pointer_moniker_, NDR_POINTER_REF, "Pointer to Moniker (MInterfacePointer)",hf_rot_rot_get_interface_pointer_moniker);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_get_interface_pointer_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_get_interface_pointer_moniker,0);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_get_interface_pointer_ip(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_get_interface_pointer_ip_, NDR_POINTER_REF, "Pointer to Ip (MInterfacePointer)",hf_rot_rot_get_interface_pointer_ip);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_get_interface_pointer_ip_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_get_interface_pointer_ip,0);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_get_interface_pointer( */
+/* IDL: [ref] [in] MInterfacePointer *moniker, */
+/* IDL: [out] [ref] MInterfacePointer *ip */
+/* IDL: ); */
+
+static int
+rot_dissect_get_interface_pointer_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="get_interface_pointer";
+       offset = rot_dissect_element_get_interface_pointer_ip(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_get_interface_pointer_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="get_interface_pointer";
+       offset = rot_dissect_element_get_interface_pointer_moniker(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rot_dissect_element_set_modification_time_rotid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_rot_rot_set_modification_time_rotid, 0);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_set_modification_time_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_set_modification_time_t_, NDR_POINTER_REF, "Pointer to T (NTTIME)",hf_rot_rot_set_modification_time_t);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_set_modification_time_t_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_rot_rot_set_modification_time_t);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_set_modification_time( */
+/* IDL: [in] uint32 rotid, */
+/* IDL: [ref] [in] NTTIME *t */
+/* IDL: ); */
+
+static int
+rot_dissect_set_modification_time_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="set_modification_time";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_set_modification_time_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="set_modification_time";
+       offset = rot_dissect_element_set_modification_time_rotid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = rot_dissect_element_set_modification_time_t(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rot_dissect_element_get_modification_time_moniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_get_modification_time_moniker_, NDR_POINTER_REF, "Pointer to Moniker (MInterfacePointer)",hf_rot_rot_get_modification_time_moniker);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_get_modification_time_moniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_get_modification_time_moniker,0);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_get_modification_time_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_get_modification_time_t_, NDR_POINTER_REF, "Pointer to T (NTTIME)",hf_rot_rot_get_modification_time_t);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_get_modification_time_t_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_rot_rot_get_modification_time_t);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_get_modification_time( */
+/* IDL: [ref] [in] MInterfacePointer *moniker, */
+/* IDL: [out] [ref] NTTIME *t */
+/* IDL: ); */
+
+static int
+rot_dissect_get_modification_time_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="get_modification_time";
+       offset = rot_dissect_element_get_modification_time_t(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_get_modification_time_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="get_modification_time";
+       offset = rot_dissect_element_get_modification_time_moniker(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+rot_dissect_element_enum_EnumMoniker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, rot_dissect_element_enum_EnumMoniker_, NDR_POINTER_REF, "Pointer to Enummoniker (MInterfacePointer)",hf_rot_rot_enum_EnumMoniker);
+
+       return offset;
+}
+
+static int
+rot_dissect_element_enum_EnumMoniker_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = rot_dissect_struct_MInterfacePointer(tvb,offset,pinfo,tree,drep,hf_rot_rot_enum_EnumMoniker,0);
+
+       return offset;
+}
+
+/* IDL: WERROR rot_enum( */
+/* IDL: [out] [ref] MInterfacePointer *EnumMoniker */
+/* IDL: ); */
+
+static int
+rot_dissect_enum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="enum";
+       offset = rot_dissect_element_enum_EnumMoniker(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_rot_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+rot_dissect_enum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="enum";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector rot_dissectors[] = {
+       { 0, "add",
+          rot_dissect_add_request, rot_dissect_add_response},
+       { 1, "remove",
+          rot_dissect_remove_request, rot_dissect_remove_response},
+       { 2, "is_listed",
+          rot_dissect_is_listed_request, rot_dissect_is_listed_response},
+       { 3, "get_interface_pointer",
+          rot_dissect_get_interface_pointer_request, rot_dissect_get_interface_pointer_response},
+       { 4, "set_modification_time",
+          rot_dissect_set_modification_time_request, rot_dissect_set_modification_time_response},
+       { 5, "get_modification_time",
+          rot_dissect_get_modification_time_request, rot_dissect_get_modification_time_response},
+       { 6, "enum",
+          rot_dissect_enum_request, rot_dissect_enum_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_rot(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_rot_rot_set_modification_time_t,
+         { "T", "rot.rot_set_modification_time.t", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_add_flags,
+         { "Flags", "rot.rot_add.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_add_moniker,
+         { "Moniker", "rot.rot_add.moniker", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_add_unk,
+         { "Unk", "rot.rot_add.unk", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_get_modification_time_moniker,
+         { "Moniker", "rot.rot_get_modification_time.moniker", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_get_interface_pointer_ip,
+         { "Ip", "rot.rot_get_interface_pointer.ip", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_get_interface_pointer_moniker,
+         { "Moniker", "rot.rot_get_interface_pointer.moniker", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rot_opnum,
+         { "Operation", "rot.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rot_werror,
+         { "Windows Error", "rot.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_rot_rot_set_modification_time_rotid,
+         { "Rotid", "rot.rot_set_modification_time.rotid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_get_modification_time_t,
+         { "T", "rot.rot_get_modification_time.t", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_add_rotid,
+         { "Rotid", "rot.rot_add.rotid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_enum_EnumMoniker,
+         { "Enummoniker", "rot.rot_enum.EnumMoniker", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_remove_rotid,
+         { "Rotid", "rot.rot_remove.rotid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_rot_rot_is_listed_moniker,
+         { "Moniker", "rot.rot_is_listed.moniker", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_rot,
+       };
+
+       proto_dcerpc_rot = proto_register_protocol("NULL", "ROT", "rot");
+       proto_register_field_array(proto_dcerpc_rot, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_rot(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_rot, ett_dcerpc_rot,
+               &uuid_dcerpc_rot, ver_dcerpc_rot,
+               rot_dissectors, hf_rot_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-rot.h b/bin/default/librpc/gen_ndr/packet-dcerpc-rot.h
new file mode 100644 (file)
index 0000000..e9b027e
--- /dev/null
@@ -0,0 +1,21 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/rot.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/rot.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-orpc.h"
+
+#ifndef __PACKET_DCERPC_ROT_H
+#define __PACKET_DCERPC_ROT_H
+
+#endif /* __PACKET_DCERPC_ROT_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-samr.c b/bin/default/librpc/gen_ndr/packet-dcerpc-samr.c
new file mode 100644 (file)
index 0000000..7c4bf01
--- /dev/null
@@ -0,0 +1,16915 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/samr.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/samr.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-samr.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_samr = -1;
+static gint ett_samr_security_secinfo = -1;
+static gint ett_samr_samr_AcctFlags = -1;
+static gint ett_samr_samr_ConnectAccessMask = -1;
+static gint ett_samr_samr_UserAccessMask = -1;
+static gint ett_samr_samr_DomainAccessMask = -1;
+static gint ett_samr_samr_GroupAccessMask = -1;
+static gint ett_samr_samr_AliasAccessMask = -1;
+static gint ett_samr_samr_SamEntry = -1;
+static gint ett_samr_samr_SamArray = -1;
+static gint ett_samr_samr_PasswordProperties = -1;
+static gint ett_samr_samr_DomInfo1 = -1;
+static gint ett_samr_samr_DomGeneralInformation = -1;
+static gint ett_samr_samr_DomInfo3 = -1;
+static gint ett_samr_samr_DomOEMInformation = -1;
+static gint ett_samr_samr_DomInfo5 = -1;
+static gint ett_samr_samr_DomInfo6 = -1;
+static gint ett_samr_samr_DomInfo7 = -1;
+static gint ett_samr_samr_DomInfo8 = -1;
+static gint ett_samr_samr_DomInfo9 = -1;
+static gint ett_samr_samr_DomGeneralInformation2 = -1;
+static gint ett_samr_samr_DomInfo12 = -1;
+static gint ett_samr_samr_DomInfo13 = -1;
+static gint ett_samr_samr_DomainInfo = -1;
+static gint ett_samr_samr_Ids = -1;
+static gint ett_samr_samr_GroupAttrs = -1;
+static gint ett_samr_samr_GroupInfoAll = -1;
+static gint ett_samr_samr_GroupInfoAttributes = -1;
+static gint ett_samr_samr_GroupInfoDescription = -1;
+static gint ett_samr_samr_GroupInfo = -1;
+static gint ett_samr_samr_RidAttrArray = -1;
+static gint ett_samr_samr_AliasInfoAll = -1;
+static gint ett_samr_samr_AliasInfo = -1;
+static gint ett_samr_samr_UserInfo1 = -1;
+static gint ett_samr_samr_UserInfo2 = -1;
+static gint ett_samr_samr_LogonHours = -1;
+static gint ett_samr_samr_UserInfo3 = -1;
+static gint ett_samr_samr_UserInfo4 = -1;
+static gint ett_samr_samr_UserInfo5 = -1;
+static gint ett_samr_samr_UserInfo6 = -1;
+static gint ett_samr_samr_UserInfo7 = -1;
+static gint ett_samr_samr_UserInfo8 = -1;
+static gint ett_samr_samr_UserInfo9 = -1;
+static gint ett_samr_samr_UserInfo10 = -1;
+static gint ett_samr_samr_UserInfo11 = -1;
+static gint ett_samr_samr_UserInfo12 = -1;
+static gint ett_samr_samr_UserInfo13 = -1;
+static gint ett_samr_samr_UserInfo14 = -1;
+static gint ett_samr_samr_UserInfo16 = -1;
+static gint ett_samr_samr_UserInfo17 = -1;
+static gint ett_samr_samr_Password = -1;
+static gint ett_samr_samr_UserInfo18 = -1;
+static gint ett_samr_samr_UserInfo20 = -1;
+static gint ett_samr_samr_FieldsPresent = -1;
+static gint ett_samr_samr_UserInfo21 = -1;
+static gint ett_samr_samr_CryptPassword = -1;
+static gint ett_samr_samr_UserInfo23 = -1;
+static gint ett_samr_samr_UserInfo24 = -1;
+static gint ett_samr_samr_CryptPasswordEx = -1;
+static gint ett_samr_samr_UserInfo25 = -1;
+static gint ett_samr_samr_UserInfo26 = -1;
+static gint ett_samr_samr_UserInfo = -1;
+static gint ett_samr_samr_RidWithAttribute = -1;
+static gint ett_samr_samr_RidWithAttributeArray = -1;
+static gint ett_samr_samr_DispEntryGeneral = -1;
+static gint ett_samr_samr_DispInfoGeneral = -1;
+static gint ett_samr_samr_DispEntryFull = -1;
+static gint ett_samr_samr_DispInfoFull = -1;
+static gint ett_samr_samr_DispEntryFullGroup = -1;
+static gint ett_samr_samr_DispInfoFullGroups = -1;
+static gint ett_samr_samr_DispEntryAscii = -1;
+static gint ett_samr_samr_DispInfoAscii = -1;
+static gint ett_samr_samr_DispInfo = -1;
+static gint ett_samr_samr_PwInfo = -1;
+static gint ett_samr_userPwdChangeFailureInformation = -1;
+static gint ett_samr_samr_ConnectInfo1 = -1;
+static gint ett_samr_samr_ConnectInfo = -1;
+static gint ett_samr_samr_ValidateFieldsPresent = -1;
+static gint ett_samr_samr_ValidationBlob = -1;
+static gint ett_samr_samr_ValidatePasswordInfo = -1;
+static gint ett_samr_samr_ValidatePasswordRepCtr = -1;
+static gint ett_samr_samr_ValidatePasswordRep = -1;
+static gint ett_samr_samr_ValidatePasswordReq3 = -1;
+static gint ett_samr_samr_ValidatePasswordReq2 = -1;
+static gint ett_samr_samr_ValidatePasswordReq1 = -1;
+static gint ett_samr_samr_ValidatePasswordReq = -1;
+
+
+/* Header field declarations */
+static gint hf_samr_samr_QueryDisplayInfo2_level = -1;
+static gint hf_samr_samr_Connect5_connect_handle = -1;
+static gint hf_samr_samr_Connect2_system_name = -1;
+static gint hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH = -1;
+static gint hf_samr_samr_DomainInfo_oem = -1;
+static gint hf_samr_samr_DispInfoAscii_entries = -1;
+static gint hf_samr_samr_QueryAliasInfo_level = -1;
+static gint hf_samr_samr_DispEntryFullGroup_idx = -1;
+static gint hf_samr_samr_QueryGroupInfo_info = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT = -1;
+static gint hf_samr_samr_UserInfo21_primary_gid = -1;
+static gint hf_samr_samr_DomGeneralInformation2_lockout_duration = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY = -1;
+static gint hf_samr_samr_DispInfoGeneral_count = -1;
+static gint hf_samr_samr_CreateUser_rid = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_total_size = -1;
+static gint hf_samr_samr_GetDomPwInfo_info = -1;
+static gint hf_samr_samr_QuerySecurity_sdbuf = -1;
+static gint hf_samr_samr_UserInfo3_workstations = -1;
+static gint hf_samr_samr_QueryUserInfo2_info = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_start_idx = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS = -1;
+static gint hf_samr_samr_DomGeneralInformation_num_users = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS = -1;
+static gint hf_samr_samr_UserInfo21_acct_flags = -1;
+static gint hf_samr_samr_CreateDomainGroup_access_mask = -1;
+static gint hf_samr_samr_UserInfo5_profile_path = -1;
+static gint hf_samr_samr_AcctFlags_ACB_PW_EXPIRED = -1;
+static gint hf_samr_samr_OpenUser_rid = -1;
+static gint hf_samr_samr_ValidatePasswordReq3_hash = -1;
+static gint hf_samr_samr_Connect2_access_mask = -1;
+static gint hf_samr_samr_SetUserInfo_user_handle = -1;
+static gint hf_samr_samr_QueryDomainInfo_info = -1;
+static gint hf_samr_samr_UserInfo_info16 = -1;
+static gint hf_samr_samr_SetBootKeyInformation_unknown1 = -1;
+static gint hf_samr_samr_GroupInfo_attributes = -1;
+static gint hf_samr_samr_DomInfo3_force_logoff_time = -1;
+static gint hf_samr_samr_ChangePasswordUser_new_nt_crypted = -1;
+static gint hf_samr_samr_ChangePasswordUser3_reject = -1;
+static gint hf_samr_samr_QueryDomainInfo2_info = -1;
+static gint hf_samr_samr_UserInfo1_description = -1;
+static gint hf_samr_samr_SetAliasInfo_info = -1;
+static gint hf_samr_samr_ChangePasswordUser_cross1_present = -1;
+static gint hf_samr_samr_UserInfo5_primary_gid = -1;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT = -1;
+static gint hf_samr_samr_Connect4_system_name = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_buf_size = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS = -1;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT = -1;
+static gint hf_samr_samr_Connect5_access_mask = -1;
+static gint hf_samr_samr_Ids_ids = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE = -1;
+static gint hf_samr_samr_UserInfo20_parameters = -1;
+static gint hf_samr_samr_UserInfo18_lm_pwd = -1;
+static gint hf_samr_samr_UserInfo1_account_name = -1;
+static gint hf_samr_samr_ChangePasswordUser2_lm_change = -1;
+static gint hf_samr_samr_UserInfo21_description = -1;
+static gint hf_samr_samr_UserInfo21_profile_path = -1;
+static gint hf_samr_samr_ValidatePassword_req = -1;
+static gint hf_samr_samr_AcctFlags_ACB_DISABLED = -1;
+static gint hf_samr_samr_UserInfo21_private_data_sensitive = -1;
+static gint hf_samr_samr_ChangePasswordUser_nt_cross = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME = -1;
+static gint hf_samr_samr_UserInfo21_rid = -1;
+static gint hf_samr_samr_OpenGroup_access_mask = -1;
+static gint hf_samr_samr_ValidatePasswordReq3_password = -1;
+static gint hf_samr_samr_UserInfo5_logon_script = -1;
+static gint hf_samr_samr_RidWithAttributeArray_count = -1;
+static gint hf_samr_samr_AddGroupMember_group_handle = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_pwd_history_len = -1;
+static gint hf_samr_samr_DispInfoFullGroups_entries = -1;
+static gint hf_samr_samr_UserInfo5_bad_password_count = -1;
+static gint hf_samr_samr_DomainInfo_info5 = -1;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER = -1;
+static gint hf_samr_samr_UserInfo_info6 = -1;
+static gint hf_samr_samr_Connect5_info_out = -1;
+static gint hf_samr_samr_Connect_connect_handle = -1;
+static gint hf_samr_samr_UserInfo3_logon_script = -1;
+static gint hf_samr_samr_SetUserInfo_level = -1;
+static gint hf_samr_samr_UserInfo21_last_logon = -1;
+static gint hf_samr_samr_GetBootKeyInformation_domain_handle = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_returned_size = -1;
+static gint hf_samr_samr_ValidatePasswordReq3_account = -1;
+static gint hf_samr_samr_UserInfo7_account_name = -1;
+static gint hf_samr_samr_UserInfo23_info = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1 = -1;
+static gint hf_samr_samr_UserInfo3_last_logon = -1;
+static gint hf_samr_samr_UserInfo_info10 = -1;
+static gint hf_samr_samr_EnumDomainGroups_max_size = -1;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE = -1;
+static gint hf_samr_samr_UserInfo3_full_name = -1;
+static gint hf_samr_samr_SetUserInfo2_user_handle = -1;
+static gint hf_samr_samr_DispEntryAscii_account_name = -1;
+static gint hf_samr_samr_UserInfo11_logon_script = -1;
+static gint hf_samr_samr_ChangePasswordUser_lm_present = -1;
+static gint hf_samr_samr_AddMultipleMembersToAlias_sids = -1;
+static gint hf_samr_samr_OpenDomain_domain_handle = -1;
+static gint hf_samr_samr_DomInfo13_sequence_num = -1;
+static gint hf_samr_samr_UserInfo_info21 = -1;
+static gint hf_samr_samr_ValidatePasswordReq_req1 = -1;
+static gint hf_samr_samr_GetAliasMembership_domain_handle = -1;
+static gint hf_samr_samr_AcctFlags_ACB_MNS = -1;
+static gint hf_samr_samr_DispEntryFullGroup_description = -1;
+static gint hf_samr_samr_SetSecurity_sdbuf = -1;
+static gint hf_samr_samr_ValidatePasswordReq2_account = -1;
+static gint hf_samr_samr_LookupNames_names = -1;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP = -1;
+static gint hf_samr_samr_PwInfo_password_properties = -1;
+static gint hf_samr_samr_ValidatePasswordReq_req2 = -1;
+static gint hf_samr_samr_DomGeneralInformation2_lockout_window = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_returned_size = -1;
+static gint hf_samr_samr_SetBootKeyInformation_unknown2 = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON = -1;
+static gint hf_samr_samr_RidToSid_rid = -1;
+static gint hf_samr_samr_Ids_count = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM = -1;
+static gint hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED = -1;
+static gint hf_samr_samr_ChangePasswordUser3_nt_verifier = -1;
+static gint hf_samr_samr_UserInfo_info17 = -1;
+static gint hf_samr_samr_LookupRids_types = -1;
+static gint hf_samr_samr_DeleteGroupMember_rid = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH = -1;
+static gint hf_samr_samr_ChangePasswordUser3_lm_change = -1;
+static gint hf_samr_samr_CreateUser2_rid = -1;
+static gint hf_samr_samr_LookupRids_rids = -1;
+static gint hf_samr_samr_UserInfo1_primary_gid = -1;
+static gint hf_samr_samr_GetMembersInAlias_alias_handle = -1;
+static gint hf_samr_samr_ValidatePasswordReq1_info = -1;
+static gint hf_samr_samr_UserInfo21_home_drive = -1;
+static gint hf_samr_samr_AcctFlags_ACB_PWNOEXP = -1;
+static gint hf_samr_samr_DomOEMInformation_oem_information = -1;
+static gint hf_samr_samr_SetBootKeyInformation_connect_handle = -1;
+static gint hf_samr_samr_EnumDomainAliases_num_entries = -1;
+static gint hf_samr_samr_AcctFlags_ACB_SVRTRUST = -1;
+static gint hf_samr_samr_OpenAlias_domain_handle = -1;
+static gint hf_samr_samr_DomGeneralInformation_oem_information = -1;
+static gint hf_samr_samr_UserInfo_info8 = -1;
+static gint hf_samr_samr_UserInfo25_info = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP = -1;
+static gint hf_samr_samr_CreateDomainGroup_name = -1;
+static gint hf_samr_samr_DomGeneralInformation_num_groups = -1;
+static gint hf_samr_samr_SetGroupInfo_info = -1;
+static gint hf_samr_samr_EnumDomainAliases_resume_handle = -1;
+static gint hf_samr_samr_DomGeneralInformation_num_aliases = -1;
+static gint hf_samr_samr_EnumDomainAliases_max_size = -1;
+static gint hf_samr_samr_UserInfo21_full_name = -1;
+static gint hf_samr_samr_GetDomPwInfo_domain_name = -1;
+static gint hf_samr_samr_UserInfo3_primary_gid = -1;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO = -1;
+static gint hf_samr_samr_UserInfo_info5 = -1;
+static gint hf_samr_samr_RidWithAttribute_rid = -1;
+static gint hf_samr_samr_UserInfo3_home_directory = -1;
+static gint hf_samr_samr_ChangePasswordUser_cross2_present = -1;
+static gint hf_samr_samr_DeleteAliasMember_sid = -1;
+static gint hf_samr_samr_ValidatePassword_rep = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_fields_present = -1;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER = -1;
+static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown1 = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_level = -1;
+static gint hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED = -1;
+static gint hf_samr_samr_AliasInfo_description = -1;
+static gint hf_samr_samr_QueryDisplayInfo_info = -1;
+static gint hf_samr_samr_GroupInfoAll_num_members = -1;
+static gint hf_samr_samr_SetGroupInfo_group_handle = -1;
+static gint hf_samr_status = -1;
+static gint hf_samr_samr_UserInfo5_rid = -1;
+static gint hf_samr_samr_UserInfo12_profile_path = -1;
+static gint hf_samr_samr_LookupDomain_connect_handle = -1;
+static gint hf_samr_samr_UserInfo21_comment = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2 = -1;
+static gint hf_samr_samr_UserInfo_info14 = -1;
+static gint hf_samr_samr_CreateUser2_access_granted = -1;
+static gint hf_samr_samr_ConnectInfo1_client_version = -1;
+static gint hf_samr_samr_UserInfo5_acct_flags = -1;
+static gint hf_samr_samr_UserInfo24_password_expired = -1;
+static gint hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED = -1;
+static gint hf_samr_samr_SetDsrmPassword_name = -1;
+static gint hf_samr_samr_Connect_system_name = -1;
+static gint hf_samr_samr_DomInfo1_min_password_age = -1;
+static gint hf_samr_samr_LookupNames_domain_handle = -1;
+static gint hf_samr_samr_LookupRids_num_rids = -1;
+static gint hf_samr_samr_GroupInfoDescription_description = -1;
+static gint hf_samr_samr_RidAttrArray_count = -1;
+static gint hf_samr_samr_QueryUserInfo_level = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID = -1;
+static gint hf_samr_samr_DispEntryGeneral_account_name = -1;
+static gint hf_samr_samr_QueryAliasInfo_alias_handle = -1;
+static gint hf_samr_samr_AcctFlags_ACB_HOMDIRREQ = -1;
+static gint hf_samr_samr_CryptPasswordEx_data = -1;
+static gint hf_samr_samr_SetAliasInfo_alias_handle = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_bad_password_time = -1;
+static gint hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY = -1;
+static gint hf_samr_samr_DispInfo_info1 = -1;
+static gint hf_samr_samr_SetDomainInfo_level = -1;
+static gint hf_samr_samr_DispInfo_info4 = -1;
+static gint hf_samr_samr_DomInfo8_domain_create_time = -1;
+static gint hf_samr_samr_ChangePasswordUser_old_nt_crypted = -1;
+static gint hf_samr_samr_DomGeneralInformation_force_logoff_time = -1;
+static gint hf_samr_samr_DomInfo12_lockout_threshold = -1;
+static gint hf_samr_samr_GroupInfoAttributes_attributes = -1;
+static gint hf_samr_samr_CreateDomainGroup_domain_handle = -1;
+static gint hf_samr_samr_SamArray_entries = -1;
+static gint hf_samr_samr_UserInfo_info9 = -1;
+static gint hf_samr_samr_Connect3_access_mask = -1;
+static gint hf_samr_samr_ChangePasswordUser2_lm_password = -1;
+static gint hf_samr_samr_DispEntryGeneral_full_name = -1;
+static gint hf_samr_samr_DomGeneralInformation2_general = -1;
+static gint hf_samr_samr_AliasInfoAll_num_members = -1;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO = -1;
+static gint hf_samr_samr_DispEntryFull_description = -1;
+static gint hf_samr_samr_LookupDomain_domain_name = -1;
+static gint hf_samr_samr_ValidatePasswordRep_ctr3 = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_max_entries = -1;
+static gint hf_samr_samr_DomInfo6_primary = -1;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX = -1;
+static gint hf_samr_samr_DeleteGroupMember_group_handle = -1;
+static gint hf_samr_samr_Connect5_system_name = -1;
+static gint hf_samr_samr_UserInfo21_bad_password_count = -1;
+static gint hf_samr_samr_UserInfo21_acct_expiry = -1;
+static gint hf_samr_samr_EnumDomainUsers_max_size = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE = -1;
+static gint hf_samr_samr_LookupNames_rids = -1;
+static gint hf_samr_samr_DomInfo1_min_password_length = -1;
+static gint hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon = -1;
+static gint hf_samr_samr_QuerySecurity_handle = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_idx = -1;
+static gint hf_samr_samr_DomInfo9_domain_server_state = -1;
+static gint hf_samr_samr_Connect5_level_out = -1;
+static gint hf_samr_samr_CreateUser2_user_handle = -1;
+static gint hf_samr_samr_UserInfo5_last_logon = -1;
+static gint hf_samr_samr_ChangePasswordUser2_server = -1;
+static gint hf_samr_samr_SetDomainInfo_info = -1;
+static gint hf_samr_samr_SamArray_count = -1;
+static gint hf_samr_samr_UserInfo24_password = -1;
+static gint hf_samr_samr_DispEntryFull_idx = -1;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER = -1;
+static gint hf_samr_samr_DispEntryFull_acct_flags = -1;
+static gint hf_samr_samr_DomInfo13_modified_count_at_last_promotion = -1;
+static gint hf_samr_samr_GetAliasMembership_sids = -1;
+static gint hf_samr_samr_UserInfo_info1 = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION = -1;
+static gint hf_samr_samr_UserInfo18_nt_pwd = -1;
+static gint hf_samr_samr_UserInfo21_nt_owf_password = -1;
+static gint hf_samr_samr_OpenAlias_alias_handle = -1;
+static gint hf_samr_samr_SetMemberAttributesOfGroup_group_handle = -1;
+static gint hf_samr_samr_UserInfo23_password = -1;
+static gint hf_samr_samr_UserInfo21_last_logoff = -1;
+static gint hf_samr_samr_DispInfo_info2 = -1;
+static gint hf_samr_samr_EnumDomainUsers_resume_handle = -1;
+static gint hf_samr_samr_ValidatePasswordRepCtr_status = -1;
+static gint hf_samr_samr_SetMemberAttributesOfGroup_unknown2 = -1;
+static gint hf_samr_samr_DomainInfo_general2 = -1;
+static gint hf_samr_samr_UserInfo2_reserved = -1;
+static gint hf_samr_samr_DispInfoFull_count = -1;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE = -1;
+static gint hf_samr_samr_ValidatePasswordReq2_password = -1;
+static gint hf_samr_samr_UserInfo5_logon_hours = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY = -1;
+static gint hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD = -1;
+static gint hf_samr_samr_DeleteUser_user_handle = -1;
+static gint hf_samr_samr_QueryDomainInfo_level = -1;
+static gint hf_samr_samr_UserInfo26_password = -1;
+static gint hf_samr_samr_ValidatePasswordReq1_password_matched = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES = -1;
+static gint hf_samr_samr_UserInfo21_account_name = -1;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO = -1;
+static gint hf_samr_samr_UserInfo2_comment = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_RID = -1;
+static gint hf_samr_samr_UserInfo_info23 = -1;
+static gint hf_samr_samr_UserInfo18_password_expired = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_total_size = -1;
+static gint hf_samr_samr_UserInfo25_password = -1;
+static gint hf_samr_samr_ChangePasswordUser2_lm_verifier = -1;
+static gint hf_samr_samr_SetDomainInfo_domain_handle = -1;
+static gint hf_samr_samr_UserInfo4_logon_hours = -1;
+static gint hf_samr_samr_UserInfo5_home_directory = -1;
+static gint hf_samr_samr_DomInfo12_lockout_duration = -1;
+static gint hf_samr_samr_CreateUser_account_name = -1;
+static gint hf_samr_samr_UserInfo9_primary_gid = -1;
+static gint hf_samr_samr_Connect4_connect_handle = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO = -1;
+static gint hf_samr_samr_RidToSid_domain_handle = -1;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET = -1;
+static gint hf_samr_samr_DomGeneralInformation_domain_name = -1;
+static gint hf_samr_samr_CreateUser2_account_name = -1;
+static gint hf_samr_samr_QueryGroupMember_group_handle = -1;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN = -1;
+static gint hf_samr_samr_DispEntryGeneral_rid = -1;
+static gint hf_samr_samr_LookupDomain_sid = -1;
+static gint hf_samr_samr_AddAliasMember_sid = -1;
+static gint hf_samr_samr_QueryAliasInfo_info = -1;
+static gint hf_samr_samr_ValidatePasswordReq2_hash = -1;
+static gint hf_samr_samr_UserInfo21_fields_present = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG = -1;
+static gint hf_samr_samr_ValidatePasswordReq2_password_matched = -1;
+static gint hf_samr_samr_CreateUser2_domain_handle = -1;
+static gint hf_samr_samr_QuerySecurity_sec_info = -1;
+static gint hf_samr_samr_AddGroupMember_rid = -1;
+static gint hf_samr_samr_DomainInfo_info12 = -1;
+static gint hf_samr_samr_OpenGroup_domain_handle = -1;
+static gint hf_samr_samr_QueryDisplayInfo_max_entries = -1;
+static gint hf_samr_samr_EnumDomains_resume_handle = -1;
+static gint hf_samr_samr_UserInfo_info7 = -1;
+static gint hf_samr_samr_GroupInfo_all2 = -1;
+static gint hf_samr_samr_UserInfo1_full_name = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_domain_handle = -1;
+static gint hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle = -1;
+static gint hf_samr_samr_OpenGroup_group_handle = -1;
+static gint hf_samr_samr_EnumDomainGroups_resume_handle = -1;
+static gint hf_samr_samr_SetUserInfo2_info = -1;
+static gint hf_samr_samr_QueryGroupInfo_group_handle = -1;
+static gint hf_samr_samr_ChangePasswordUser3_nt_password = -1;
+static gint hf_samr_samr_UserInfo21_buf_count = -1;
+static gint hf_samr_samr_PwInfo_min_password_length = -1;
+static gint hf_samr_samr_UserInfo21_lm_owf_password = -1;
+static gint hf_samr_samr_DomGeneralInformation_sequence_num = -1;
+static gint hf_samr_samr_UserInfo26_password_expired = -1;
+static gint hf_samr_samr_ChangePasswordUser_old_lm_crypted = -1;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS = -1;
+static gint hf_samr_samr_AcctFlags_ACB_NORMAL = -1;
+static gint hf_samr_samr_GroupInfo_all = -1;
+static gint hf_samr_samr_UserInfo16_acct_flags = -1;
+static gint hf_samr_samr_UserInfo2_country_code = -1;
+static gint hf_samr_samr_AddGroupMember_flags = -1;
+static gint hf_samr_samr_UserInfo10_home_directory = -1;
+static gint hf_samr_samr_CreateDomainGroup_group_handle = -1;
+static gint hf_samr_samr_QueryUserInfo2_user_handle = -1;
+static gint hf_samr_samr_OemChangePasswordUser2_server = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD = -1;
+static gint hf_samr_samr_AliasInfo_all = -1;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC = -1;
+static gint hf_samr_samr_ChangePasswordUser3_password3 = -1;
+static gint hf_samr_samr_UserInfo13_description = -1;
+static gint hf_samr_samr_UserInfo21_lm_password_set = -1;
+static gint hf_samr_samr_UserInfo_info2 = -1;
+static gint hf_samr_samr_EnumDomainUsers_domain_handle = -1;
+static gint hf_samr_samr_LookupRids_domain_handle = -1;
+static gint hf_samr_samr_LogonHours_bits = -1;
+static gint hf_samr_samr_OpenUser_domain_handle = -1;
+static gint hf_samr_samr_CreateUser2_access_mask = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT = -1;
+static gint hf_samr_samr_EnumDomainGroups_sam = -1;
+static gint hf_samr_samr_GroupInfoAll_name = -1;
+static gint hf_samr_samr_ValidatePasswordRep_ctr2 = -1;
+static gint hf_samr_samr_UserInfo_info24 = -1;
+static gint hf_samr_samr_DomainInfo_info3 = -1;
+static gint hf_samr_samr_EnumDomainGroups_num_entries = -1;
+static gint hf_samr_samr_AcctFlags_ACB_PWNOTREQ = -1;
+static gint hf_samr_samr_UserInfo3_bad_password_count = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE = -1;
+static gint hf_samr_samr_ChangePasswordUser_new_lm_crypted = -1;
+static gint hf_samr_samr_LookupNames_types = -1;
+static gint hf_samr_samr_SamEntry_idx = -1;
+static gint hf_samr_samr_UserInfo3_logon_hours = -1;
+static gint hf_samr_samr_ChangePasswordUser3_account = -1;
+static gint hf_samr_samr_DomInfo8_sequence_num = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_pwd_history = -1;
+static gint hf_samr_samr_Connect3_unknown = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_idx = -1;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN = -1;
+static gint hf_samr_samr_ConnectInfo1_unknown2 = -1;
+static gint hf_samr_samr_TestPrivateFunctionsUser_user_handle = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_domain_handle = -1;
+static gint hf_samr_samr_AliasInfoAll_name = -1;
+static gint hf_samr_samr_Connect_access_mask = -1;
+static gint hf_samr_samr_GetUserPwInfo_user_handle = -1;
+static gint hf_samr_samr_DispEntryFull_rid = -1;
+static gint hf_samr_samr_OpenAlias_access_mask = -1;
+static gint hf_samr_samr_GroupInfo_description = -1;
+static gint hf_samr_samr_OpenGroup_rid = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_OWNER = -1;
+static gint hf_samr_samr_EnumDomainAliases_sam = -1;
+static gint hf_samr_samr_LogonHours_units_per_week = -1;
+static gint hf_samr_samr_DomGeneralInformation_role = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_buf_size = -1;
+static gint hf_samr_samr_DomainInfo_info13 = -1;
+static gint hf_samr_samr_SetSecurity_sec_info = -1;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT = -1;
+static gint hf_samr_samr_DomGeneralInformation2_lockout_threshold = -1;
+static gint hf_samr_samr_UserInfo21_last_password_change = -1;
+static gint hf_samr_samr_ChangePasswordUser2_account = -1;
+static gint hf_samr_samr_ChangePasswordUser3_lm_password = -1;
+static gint hf_samr_samr_UserInfo3_account_name = -1;
+static gint hf_samr_samr_Connect3_system_name = -1;
+static gint hf_samr_samr_UserInfo_info11 = -1;
+static gint hf_samr_samr_DomainInfo_info9 = -1;
+static gint hf_samr_samr_SamEntry_name = -1;
+static gint hf_samr_samr_UserInfo3_acct_flags = -1;
+static gint hf_samr_samr_UserInfo3_allow_password_change = -1;
+static gint hf_samr_samr_QueryDomainInfo2_level = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_name = -1;
+static gint hf_samr_samr_ValidatePasswordReq3_info = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_lockout_time = -1;
+static gint hf_samr_samr_Connect4_access_mask = -1;
+static gint hf_samr_samr_UserInfo17_acct_expiry = -1;
+static gint hf_samr_samr_DomInfo1_password_history_length = -1;
+static gint hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS = -1;
+static gint hf_samr_samr_QueryUserInfo_info = -1;
+static gint hf_samr_samr_DomGeneralInformation_primary = -1;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT = -1;
+static gint hf_samr_samr_RemoveMemberFromForeignDomain_sid = -1;
+static gint hf_samr_samr_UserInfo5_home_drive = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF = -1;
+static gint hf_samr_samr_RidWithAttributeArray_rids = -1;
+static gint hf_samr_samr_DeleteDomainGroup_group_handle = -1;
+static gint hf_samr_samr_Password_hash = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD = -1;
+static gint hf_samr_samr_UserInfo_info25 = -1;
+static gint hf_samr_samr_QueryDisplayInfo_start_idx = -1;
+static gint hf_samr_samr_UserInfo3_home_drive = -1;
+static gint hf_samr_samr_UserInfo_info13 = -1;
+static gint hf_samr_samr_DeleteAliasMember_alias_handle = -1;
+static gint hf_samr_samr_QueryDomainInfo_domain_handle = -1;
+static gint hf_samr_samr_ChangePasswordUser2_nt_password = -1;
+static gint hf_samr_samr_RidAttrArray_attributes = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_bad_pwd_count = -1;
+static gint hf_samr_samr_QueryGroupMember_rids = -1;
+static gint hf_samr_samr_UserInfo21_password_expired = -1;
+static gint hf_samr_samr_EnumDomains_buf_size = -1;
+static gint hf_samr_samr_DomInfo1_max_password_age = -1;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER = -1;
+static gint hf_samr_samr_GroupInfoAll_description = -1;
+static gint hf_samr_samr_UserInfo3_logon_count = -1;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY = -1;
+static gint hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT = -1;
+static gint hf_samr_samr_GroupInfo_name = -1;
+static gint hf_samr_samr_UserInfo3_force_password_change = -1;
+static gint hf_samr_samr_ChangePasswordUser_nt_present = -1;
+static gint hf_samr_samr_UserInfo21_home_directory = -1;
+static gint hf_samr_samr_UserInfo_info12 = -1;
+static gint hf_samr_samr_OemChangePasswordUser2_password = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS = -1;
+static gint hf_samr_samr_EnumDomainGroups_domain_handle = -1;
+static gint hf_samr_opnum = -1;
+static gint hf_samr_samr_ChangePasswordUser3_server = -1;
+static gint hf_samr_samr_QueryUserInfo_user_handle = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_name = -1;
+static gint hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO = -1;
+static gint hf_samr_samr_GetGroupsForUser_user_handle = -1;
+static gint hf_samr_samr_QueryDomainInfo2_domain_handle = -1;
+static gint hf_samr_samr_UserInfo14_workstations = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_domain_handle = -1;
+static gint hf_samr_samr_DispInfo_info3 = -1;
+static gint hf_samr_samr_DomainInfo_info8 = -1;
+static gint hf_samr_samr_DispInfoGeneral_entries = -1;
+static gint hf_samr_samr_UserInfo8_full_name = -1;
+static gint hf_samr_samr_UserInfo21_logon_count = -1;
+static gint hf_samr_samr_UserInfo21_code_page = -1;
+static gint hf_samr_samr_DispEntryFullGroup_acct_flags = -1;
+static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = -1;
+static gint hf_samr_samr_SetUserInfo_info = -1;
+static gint hf_samr_samr_OpenDomain_sid = -1;
+static gint hf_samr_samr_CreateUser2_acct_flags = -1;
+static gint hf_samr_samr_DispEntryFull_account_name = -1;
+static gint hf_samr_userPwdChangeFailureInformation_filterModuleName = -1;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE = -1;
+static gint hf_samr_samr_DomainInfo_info1 = -1;
+static gint hf_samr_samr_RidAttrArray_rids = -1;
+static gint hf_samr_samr_ValidatePasswordRep_ctr1 = -1;
+static gint hf_samr_samr_UserInfo18_nt_pwd_active = -1;
+static gint hf_samr_samr_AcctFlags_ACB_DOMTRUST = -1;
+static gint hf_samr_samr_ChangePasswordUser_lm_cross = -1;
+static gint hf_samr_samr_UserInfo3_profile_path = -1;
+static gint hf_samr_samr_DomInfo13_domain_create_time = -1;
+static gint hf_samr_samr_AcctFlags_ACB_WSTRUST = -1;
+static gint hf_samr_samr_DispEntryAscii_idx = -1;
+static gint hf_samr_samr_DomInfo5_domain_name = -1;
+static gint hf_samr_samr_UserInfo5_logon_count = -1;
+static gint hf_samr_samr_UserInfo5_last_logoff = -1;
+static gint hf_samr_samr_CreateDomainGroup_rid = -1;
+static gint hf_samr_samr_ValidatePassword_level = -1;
+static gint hf_samr_samr_UserInfo6_full_name = -1;
+static gint hf_samr_samr_LookupRids_names = -1;
+static gint hf_samr_samr_UserInfo10_home_drive = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS = -1;
+static gint hf_samr_samr_OemChangePasswordUser2_account = -1;
+static gint hf_samr_samr_RemoveMultipleMembersFromAlias_sids = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_info = -1;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS = -1;
+static gint hf_samr_samr_UserInfo_info4 = -1;
+static gint hf_samr_samr_DomInfo1_password_properties = -1;
+static gint hf_samr_samr_UserInfo21_logon_script = -1;
+static gint hf_samr_samr_AcctFlags_ACB_AUTOLOCK = -1;
+static gint hf_samr_samr_CreateUser_domain_handle = -1;
+static gint hf_samr_samr_GetBootKeyInformation_unknown = -1;
+static gint hf_samr_samr_RidWithAttribute_attributes = -1;
+static gint hf_samr_samr_CryptPassword_data = -1;
+static gint hf_samr_samr_AliasInfo_name = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT = -1;
+static gint hf_samr_samr_UserInfo3_last_password_change = -1;
+static gint hf_samr_samr_Shutdown_connect_handle = -1;
+static gint hf_samr_samr_OpenDomain_access_mask = -1;
+static gint hf_samr_samr_DispEntryFullGroup_rid = -1;
+static gint hf_samr_samr_Connect2_connect_handle = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 = -1;
+static gint hf_samr_samr_ValidationBlob_length = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_start_idx = -1;
+static gint hf_samr_samr_DispEntryGeneral_idx = -1;
+static gint hf_samr_samr_UserInfo21_logon_hours = -1;
+static gint hf_samr_samr_UserInfo21_country_code = -1;
+static gint hf_samr_samr_AddAliasMember_alias_handle = -1;
+static gint hf_samr_samr_SetDsrmPassword_hash = -1;
+static gint hf_samr_samr_DomainInfo_general = -1;
+static gint hf_samr_samr_QueryDisplayInfo_domain_handle = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY = -1;
+static gint hf_samr_samr_UserInfo5_description = -1;
+static gint hf_samr_samr_DomInfo7_role = -1;
+static gint hf_samr_samr_UserInfo21_workstations = -1;
+static gint hf_samr_samr_DispEntryGeneral_description = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS = -1;
+static gint hf_samr_samr_ValidatePasswordReq_req3 = -1;
+static gint hf_samr_samr_ChangePasswordUser2_nt_verifier = -1;
+static gint hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION = -1;
+static gint hf_samr_samr_EnumDomains_connect_handle = -1;
+static gint hf_samr_samr_UserInfo_info18 = -1;
+static gint hf_samr_samr_CreateDomAlias_access_mask = -1;
+static gint hf_samr_samr_UserInfo21_force_password_change = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle = -1;
+static gint hf_samr_samr_TestPrivateFunctionsDomain_domain_handle = -1;
+static gint hf_samr_samr_DomGeneralInformation_domain_server_state = -1;
+static gint hf_samr_samr_SetBootKeyInformation_unknown3 = -1;
+static gint hf_samr_samr_Connect3_connect_handle = -1;
+static gint hf_samr_samr_EnumDomainUsers_num_entries = -1;
+static gint hf_samr_samr_ValidatePasswordReq2_info = -1;
+static gint hf_samr_samr_LookupNames_num_names = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_level = -1;
+static gint hf_samr_userPwdChangeFailureInformation_extendedFailureReason = -1;
+static gint hf_samr_samr_QueryDisplayInfo2_max_entries = -1;
+static gint hf_samr_samr_ValidatePasswordInfo_last_password_change = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE = -1;
+static gint hf_samr_samr_AddMultipleMembersToAlias_alias_handle = -1;
+static gint hf_samr_samr_OpenUser_access_mask = -1;
+static gint hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS = -1;
+static gint hf_samr_samr_ChangePasswordUser3_dominfo = -1;
+static gint hf_samr_samr_ValidationBlob_data = -1;
+static gint hf_samr_samr_UserInfo18_lm_pwd_active = -1;
+static gint hf_samr_samr_CreateDomAlias_domain_handle = -1;
+static gint hf_samr_samr_UserInfo_info26 = -1;
+static gint hf_samr_samr_EnumDomainAliases_domain_handle = -1;
+static gint hf_samr_samr_GroupInfoAll_attributes = -1;
+static gint hf_samr_samr_DomainInfo_info7 = -1;
+static gint hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER = -1;
+static gint hf_samr_samr_EnumDomains_num_entries = -1;
+static gint hf_samr_samr_UserInfo21_parameters = -1;
+static gint hf_samr_samr_DispEntryGeneral_acct_flags = -1;
+static gint hf_samr_samr_AcctFlags_ACB_TEMPDUP = -1;
+static gint hf_samr_samr_DispInfoFullGroups_count = -1;
+static gint hf_samr_samr_OpenUser_user_handle = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 = -1;
+static gint hf_samr_samr_GetAliasMembership_rids = -1;
+static gint hf_samr_samr_CreateDomAlias_alias_handle = -1;
+static gint hf_samr_samr_UserInfo6_account_name = -1;
+static gint hf_samr_samr_UserInfo_info3 = -1;
+static gint hf_samr_samr_Connect5_level_in = -1;
+static gint hf_samr_samr_DomInfo12_lockout_window = -1;
+static gint hf_samr_samr_CreateUser_user_handle = -1;
+static gint hf_samr_samr_RidToSid_sid = -1;
+static gint hf_samr_samr_GetUserPwInfo_info = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC = -1;
+static gint hf_samr_samr_EnumDomainUsers_acct_flags = -1;
+static gint hf_samr_samr_UserInfo3_rid = -1;
+static gint hf_samr_samr_DomainInfo_info6 = -1;
+static gint hf_samr_samr_CreateDomAlias_alias_name = -1;
+static gint hf_samr_samr_EnumDomainUsers_sam = -1;
+static gint hf_samr_samr_DispInfo_info5 = -1;
+static gint hf_samr_samr_GetGroupsForUser_rids = -1;
+static gint hf_samr_samr_UserInfo3_last_logoff = -1;
+static gint hf_samr_samr_ValidatePasswordRepCtr_info = -1;
+static gint hf_samr_samr_CreateDomAlias_rid = -1;
+static gint hf_samr_samr_SetGroupInfo_level = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD = -1;
+static gint hf_samr_samr_SetUserInfo2_level = -1;
+static gint hf_samr_samr_UserInfo5_acct_expiry = -1;
+static gint hf_samr_samr_OpenAlias_rid = -1;
+static gint hf_samr_samr_Close_handle = -1;
+static gint hf_samr_samr_Connect5_info_in = -1;
+static gint hf_samr_samr_UserInfo21_nt_password_set = -1;
+static gint hf_samr_samr_UserInfo_info20 = -1;
+static gint hf_samr_samr_UserInfo21_private_data = -1;
+static gint hf_samr_samr_CreateUser_access_mask = -1;
+static gint hf_samr_samr_UserInfo5_account_name = -1;
+static gint hf_samr_samr_DispInfoFull_entries = -1;
+static gint hf_samr_samr_UserInfo5_full_name = -1;
+static gint hf_samr_samr_ChangePasswordUser3_lm_verifier = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3 = -1;
+static gint hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY = -1;
+static gint hf_samr_samr_DispInfoAscii_count = -1;
+static gint hf_samr_samr_GetMembersInAlias_sids = -1;
+static gint hf_samr_samr_QueryDisplayInfo3_info = -1;
+static gint hf_samr_samr_OemChangePasswordUser2_hash = -1;
+static gint hf_samr_samr_ChangePasswordUser_user_handle = -1;
+static gint hf_samr_samr_QueryUserInfo2_level = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT = -1;
+static gint hf_samr_samr_ValidatePasswordReq3_clear_lockout = -1;
+static gint hf_samr_samr_Connect4_client_version = -1;
+static gint hf_samr_samr_GetDisplayEnumerationIndex_level = -1;
+static gint hf_samr_samr_UserInfo5_workstations = -1;
+static gint hf_samr_samr_DispEntryFullGroup_account_name = -1;
+static gint hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME = -1;
+static gint hf_samr_samr_QueryDisplayInfo_total_size = -1;
+static gint hf_samr_samr_UserInfo1_comment = -1;
+static gint hf_samr_samr_DeleteDomAlias_alias_handle = -1;
+static gint hf_samr_samr_EnumDomains_sam = -1;
+static gint hf_samr_samr_UserInfo2_code_page = -1;
+static gint hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS = -1;
+static gint hf_samr_samr_DomGeneralInformation_unknown3 = -1;
+static gint hf_samr_samr_OpenDomain_connect_handle = -1;
+static gint hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES = -1;
+static gint hf_samr_samr_QueryDisplayInfo_buf_size = -1;
+static gint hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER = -1;
+static gint hf_samr_samr_QueryGroupInfo_level = -1;
+static gint hf_samr_samr_SetAliasInfo_level = -1;
+static gint hf_samr_samr_QueryDisplayInfo_level = -1;
+static gint hf_samr_samr_UserInfo21_buffer = -1;
+static gint hf_samr_samr_SetDsrmPassword_unknown = -1;
+static gint hf_samr_samr_UserInfo5_last_password_change = -1;
+static gint hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP = -1;
+static gint hf_samr_samr_QueryDisplayInfo_returned_size = -1;
+static gint hf_samr_samr_UserInfo21_allow_password_change = -1;
+static gint hf_samr_samr_ConnectInfo_info1 = -1;
+static gint hf_samr_samr_SetSecurity_handle = -1;
+static gint hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME = -1;
+static gint hf_samr_samr_AliasInfoAll_description = -1;
+
+static gint proto_dcerpc_samr = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_samr = {
+       0x12345778, 0x1234, 0xabcd,
+       { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xac }
+};
+static guint16 ver_dcerpc_samr = 1;
+
+static const true_false_string samr_AcctFlags_ACB_DISABLED_tfs = {
+   "ACB_DISABLED is SET",
+   "ACB_DISABLED is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_HOMDIRREQ_tfs = {
+   "ACB_HOMDIRREQ is SET",
+   "ACB_HOMDIRREQ is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_PWNOTREQ_tfs = {
+   "ACB_PWNOTREQ is SET",
+   "ACB_PWNOTREQ is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_TEMPDUP_tfs = {
+   "ACB_TEMPDUP is SET",
+   "ACB_TEMPDUP is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_NORMAL_tfs = {
+   "ACB_NORMAL is SET",
+   "ACB_NORMAL is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_MNS_tfs = {
+   "ACB_MNS is SET",
+   "ACB_MNS is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_DOMTRUST_tfs = {
+   "ACB_DOMTRUST is SET",
+   "ACB_DOMTRUST is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_WSTRUST_tfs = {
+   "ACB_WSTRUST is SET",
+   "ACB_WSTRUST is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_SVRTRUST_tfs = {
+   "ACB_SVRTRUST is SET",
+   "ACB_SVRTRUST is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_PWNOEXP_tfs = {
+   "ACB_PWNOEXP is SET",
+   "ACB_PWNOEXP is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_AUTOLOCK_tfs = {
+   "ACB_AUTOLOCK is SET",
+   "ACB_AUTOLOCK is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED_tfs = {
+   "ACB_ENC_TXT_PWD_ALLOWED is SET",
+   "ACB_ENC_TXT_PWD_ALLOWED is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs = {
+   "ACB_SMARTCARD_REQUIRED is SET",
+   "ACB_SMARTCARD_REQUIRED is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION_tfs = {
+   "ACB_TRUSTED_FOR_DELEGATION is SET",
+   "ACB_TRUSTED_FOR_DELEGATION is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_NOT_DELEGATED_tfs = {
+   "ACB_NOT_DELEGATED is SET",
+   "ACB_NOT_DELEGATED is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_USE_DES_KEY_ONLY_tfs = {
+   "ACB_USE_DES_KEY_ONLY is SET",
+   "ACB_USE_DES_KEY_ONLY is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH_tfs = {
+   "ACB_DONT_REQUIRE_PREAUTH is SET",
+   "ACB_DONT_REQUIRE_PREAUTH is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_PW_EXPIRED_tfs = {
+   "ACB_PW_EXPIRED is SET",
+   "ACB_PW_EXPIRED is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION_tfs = {
+   "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION is SET",
+   "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_NO_AUTH_DATA_REQD_tfs = {
+   "ACB_NO_AUTH_DATA_REQD is SET",
+   "ACB_NO_AUTH_DATA_REQD is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT_tfs = {
+   "ACB_PARTIAL_SECRETS_ACCOUNT is SET",
+   "ACB_PARTIAL_SECRETS_ACCOUNT is NOT SET",
+};
+static const true_false_string samr_AcctFlags_ACB_USE_AES_KEYS_tfs = {
+   "ACB_USE_AES_KEYS is SET",
+   "ACB_USE_AES_KEYS is NOT SET",
+};
+static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER_tfs = {
+   "SAMR_ACCESS_CONNECT_TO_SERVER is SET",
+   "SAMR_ACCESS_CONNECT_TO_SERVER is NOT SET",
+};
+static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER_tfs = {
+   "SAMR_ACCESS_SHUTDOWN_SERVER is SET",
+   "SAMR_ACCESS_SHUTDOWN_SERVER is NOT SET",
+};
+static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER_tfs = {
+   "SAMR_ACCESS_INITIALIZE_SERVER is SET",
+   "SAMR_ACCESS_INITIALIZE_SERVER is NOT SET",
+};
+static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN_tfs = {
+   "SAMR_ACCESS_CREATE_DOMAIN is SET",
+   "SAMR_ACCESS_CREATE_DOMAIN is NOT SET",
+};
+static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS_tfs = {
+   "SAMR_ACCESS_ENUM_DOMAINS is SET",
+   "SAMR_ACCESS_ENUM_DOMAINS is NOT SET",
+};
+static const true_false_string samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN_tfs = {
+   "SAMR_ACCESS_LOOKUP_DOMAIN is SET",
+   "SAMR_ACCESS_LOOKUP_DOMAIN is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC_tfs = {
+   "SAMR_USER_ACCESS_GET_NAME_ETC is SET",
+   "SAMR_USER_ACCESS_GET_NAME_ETC is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE_tfs = {
+   "SAMR_USER_ACCESS_GET_LOCALE is SET",
+   "SAMR_USER_ACCESS_GET_LOCALE is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM_tfs = {
+   "SAMR_USER_ACCESS_SET_LOC_COM is SET",
+   "SAMR_USER_ACCESS_SET_LOC_COM is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO_tfs = {
+   "SAMR_USER_ACCESS_GET_LOGONINFO is SET",
+   "SAMR_USER_ACCESS_GET_LOGONINFO is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES_tfs = {
+   "SAMR_USER_ACCESS_GET_ATTRIBUTES is SET",
+   "SAMR_USER_ACCESS_GET_ATTRIBUTES is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES_tfs = {
+   "SAMR_USER_ACCESS_SET_ATTRIBUTES is SET",
+   "SAMR_USER_ACCESS_SET_ATTRIBUTES is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD_tfs = {
+   "SAMR_USER_ACCESS_CHANGE_PASSWORD is SET",
+   "SAMR_USER_ACCESS_CHANGE_PASSWORD is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD_tfs = {
+   "SAMR_USER_ACCESS_SET_PASSWORD is SET",
+   "SAMR_USER_ACCESS_SET_PASSWORD is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS_tfs = {
+   "SAMR_USER_ACCESS_GET_GROUPS is SET",
+   "SAMR_USER_ACCESS_GET_GROUPS is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP_tfs = {
+   "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP is SET",
+   "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP is NOT SET",
+};
+static const true_false_string samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP_tfs = {
+   "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP is SET",
+   "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1_tfs = {
+   "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 is SET",
+   "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1_tfs = {
+   "SAMR_DOMAIN_ACCESS_SET_INFO_1 is SET",
+   "SAMR_DOMAIN_ACCESS_SET_INFO_1 is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2_tfs = {
+   "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 is SET",
+   "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2_tfs = {
+   "SAMR_DOMAIN_ACCESS_SET_INFO_2 is SET",
+   "SAMR_DOMAIN_ACCESS_SET_INFO_2 is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER_tfs = {
+   "SAMR_DOMAIN_ACCESS_CREATE_USER is SET",
+   "SAMR_DOMAIN_ACCESS_CREATE_USER is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP_tfs = {
+   "SAMR_DOMAIN_ACCESS_CREATE_GROUP is SET",
+   "SAMR_DOMAIN_ACCESS_CREATE_GROUP is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS_tfs = {
+   "SAMR_DOMAIN_ACCESS_CREATE_ALIAS is SET",
+   "SAMR_DOMAIN_ACCESS_CREATE_ALIAS is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS_tfs = {
+   "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS is SET",
+   "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS_tfs = {
+   "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS is SET",
+   "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT_tfs = {
+   "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT is SET",
+   "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT is NOT SET",
+};
+static const true_false_string samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3_tfs = {
+   "SAMR_DOMAIN_ACCESS_SET_INFO_3 is SET",
+   "SAMR_DOMAIN_ACCESS_SET_INFO_3 is NOT SET",
+};
+static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO_tfs = {
+   "SAMR_GROUP_ACCESS_LOOKUP_INFO is SET",
+   "SAMR_GROUP_ACCESS_LOOKUP_INFO is NOT SET",
+};
+static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO_tfs = {
+   "SAMR_GROUP_ACCESS_SET_INFO is SET",
+   "SAMR_GROUP_ACCESS_SET_INFO is NOT SET",
+};
+static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER_tfs = {
+   "SAMR_GROUP_ACCESS_ADD_MEMBER is SET",
+   "SAMR_GROUP_ACCESS_ADD_MEMBER is NOT SET",
+};
+static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER_tfs = {
+   "SAMR_GROUP_ACCESS_REMOVE_MEMBER is SET",
+   "SAMR_GROUP_ACCESS_REMOVE_MEMBER is NOT SET",
+};
+static const true_false_string samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS_tfs = {
+   "SAMR_GROUP_ACCESS_GET_MEMBERS is SET",
+   "SAMR_GROUP_ACCESS_GET_MEMBERS is NOT SET",
+};
+static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER_tfs = {
+   "SAMR_ALIAS_ACCESS_ADD_MEMBER is SET",
+   "SAMR_ALIAS_ACCESS_ADD_MEMBER is NOT SET",
+};
+static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER_tfs = {
+   "SAMR_ALIAS_ACCESS_REMOVE_MEMBER is SET",
+   "SAMR_ALIAS_ACCESS_REMOVE_MEMBER is NOT SET",
+};
+static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS_tfs = {
+   "SAMR_ALIAS_ACCESS_GET_MEMBERS is SET",
+   "SAMR_ALIAS_ACCESS_GET_MEMBERS is NOT SET",
+};
+static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO_tfs = {
+   "SAMR_ALIAS_ACCESS_LOOKUP_INFO is SET",
+   "SAMR_ALIAS_ACCESS_LOOKUP_INFO is NOT SET",
+};
+static const true_false_string samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO_tfs = {
+   "SAMR_ALIAS_ACCESS_SET_INFO is SET",
+   "SAMR_ALIAS_ACCESS_SET_INFO is NOT SET",
+};
+static int samr_dissect_element_SamEntry_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SamEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SamArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SamArray_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SamArray_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SamArray_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string samr_samr_DomainInfoClass_vals[] = {
+       { DomainPasswordInformation, "DomainPasswordInformation" },
+       { DomainGeneralInformation, "DomainGeneralInformation" },
+       { DomainLogoffInformation, "DomainLogoffInformation" },
+       { DomainOemInformation, "DomainOemInformation" },
+       { DomainNameInformation, "DomainNameInformation" },
+       { DomainReplicationInformation, "DomainReplicationInformation" },
+       { DomainServerRoleInformation, "DomainServerRoleInformation" },
+       { DomainModifiedInformation, "DomainModifiedInformation" },
+       { DomainStateInformation, "DomainStateInformation" },
+       { DomainUasInformation, "DomainUasInformation" },
+       { DomainGeneralInformation2, "DomainGeneralInformation2" },
+       { DomainLockoutInformation, "DomainLockoutInformation" },
+       { DomainModifiedInformation2, "DomainModifiedInformation2" },
+{ 0, NULL }
+};
+const value_string samr_samr_Role_vals[] = {
+       { SAMR_ROLE_STANDALONE, "SAMR_ROLE_STANDALONE" },
+       { SAMR_ROLE_DOMAIN_MEMBER, "SAMR_ROLE_DOMAIN_MEMBER" },
+       { SAMR_ROLE_DOMAIN_BDC, "SAMR_ROLE_DOMAIN_BDC" },
+       { SAMR_ROLE_DOMAIN_PDC, "SAMR_ROLE_DOMAIN_PDC" },
+{ 0, NULL }
+};
+static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs = {
+   "DOMAIN_PASSWORD_COMPLEX is SET",
+   "DOMAIN_PASSWORD_COMPLEX is NOT SET",
+};
+static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE_tfs = {
+   "DOMAIN_PASSWORD_NO_ANON_CHANGE is SET",
+   "DOMAIN_PASSWORD_NO_ANON_CHANGE is NOT SET",
+};
+static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE_tfs = {
+   "DOMAIN_PASSWORD_NO_CLEAR_CHANGE is SET",
+   "DOMAIN_PASSWORD_NO_CLEAR_CHANGE is NOT SET",
+};
+static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS_tfs = {
+   "DOMAIN_PASSWORD_LOCKOUT_ADMINS is SET",
+   "DOMAIN_PASSWORD_LOCKOUT_ADMINS is NOT SET",
+};
+static const true_false_string samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT_tfs = {
+   "DOMAIN_PASSWORD_STORE_CLEARTEXT is SET",
+   "DOMAIN_PASSWORD_STORE_CLEARTEXT is NOT SET",
+};
+static const true_false_string samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE_tfs = {
+   "DOMAIN_REFUSE_PASSWORD_CHANGE is SET",
+   "DOMAIN_REFUSE_PASSWORD_CHANGE is NOT SET",
+};
+const value_string samr_samr_DomainServerState_vals[] = {
+       { DOMAIN_SERVER_ENABLED, "DOMAIN_SERVER_ENABLED" },
+       { DOMAIN_SERVER_DISABLED, "DOMAIN_SERVER_DISABLED" },
+{ 0, NULL }
+};
+static int samr_dissect_element_DomInfo1_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo1_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo1_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo1_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo1_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_num_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation_num_aliases(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo3_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomOEMInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo5_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo6_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo7_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo8_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo8_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo9_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation2_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation2_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation2_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo12_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo12_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo12_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo13_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo13_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_oem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_general2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DomainInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Ids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Ids_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Ids_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Ids_ids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string samr_GroupAttrs_SE_GROUP_MANDATORY_tfs = {
+   "SE_GROUP_MANDATORY is SET",
+   "SE_GROUP_MANDATORY is NOT SET",
+};
+static const true_false_string samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT_tfs = {
+   "SE_GROUP_ENABLED_BY_DEFAULT is SET",
+   "SE_GROUP_ENABLED_BY_DEFAULT is NOT SET",
+};
+static const true_false_string samr_GroupAttrs_SE_GROUP_ENABLED_tfs = {
+   "SE_GROUP_ENABLED is SET",
+   "SE_GROUP_ENABLED is NOT SET",
+};
+static const true_false_string samr_GroupAttrs_SE_GROUP_OWNER_tfs = {
+   "SE_GROUP_OWNER is SET",
+   "SE_GROUP_OWNER is NOT SET",
+};
+static const true_false_string samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY_tfs = {
+   "SE_GROUP_USE_FOR_DENY_ONLY is SET",
+   "SE_GROUP_USE_FOR_DENY_ONLY is NOT SET",
+};
+static const true_false_string samr_GroupAttrs_SE_GROUP_RESOURCE_tfs = {
+   "SE_GROUP_RESOURCE is SET",
+   "SE_GROUP_RESOURCE is NOT SET",
+};
+static const true_false_string samr_GroupAttrs_SE_GROUP_LOGON_ID_tfs = {
+   "SE_GROUP_LOGON_ID is SET",
+   "SE_GROUP_LOGON_ID is NOT SET",
+};
+static int samr_dissect_element_GroupInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfoAll_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfoAttributes_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfoDescription_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string samr_samr_GroupInfoEnum_vals[] = {
+       { GROUPINFOALL, "GROUPINFOALL" },
+       { GROUPINFONAME, "GROUPINFONAME" },
+       { GROUPINFOATTRIBUTES, "GROUPINFOATTRIBUTES" },
+       { GROUPINFODESCRIPTION, "GROUPINFODESCRIPTION" },
+       { GROUPINFOALL2, "GROUPINFOALL2" },
+{ 0, NULL }
+};
+static int samr_dissect_element_GroupInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfo_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GroupInfo_all2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidAttrArray_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AliasInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AliasInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AliasInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string samr_samr_AliasInfoEnum_vals[] = {
+       { ALIASINFOALL, "ALIASINFOALL" },
+       { ALIASINFONAME, "ALIASINFONAME" },
+       { ALIASINFODESCRIPTION, "ALIASINFODESCRIPTION" },
+{ 0, NULL }
+};
+static int samr_dissect_element_AliasInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AliasInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AliasInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string samr_samr_UserInfoLevel_vals[] = {
+       { UserGeneralInformation, "UserGeneralInformation" },
+       { UserPreferencesInformation, "UserPreferencesInformation" },
+       { UserLogonInformation, "UserLogonInformation" },
+       { UserLogonHoursInformation, "UserLogonHoursInformation" },
+       { UserAccountInformation, "UserAccountInformation" },
+       { UserNameInformation, "UserNameInformation" },
+       { UserAccountNameInformation, "UserAccountNameInformation" },
+       { UserFullNameInformation, "UserFullNameInformation" },
+       { UserPrimaryGroupInformation, "UserPrimaryGroupInformation" },
+       { UserHomeInformation, "UserHomeInformation" },
+       { UserScriptInformation, "UserScriptInformation" },
+       { UserProfileInformation, "UserProfileInformation" },
+       { UserAdminCommentInformation, "UserAdminCommentInformation" },
+       { UserWorkStationsInformation, "UserWorkStationsInformation" },
+       { UserControlInformation, "UserControlInformation" },
+       { UserExpiresInformation, "UserExpiresInformation" },
+       { UserInternal1Information, "UserInternal1Information" },
+       { UserParametersInformation, "UserParametersInformation" },
+       { UserAllInformation, "UserAllInformation" },
+       { UserInternal4Information, "UserInternal4Information" },
+       { UserInternal5Information, "UserInternal5Information" },
+       { UserInternal4InformationNew, "UserInternal4InformationNew" },
+       { UserInternal5InformationNew, "UserInternal5InformationNew" },
+{ 0, NULL }
+};
+static int samr_dissect_element_UserInfo1_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo1_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo1_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo2_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo3_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo4_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo5_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo6_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo6_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo7_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo8_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo9_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo10_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo10_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo11_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo12_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo13_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo18_lm_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME_tfs = {
+   "SAMR_FIELD_ACCOUNT_NAME is SET",
+   "SAMR_FIELD_ACCOUNT_NAME is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_FULL_NAME_tfs = {
+   "SAMR_FIELD_FULL_NAME is SET",
+   "SAMR_FIELD_FULL_NAME is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_RID_tfs = {
+   "SAMR_FIELD_RID is SET",
+   "SAMR_FIELD_RID is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID_tfs = {
+   "SAMR_FIELD_PRIMARY_GID is SET",
+   "SAMR_FIELD_PRIMARY_GID is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs = {
+   "SAMR_FIELD_DESCRIPTION is SET",
+   "SAMR_FIELD_DESCRIPTION is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs = {
+   "SAMR_FIELD_COMMENT is SET",
+   "SAMR_FIELD_COMMENT is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY_tfs = {
+   "SAMR_FIELD_HOME_DIRECTORY is SET",
+   "SAMR_FIELD_HOME_DIRECTORY is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE_tfs = {
+   "SAMR_FIELD_HOME_DRIVE is SET",
+   "SAMR_FIELD_HOME_DRIVE is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT_tfs = {
+   "SAMR_FIELD_LOGON_SCRIPT is SET",
+   "SAMR_FIELD_LOGON_SCRIPT is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH_tfs = {
+   "SAMR_FIELD_PROFILE_PATH is SET",
+   "SAMR_FIELD_PROFILE_PATH is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs = {
+   "SAMR_FIELD_WORKSTATIONS is SET",
+   "SAMR_FIELD_WORKSTATIONS is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_LOGON_tfs = {
+   "SAMR_FIELD_LAST_LOGON is SET",
+   "SAMR_FIELD_LAST_LOGON is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF_tfs = {
+   "SAMR_FIELD_LAST_LOGOFF is SET",
+   "SAMR_FIELD_LAST_LOGOFF is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS_tfs = {
+   "SAMR_FIELD_LOGON_HOURS is SET",
+   "SAMR_FIELD_LOGON_HOURS is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT_tfs = {
+   "SAMR_FIELD_BAD_PWD_COUNT is SET",
+   "SAMR_FIELD_BAD_PWD_COUNT is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS_tfs = {
+   "SAMR_FIELD_NUM_LOGONS is SET",
+   "SAMR_FIELD_NUM_LOGONS is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE_tfs = {
+   "SAMR_FIELD_ALLOW_PWD_CHANGE is SET",
+   "SAMR_FIELD_ALLOW_PWD_CHANGE is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE_tfs = {
+   "SAMR_FIELD_FORCE_PWD_CHANGE is SET",
+   "SAMR_FIELD_FORCE_PWD_CHANGE is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE_tfs = {
+   "SAMR_FIELD_LAST_PWD_CHANGE is SET",
+   "SAMR_FIELD_LAST_PWD_CHANGE is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY_tfs = {
+   "SAMR_FIELD_ACCT_EXPIRY is SET",
+   "SAMR_FIELD_ACCT_EXPIRY is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS_tfs = {
+   "SAMR_FIELD_ACCT_FLAGS is SET",
+   "SAMR_FIELD_ACCT_FLAGS is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs = {
+   "SAMR_FIELD_PARAMETERS is SET",
+   "SAMR_FIELD_PARAMETERS is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE_tfs = {
+   "SAMR_FIELD_COUNTRY_CODE is SET",
+   "SAMR_FIELD_COUNTRY_CODE is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_CODE_PAGE_tfs = {
+   "SAMR_FIELD_CODE_PAGE is SET",
+   "SAMR_FIELD_CODE_PAGE is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT_tfs = {
+   "SAMR_FIELD_NT_PASSWORD_PRESENT is SET",
+   "SAMR_FIELD_NT_PASSWORD_PRESENT is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT_tfs = {
+   "SAMR_FIELD_LM_PASSWORD_PRESENT is SET",
+   "SAMR_FIELD_LM_PASSWORD_PRESENT is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA_tfs = {
+   "SAMR_FIELD_PRIVATE_DATA is SET",
+   "SAMR_FIELD_PRIVATE_DATA is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG_tfs = {
+   "SAMR_FIELD_EXPIRED_FLAG is SET",
+   "SAMR_FIELD_EXPIRED_FLAG is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_SEC_DESC_tfs = {
+   "SAMR_FIELD_SEC_DESC is SET",
+   "SAMR_FIELD_SEC_DESC is NOT SET",
+};
+static const true_false_string samr_FieldsPresent_SAMR_FIELD_OWF_PWD_tfs = {
+   "SAMR_FIELD_OWF_PWD is SET",
+   "SAMR_FIELD_OWF_PWD is NOT SET",
+};
+static int samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_lm_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_PwInfo_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string samr_samr_ConnectVersion_vals[] = {
+       { SAMR_CONNECT_PRE_W2K, "SAMR_CONNECT_PRE_W2K" },
+       { SAMR_CONNECT_W2K, "SAMR_CONNECT_W2K" },
+       { SAMR_CONNECT_AFTER_W2K, "SAMR_CONNECT_AFTER_W2K" },
+{ 0, NULL }
+};
+const value_string samr_samPwdChangeReason_vals[] = {
+       { SAM_PWD_CHANGE_NO_ERROR, "SAM_PWD_CHANGE_NO_ERROR" },
+       { SAM_PWD_CHANGE_PASSWORD_TOO_SHORT, "SAM_PWD_CHANGE_PASSWORD_TOO_SHORT" },
+       { SAM_PWD_CHANGE_PWD_IN_HISTORY, "SAM_PWD_CHANGE_PWD_IN_HISTORY" },
+       { SAM_PWD_CHANGE_USERNAME_IN_PASSWORD, "SAM_PWD_CHANGE_USERNAME_IN_PASSWORD" },
+       { SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD, "SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD" },
+       { SAM_PWD_CHANGE_NOT_COMPLEX, "SAM_PWD_CHANGE_NOT_COMPLEX" },
+       { SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT, "SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT" },
+       { SAM_PWD_CHANGE_FAILED_BY_FILTER, "SAM_PWD_CHANGE_FAILED_BY_FILTER" },
+       { SAM_PWD_CHANGE_PASSWORD_TOO_LONG, "SAM_PWD_CHANGE_PASSWORD_TOO_LONG" },
+{ 0, NULL }
+};
+static int samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ConnectInfo1_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET_tfs = {
+   "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET is SET",
+   "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET is NOT SET",
+};
+static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME_tfs = {
+   "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME is SET",
+   "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME is NOT SET",
+};
+static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME_tfs = {
+   "SAMR_VALIDATE_FIELD_LOCKOUT_TIME is SET",
+   "SAMR_VALIDATE_FIELD_LOCKOUT_TIME is NOT SET",
+};
+static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT_tfs = {
+   "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT is SET",
+   "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT is NOT SET",
+};
+static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH_tfs = {
+   "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH is SET",
+   "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH is NOT SET",
+};
+static const true_false_string samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_tfs = {
+   "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY is SET",
+   "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY is NOT SET",
+};
+const value_string samr_samr_ValidatePasswordLevel_vals[] = {
+       { NetValidateAuthentication, "NetValidateAuthentication" },
+       { NetValidatePasswordChange, "NetValidatePasswordChange" },
+       { NetValidatePasswordReset, "NetValidatePasswordReset" },
+{ 0, NULL }
+};
+const value_string samr_samr_ValidationStatus_vals[] = {
+       { SAMR_VALIDATION_STATUS_SUCCESS, "SAMR_VALIDATION_STATUS_SUCCESS" },
+       { SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE, "SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE" },
+       { SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT, "SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT" },
+       { SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED, "SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED" },
+       { SAMR_VALIDATION_STATUS_BAD_PASSWORD, "SAMR_VALIDATION_STATUS_BAD_PASSWORD" },
+       { SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT, "SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT" },
+       { SAMR_VALIDATION_STATUS_PWD_TOO_SHORT, "SAMR_VALIDATION_STATUS_PWD_TOO_SHORT" },
+       { SAMR_VALIDATION_STATUS_PWD_TOO_LONG, "SAMR_VALIDATION_STATUS_PWD_TOO_LONG" },
+       { SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH, "SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH" },
+       { SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT, "SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT" },
+       { SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR, "SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR" },
+{ 0, NULL }
+};
+static int samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_old_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_new_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_old_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_new_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_security_secinfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        ACB_DISABLED =  0x00000001 , */
+/* IDL:        ACB_HOMDIRREQ =  0x00000002 , */
+/* IDL:        ACB_PWNOTREQ =  0x00000004 , */
+/* IDL:        ACB_TEMPDUP =  0x00000008 , */
+/* IDL:        ACB_NORMAL =  0x00000010 , */
+/* IDL:        ACB_MNS =  0x00000020 , */
+/* IDL:        ACB_DOMTRUST =  0x00000040 , */
+/* IDL:        ACB_WSTRUST =  0x00000080 , */
+/* IDL:        ACB_SVRTRUST =  0x00000100 , */
+/* IDL:        ACB_PWNOEXP =  0x00000200 , */
+/* IDL:        ACB_AUTOLOCK =  0x00000400 , */
+/* IDL:        ACB_ENC_TXT_PWD_ALLOWED =  0x00000800 , */
+/* IDL:        ACB_SMARTCARD_REQUIRED =  0x00001000 , */
+/* IDL:        ACB_TRUSTED_FOR_DELEGATION =  0x00002000 , */
+/* IDL:        ACB_NOT_DELEGATED =  0x00004000 , */
+/* IDL:        ACB_USE_DES_KEY_ONLY =  0x00008000 , */
+/* IDL:        ACB_DONT_REQUIRE_PREAUTH =  0x00010000 , */
+/* IDL:        ACB_PW_EXPIRED =  0x00020000 , */
+/* IDL:        ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION =  0x00040000 , */
+/* IDL:        ACB_NO_AUTH_DATA_REQD =  0x00080000 , */
+/* IDL:        ACB_PARTIAL_SECRETS_ACCOUNT =  0x00100000 , */
+/* IDL:        ACB_USE_AES_KEYS =  0x00200000 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_AcctFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_DISABLED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "ACB_DISABLED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_HOMDIRREQ, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "ACB_HOMDIRREQ");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PWNOTREQ, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "ACB_PWNOTREQ");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_TEMPDUP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "ACB_TEMPDUP");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_NORMAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "ACB_NORMAL");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_MNS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "ACB_MNS");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_DOMTRUST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "ACB_DOMTRUST");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_WSTRUST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "ACB_WSTRUST");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_SVRTRUST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "ACB_SVRTRUST");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PWNOEXP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "ACB_PWNOEXP");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_AUTOLOCK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "ACB_AUTOLOCK");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "ACB_ENC_TXT_PWD_ALLOWED");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "ACB_SMARTCARD_REQUIRED");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "ACB_TRUSTED_FOR_DELEGATION");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "ACB_NOT_DELEGATED");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "ACB_USE_DES_KEY_ONLY");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "ACB_DONT_REQUIRE_PREAUTH");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PW_EXPIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "ACB_PW_EXPIRED");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "ACB_NO_AUTH_DATA_REQD");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "ACB_PARTIAL_SECRETS_ACCOUNT");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "ACB_USE_AES_KEYS");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_ACCESS_CONNECT_TO_SERVER =  0x00000001 , */
+/* IDL:        SAMR_ACCESS_SHUTDOWN_SERVER =  0x00000002 , */
+/* IDL:        SAMR_ACCESS_INITIALIZE_SERVER =  0x00000004 , */
+/* IDL:        SAMR_ACCESS_CREATE_DOMAIN =  0x00000008 , */
+/* IDL:        SAMR_ACCESS_ENUM_DOMAINS =  0x00000010 , */
+/* IDL:        SAMR_ACCESS_LOOKUP_DOMAIN =  0x00000020 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_ConnectAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_ConnectAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_ACCESS_CONNECT_TO_SERVER");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_ACCESS_SHUTDOWN_SERVER");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_ACCESS_INITIALIZE_SERVER");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_ACCESS_CREATE_DOMAIN");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_ACCESS_ENUM_DOMAINS");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SAMR_ACCESS_LOOKUP_DOMAIN");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_USER_ACCESS_GET_NAME_ETC =  0x00000001 , */
+/* IDL:        SAMR_USER_ACCESS_GET_LOCALE =  0x00000002 , */
+/* IDL:        SAMR_USER_ACCESS_SET_LOC_COM =  0x00000004 , */
+/* IDL:        SAMR_USER_ACCESS_GET_LOGONINFO =  0x00000008 , */
+/* IDL:        SAMR_USER_ACCESS_GET_ATTRIBUTES =  0x00000010 , */
+/* IDL:        SAMR_USER_ACCESS_SET_ATTRIBUTES =  0x00000020 , */
+/* IDL:        SAMR_USER_ACCESS_CHANGE_PASSWORD =  0x00000040 , */
+/* IDL:        SAMR_USER_ACCESS_SET_PASSWORD =  0x00000080 , */
+/* IDL:        SAMR_USER_ACCESS_GET_GROUPS =  0x00000100 , */
+/* IDL:        SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP =  0x00000200 , */
+/* IDL:        SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP =  0x00000400 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_UserAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_UserAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_GET_NAME_ETC");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_GET_LOCALE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_SET_LOC_COM");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_GET_LOGONINFO");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_GET_ATTRIBUTES");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_SET_ATTRIBUTES");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_CHANGE_PASSWORD");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_SET_PASSWORD");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_GET_GROUPS");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1 =  0x00000001 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_SET_INFO_1 =  0x00000002 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2 =  0x00000004 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_SET_INFO_2 =  0x00000008 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_CREATE_USER =  0x00000010 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_CREATE_GROUP =  0x00000020 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_CREATE_ALIAS =  0x00000040 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS =  0x00000080 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS =  0x00000100 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT =  0x00000200 , */
+/* IDL:        SAMR_DOMAIN_ACCESS_SET_INFO_3 =  0x00000400 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_DomainAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_DomainAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_SET_INFO_1");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_SET_INFO_2");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_CREATE_USER");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_CREATE_GROUP");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_CREATE_ALIAS");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "SAMR_DOMAIN_ACCESS_SET_INFO_3");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_GROUP_ACCESS_LOOKUP_INFO =  0x00000001 , */
+/* IDL:        SAMR_GROUP_ACCESS_SET_INFO =  0x00000002 , */
+/* IDL:        SAMR_GROUP_ACCESS_ADD_MEMBER =  0x00000004 , */
+/* IDL:        SAMR_GROUP_ACCESS_REMOVE_MEMBER =  0x00000008 , */
+/* IDL:        SAMR_GROUP_ACCESS_GET_MEMBERS =  0x00000010 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_GroupAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_GroupAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_GROUP_ACCESS_LOOKUP_INFO");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_GROUP_ACCESS_SET_INFO");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_GROUP_ACCESS_ADD_MEMBER");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_GROUP_ACCESS_REMOVE_MEMBER");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_GROUP_ACCESS_GET_MEMBERS");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_ALIAS_ACCESS_ADD_MEMBER =  0x00000001 , */
+/* IDL:        SAMR_ALIAS_ACCESS_REMOVE_MEMBER =  0x00000002 , */
+/* IDL:        SAMR_ALIAS_ACCESS_GET_MEMBERS =  0x00000004 , */
+/* IDL:        SAMR_ALIAS_ACCESS_LOOKUP_INFO =  0x00000008 , */
+/* IDL:        SAMR_ALIAS_ACCESS_SET_INFO =  0x00000010 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_AliasAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_AliasAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_ALIAS_ACCESS_ADD_MEMBER");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_ALIAS_ACCESS_REMOVE_MEMBER");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_ALIAS_ACCESS_GET_MEMBERS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_ALIAS_ACCESS_LOOKUP_INFO");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_ALIAS_ACCESS_SET_INFO");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 idx; */
+/* IDL:        lsa_String name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_SamEntry_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SamEntry_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SamEntry_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_SamEntry_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_SamEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_SamEntry);
+       }
+       
+       offset = samr_dissect_element_SamEntry_idx(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_SamEntry_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] samr_SamEntry *entries; */
+/* IDL: } */
+
+static int
+samr_dissect_element_SamArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SamArray_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SamArray_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SamArray_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_SamEntry)",hf_samr_samr_SamArray_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SamArray_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_SamArray_entries__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SamArray_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_SamEntry(tvb,offset,pinfo,tree,drep,hf_samr_samr_SamArray_entries,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_SamArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_SamArray);
+       }
+       
+       offset = samr_dissect_element_SamArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_SamArray_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DomainPasswordInformation=1, */
+/* IDL:        DomainGeneralInformation=2, */
+/* IDL:        DomainLogoffInformation=3, */
+/* IDL:        DomainOemInformation=4, */
+/* IDL:        DomainNameInformation=5, */
+/* IDL:        DomainReplicationInformation=6, */
+/* IDL:        DomainServerRoleInformation=7, */
+/* IDL:        DomainModifiedInformation=8, */
+/* IDL:        DomainStateInformation=9, */
+/* IDL:        DomainUasInformation=10, */
+/* IDL:        DomainGeneralInformation2=11, */
+/* IDL:        DomainLockoutInformation=12, */
+/* IDL:        DomainModifiedInformation2=13, */
+/* IDL: } */
+
+int
+samr_dissect_enum_DomainInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SAMR_ROLE_STANDALONE=0, */
+/* IDL:        SAMR_ROLE_DOMAIN_MEMBER=1, */
+/* IDL:        SAMR_ROLE_DOMAIN_BDC=2, */
+/* IDL:        SAMR_ROLE_DOMAIN_PDC=3, */
+/* IDL: } */
+
+int
+samr_dissect_enum_Role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DOMAIN_PASSWORD_COMPLEX =  0x00000001 , */
+/* IDL:        DOMAIN_PASSWORD_NO_ANON_CHANGE =  0x00000002 , */
+/* IDL:        DOMAIN_PASSWORD_NO_CLEAR_CHANGE =  0x00000004 , */
+/* IDL:        DOMAIN_PASSWORD_LOCKOUT_ADMINS =  0x00000008 , */
+/* IDL:        DOMAIN_PASSWORD_STORE_CLEARTEXT =  0x00000010 , */
+/* IDL:        DOMAIN_REFUSE_PASSWORD_CHANGE =  0x00000020 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_PasswordProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_PasswordProperties);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DOMAIN_PASSWORD_COMPLEX");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DOMAIN_PASSWORD_NO_ANON_CHANGE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DOMAIN_PASSWORD_NO_CLEAR_CHANGE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DOMAIN_PASSWORD_LOCKOUT_ADMINS");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DOMAIN_PASSWORD_STORE_CLEARTEXT");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DOMAIN_REFUSE_PASSWORD_CHANGE");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DOMAIN_SERVER_ENABLED=1, */
+/* IDL:        DOMAIN_SERVER_DISABLED=2, */
+/* IDL: } */
+
+int
+samr_dissect_enum_DomainServerState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 min_password_length; */
+/* IDL:        uint16 password_history_length; */
+/* IDL:        samr_PasswordProperties password_properties; */
+/* IDL:        dlong max_password_age; */
+/* IDL:        dlong min_password_age; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo1_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_min_password_length, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo1_password_history_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_password_history_length, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo1_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_password_properties, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo1_max_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_max_password_age, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo1_min_password_age(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo1_min_password_age, NULL);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo1);
+       }
+       
+       offset = samr_dissect_element_DomInfo1_min_password_length(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo1_password_history_length(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo1_password_properties(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo1_max_password_age(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo1_min_password_age(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME force_logoff_time; */
+/* IDL:        lsa_String oem_information; */
+/* IDL:        lsa_String domain_name; */
+/* IDL:        lsa_String primary; */
+/* IDL:        udlong sequence_num; */
+/* IDL:        samr_DomainServerState domain_server_state; */
+/* IDL:        samr_Role role; */
+/* IDL:        uint32 unknown3; */
+/* IDL:        uint32 num_users; */
+/* IDL:        uint32 num_groups; */
+/* IDL:        uint32 num_aliases; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomGeneralInformation_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_force_logoff_time);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation_oem_information,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation_domain_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation_primary,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_sequence_num, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_domain_server_state, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_role, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_unknown3, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_num_users, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_num_groups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_num_groups, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation_num_aliases(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation_num_aliases, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation);
+       }
+       
+       offset = samr_dissect_element_DomGeneralInformation_force_logoff_time(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_oem_information(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_primary(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_sequence_num(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_domain_server_state(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_role(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_num_users(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_num_groups(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation_num_aliases(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME force_logoff_time; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo3_force_logoff_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo3_force_logoff_time);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo3);
+       }
+       
+       offset = samr_dissect_element_DomInfo3_force_logoff_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String oem_information; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomOEMInformation_oem_information(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomOEMInformation_oem_information,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomOEMInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomOEMInformation);
+       }
+       
+       offset = samr_dissect_element_DomOEMInformation_oem_information(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String domain_name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo5_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomInfo5_domain_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo5);
+       }
+       
+       offset = samr_dissect_element_DomInfo5_domain_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String primary; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo6_primary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomInfo6_primary,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo6);
+       }
+       
+       offset = samr_dissect_element_DomInfo6_primary(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_Role role; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo7_role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_Role(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo7_role, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo7);
+       }
+       
+       offset = samr_dissect_element_DomInfo7_role(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper sequence_num; */
+/* IDL:        NTTIME domain_create_time; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo8_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo8_sequence_num, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo8_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo8_domain_create_time);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo8);
+       }
+       
+       offset = samr_dissect_element_DomInfo8_sequence_num(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo8_domain_create_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_DomainServerState domain_server_state; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo9_domain_server_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_DomainServerState(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo9_domain_server_state, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo9);
+       }
+       
+       offset = samr_dissect_element_DomInfo9_domain_server_state(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_DomGeneralInformation general; */
+/* IDL:        hyper lockout_duration; */
+/* IDL:        hyper lockout_window; */
+/* IDL:        uint16 lockout_threshold; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomGeneralInformation2_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomGeneralInformation2_general,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation2_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation2_lockout_duration, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation2_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation2_lockout_window, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomGeneralInformation2_lockout_threshold, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomGeneralInformation2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomGeneralInformation2);
+       }
+       
+       offset = samr_dissect_element_DomGeneralInformation2_general(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation2_lockout_duration(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation2_lockout_window(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomGeneralInformation2_lockout_threshold(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper lockout_duration; */
+/* IDL:        hyper lockout_window; */
+/* IDL:        uint16 lockout_threshold; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo12_lockout_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo12_lockout_duration, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo12_lockout_window(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo12_lockout_window, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo12_lockout_threshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo12_lockout_threshold, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo12);
+       }
+       
+       offset = samr_dissect_element_DomInfo12_lockout_duration(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo12_lockout_window(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo12_lockout_threshold(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper sequence_num; */
+/* IDL:        NTTIME domain_create_time; */
+/* IDL:        hyper modified_count_at_last_promotion; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomInfo13_sequence_num(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo13_sequence_num, NULL);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo13_domain_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo13_domain_create_time);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_samr_samr_DomInfo13_modified_count_at_last_promotion, NULL);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DomInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomInfo13);
+       }
+       
+       offset = samr_dissect_element_DomInfo13_sequence_num(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo13_domain_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DomInfo13_modified_count_at_last_promotion(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [case(1)] samr_DomInfo1 info1; */
+/* IDL: [case(2)] [case(2)] samr_DomGeneralInformation general; */
+/* IDL: [case(3)] [case(3)] samr_DomInfo3 info3; */
+/* IDL: [case(4)] [case(4)] samr_DomOEMInformation oem; */
+/* IDL: [case(5)] [case(5)] samr_DomInfo5 info5; */
+/* IDL: [case(6)] [case(6)] samr_DomInfo6 info6; */
+/* IDL: [case(7)] [case(7)] samr_DomInfo7 info7; */
+/* IDL: [case(8)] [case(8)] samr_DomInfo8 info8; */
+/* IDL: [case(9)] [case(9)] samr_DomInfo9 info9; */
+/* IDL: [case(11)] [case(11)] samr_DomGeneralInformation2 general2; */
+/* IDL: [case(12)] [case(12)] samr_DomInfo12 info12; */
+/* IDL: [case(13)] [case(13)] samr_DomInfo13 info13; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DomainInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info1,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_general(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomGeneralInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_general,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo3(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info3,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_oem(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomOEMInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_oem,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo5(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info5,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo6(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info6,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo7(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info7,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo8(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info8,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo9(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info9,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_general2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomGeneralInformation2(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_general2,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo12(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info12,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DomainInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo13(tvb,offset,pinfo,tree,drep,hf_samr_samr_DomainInfo_info13,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_DomainInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_DomainInfo");
+               tree = proto_item_add_subtree(item, ett_samr_samr_DomainInfo);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = samr_dissect_element_DomainInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = samr_dissect_element_DomainInfo_general(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = samr_dissect_element_DomainInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = samr_dissect_element_DomainInfo_oem(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = samr_dissect_element_DomainInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = samr_dissect_element_DomainInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = samr_dissect_element_DomainInfo_info7(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = samr_dissect_element_DomainInfo_info8(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 9:
+                       offset = samr_dissect_element_DomainInfo_info9(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 11:
+                       offset = samr_dissect_element_DomainInfo_general2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 12:
+                       offset = samr_dissect_element_DomainInfo_info12(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 13:
+                       offset = samr_dissect_element_DomainInfo_info13(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [range(0,1024)] uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] uint32 *ids; */
+/* IDL: } */
+
+static int
+samr_dissect_element_Ids_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Ids_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Ids_ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Ids_ids_, NDR_POINTER_UNIQUE, "Pointer to Ids (uint32)",hf_samr_samr_Ids_ids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Ids_ids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_Ids_ids__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Ids_ids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Ids_ids, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_Ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_Ids);
+       }
+       
+       offset = samr_dissect_element_Ids_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_Ids_ids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SE_GROUP_MANDATORY =  0x00000001 , */
+/* IDL:        SE_GROUP_ENABLED_BY_DEFAULT =  0x00000002 , */
+/* IDL:        SE_GROUP_ENABLED =  0x00000004 , */
+/* IDL:        SE_GROUP_OWNER =  0x00000008 , */
+/* IDL:        SE_GROUP_USE_FOR_DENY_ONLY =  0x00000010 , */
+/* IDL:        SE_GROUP_RESOURCE =  0x20000000 , */
+/* IDL:        SE_GROUP_LOGON_ID =  0xC0000000 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_GroupAttrs);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SE_GROUP_MANDATORY");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SE_GROUP_ENABLED_BY_DEFAULT");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SE_GROUP_ENABLED");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_OWNER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SE_GROUP_OWNER");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SE_GROUP_USE_FOR_DENY_ONLY");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "SE_GROUP_RESOURCE");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID, tvb, offset-4, 4, flags);
+       if (flags&( 0xC0000000 )){
+               proto_item_append_text(item, "SE_GROUP_LOGON_ID");
+               if (flags & (~( 0xC0000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0xC0000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String name; */
+/* IDL:        samr_GroupAttrs attributes; */
+/* IDL:        uint32 num_members; */
+/* IDL:        lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_GroupInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfoAll_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfoAll_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_GroupInfoAll_attributes, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GroupInfoAll_num_members, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfoAll_description,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_GroupInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAll);
+       }
+       
+       offset = samr_dissect_element_GroupInfoAll_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_GroupInfoAll_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_GroupInfoAll_num_members(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_GroupInfoAll_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_GroupAttrs attributes; */
+/* IDL: } */
+
+static int
+samr_dissect_element_GroupInfoAttributes_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_GroupInfoAttributes_attributes, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_GroupInfoAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoAttributes);
+       }
+       
+       offset = samr_dissect_element_GroupInfoAttributes_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_GroupInfoDescription_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfoDescription_description,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_GroupInfoDescription(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfoDescription);
+       }
+       
+       offset = samr_dissect_element_GroupInfoDescription_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        GROUPINFOALL=1, */
+/* IDL:        GROUPINFONAME=2, */
+/* IDL:        GROUPINFOATTRIBUTES=3, */
+/* IDL:        GROUPINFODESCRIPTION=4, */
+/* IDL:        GROUPINFOALL2=5, */
+/* IDL: } */
+
+int
+samr_dissect_enum_GroupInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(samr_GroupInfoEnum)] union { */
+/* IDL: [case(GROUPINFOALL)] [case(GROUPINFOALL)] samr_GroupInfoAll all; */
+/* IDL: [case(GROUPINFONAME)] [case(GROUPINFONAME)] lsa_String name; */
+/* IDL: [case(GROUPINFOATTRIBUTES)] [case(GROUPINFOATTRIBUTES)] samr_GroupInfoAttributes attributes; */
+/* IDL: [case(GROUPINFODESCRIPTION)] [case(GROUPINFODESCRIPTION)] lsa_String description; */
+/* IDL: [case(GROUPINFOALL2)] [case(GROUPINFOALL2)] samr_GroupInfoAll all2; */
+/* IDL: } */
+
+static int
+samr_dissect_element_GroupInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_all,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfo_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_GroupInfoAttributes(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_attributes,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_description,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GroupInfo_all2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_GroupInfoAll(tvb,offset,pinfo,tree,drep,hf_samr_samr_GroupInfo_all2,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_GroupInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_GroupInfo");
+               tree = proto_item_add_subtree(item, ett_samr_samr_GroupInfo);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case GROUPINFOALL:
+                       offset = samr_dissect_element_GroupInfo_all(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case GROUPINFONAME:
+                       offset = samr_dissect_element_GroupInfo_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case GROUPINFOATTRIBUTES:
+                       offset = samr_dissect_element_GroupInfo_attributes(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case GROUPINFODESCRIPTION:
+                       offset = samr_dissect_element_GroupInfo_description(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case GROUPINFOALL2:
+                       offset = samr_dissect_element_GroupInfo_all2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] uint32 *rids; */
+/* IDL:        [unique(1)] [size_is(count)] samr_GroupAttrs *attributes; */
+/* IDL: } */
+
+static int
+samr_dissect_element_RidAttrArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidAttrArray_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidAttrArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (uint32)",hf_samr_samr_RidAttrArray_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidAttrArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_rids__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidAttrArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidAttrArray_rids, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidAttrArray_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_attributes_, NDR_POINTER_UNIQUE, "Pointer to Attributes (samr_GroupAttrs)",hf_samr_samr_RidAttrArray_attributes);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidAttrArray_attributes_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidAttrArray_attributes__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidAttrArray_attributes__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidAttrArray_attributes, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_RidAttrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_RidAttrArray);
+       }
+       
+       offset = samr_dissect_element_RidAttrArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_RidAttrArray_rids(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_RidAttrArray_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String name; */
+/* IDL:        uint32 num_members; */
+/* IDL:        lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_AliasInfoAll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfoAll_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AliasInfoAll_num_members(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AliasInfoAll_num_members, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AliasInfoAll_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfoAll_description,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_AliasInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfoAll);
+       }
+       
+       offset = samr_dissect_element_AliasInfoAll_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_AliasInfoAll_num_members(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_AliasInfoAll_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        ALIASINFOALL=1, */
+/* IDL:        ALIASINFONAME=2, */
+/* IDL:        ALIASINFODESCRIPTION=3, */
+/* IDL: } */
+
+int
+samr_dissect_enum_AliasInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [switch_type(samr_AliasInfoEnum)] union { */
+/* IDL: [case(ALIASINFOALL)] [case(ALIASINFOALL)] samr_AliasInfoAll all; */
+/* IDL: [case(ALIASINFONAME)] [case(ALIASINFONAME)] lsa_String name; */
+/* IDL: [case(ALIASINFODESCRIPTION)] [case(ALIASINFODESCRIPTION)] lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_AliasInfo_all(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_AliasInfoAll(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfo_all,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AliasInfo_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfo_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AliasInfo_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_AliasInfo_description,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_AliasInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_AliasInfo");
+               tree = proto_item_add_subtree(item, ett_samr_samr_AliasInfo);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case ALIASINFOALL:
+                       offset = samr_dissect_element_AliasInfo_all(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case ALIASINFONAME:
+                       offset = samr_dissect_element_AliasInfo_name(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case ALIASINFODESCRIPTION:
+                       offset = samr_dissect_element_AliasInfo_description(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        UserGeneralInformation=1, */
+/* IDL:        UserPreferencesInformation=2, */
+/* IDL:        UserLogonInformation=3, */
+/* IDL:        UserLogonHoursInformation=4, */
+/* IDL:        UserAccountInformation=5, */
+/* IDL:        UserNameInformation=6, */
+/* IDL:        UserAccountNameInformation=7, */
+/* IDL:        UserFullNameInformation=8, */
+/* IDL:        UserPrimaryGroupInformation=9, */
+/* IDL:        UserHomeInformation=10, */
+/* IDL:        UserScriptInformation=11, */
+/* IDL:        UserProfileInformation=12, */
+/* IDL:        UserAdminCommentInformation=13, */
+/* IDL:        UserWorkStationsInformation=14, */
+/* IDL:        UserControlInformation=16, */
+/* IDL:        UserExpiresInformation=17, */
+/* IDL:        UserInternal1Information=18, */
+/* IDL:        UserParametersInformation=20, */
+/* IDL:        UserAllInformation=21, */
+/* IDL:        UserInternal4Information=23, */
+/* IDL:        UserInternal5Information=24, */
+/* IDL:        UserInternal4InformationNew=25, */
+/* IDL:        UserInternal5InformationNew=26, */
+/* IDL: } */
+
+int
+samr_dissect_enum_UserInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL:        uint32 primary_gid; */
+/* IDL:        lsa_String description; */
+/* IDL:        lsa_String comment; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo1_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo1_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_full_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo1_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo1_primary_gid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_description,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo1_comment,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo1);
+       }
+       
+       offset = samr_dissect_element_UserInfo1_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo1_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo1_primary_gid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo1_description(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo1_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String comment; */
+/* IDL:        lsa_String reserved; */
+/* IDL:        uint16 country_code; */
+/* IDL:        uint16 code_page; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo2_comment,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo2_reserved,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo2_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo2_country_code, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo2_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo2_code_page, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo2);
+       }
+       
+       offset = samr_dissect_element_UserInfo2_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo2_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo2_country_code(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo2_code_page(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 units_per_week; */
+/* IDL:        [unique(1)] [length_is(units_per_week/8)] [size_is(1260)] uint8 *bits; */
+/* IDL: } */
+
+static int
+samr_dissect_element_LogonHours_units_per_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_LogonHours_units_per_week, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LogonHours_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LogonHours_bits_, NDR_POINTER_UNIQUE, "Pointer to Bits (uint8)",hf_samr_samr_LogonHours_bits);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LogonHours_bits_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LogonHours_bits__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LogonHours_bits__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_LogonHours_bits, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_LogonHours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_LogonHours);
+       }
+       
+       offset = samr_dissect_element_LogonHours_units_per_week(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_LogonHours_bits(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 primary_gid; */
+/* IDL:        lsa_String home_directory; */
+/* IDL:        lsa_String home_drive; */
+/* IDL:        lsa_String logon_script; */
+/* IDL:        lsa_String profile_path; */
+/* IDL:        lsa_String workstations; */
+/* IDL:        NTTIME last_logon; */
+/* IDL:        NTTIME last_logoff; */
+/* IDL:        NTTIME last_password_change; */
+/* IDL:        NTTIME allow_password_change; */
+/* IDL:        NTTIME force_password_change; */
+/* IDL:        samr_LogonHours logon_hours; */
+/* IDL:        uint16 bad_password_count; */
+/* IDL:        uint16 logon_count; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo3_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_full_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_primary_gid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_home_directory,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_home_drive,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_logon_script,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_profile_path,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_workstations,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_last_logon);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_last_logoff);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_last_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_allow_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_force_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo3_logon_hours,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_bad_password_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_logon_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo3_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo3_acct_flags, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo3);
+       }
+       
+       offset = samr_dissect_element_UserInfo3_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_primary_gid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_home_drive(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_logon_script(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_profile_path(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_workstations(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_last_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_last_logoff(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_allow_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_force_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_logon_hours(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_bad_password_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo3_acct_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_LogonHours logon_hours; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo4_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo4_logon_hours,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo4);
+       }
+       
+       offset = samr_dissect_element_UserInfo4_logon_hours(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 primary_gid; */
+/* IDL:        lsa_String home_directory; */
+/* IDL:        lsa_String home_drive; */
+/* IDL:        lsa_String logon_script; */
+/* IDL:        lsa_String profile_path; */
+/* IDL:        lsa_String description; */
+/* IDL:        lsa_String workstations; */
+/* IDL:        NTTIME last_logon; */
+/* IDL:        NTTIME last_logoff; */
+/* IDL:        samr_LogonHours logon_hours; */
+/* IDL:        uint16 bad_password_count; */
+/* IDL:        uint16 logon_count; */
+/* IDL:        NTTIME last_password_change; */
+/* IDL:        NTTIME acct_expiry; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo5_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_full_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_primary_gid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_home_directory,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_home_drive,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_logon_script,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_profile_path,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_description,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_workstations,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_last_logon);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_last_logoff);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo5_logon_hours,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_bad_password_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_logon_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_last_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_acct_expiry);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo5_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo5_acct_flags, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo5);
+       }
+       
+       offset = samr_dissect_element_UserInfo5_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_primary_gid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_home_drive(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_logon_script(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_profile_path(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_description(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_workstations(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_last_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_last_logoff(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_logon_hours(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_bad_password_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_acct_expiry(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo5_acct_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo6_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo6_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo6_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo6_full_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo6);
+       }
+       
+       offset = samr_dissect_element_UserInfo6_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo6_full_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String account_name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo7_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo7_account_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo7);
+       }
+       
+       offset = samr_dissect_element_UserInfo7_account_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String full_name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo8_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo8_full_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo8);
+       }
+       
+       offset = samr_dissect_element_UserInfo8_full_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 primary_gid; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo9_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo9_primary_gid, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo9);
+       }
+       
+       offset = samr_dissect_element_UserInfo9_primary_gid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String home_directory; */
+/* IDL:        lsa_String home_drive; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo10_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo10_home_directory,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo10_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo10_home_drive,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo10);
+       }
+       
+       offset = samr_dissect_element_UserInfo10_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo10_home_drive(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String logon_script; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo11_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo11_logon_script,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo11);
+       }
+       
+       offset = samr_dissect_element_UserInfo11_logon_script(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String profile_path; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo12_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo12_profile_path,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo12);
+       }
+       
+       offset = samr_dissect_element_UserInfo12_profile_path(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo13_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo13_description,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo13);
+       }
+       
+       offset = samr_dissect_element_UserInfo13_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_String workstations; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo14_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo14_workstations,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo14);
+       }
+       
+       offset = samr_dissect_element_UserInfo14_workstations(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo16_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo16_acct_flags, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo16);
+       }
+       
+       offset = samr_dissect_element_UserInfo16_acct_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME acct_expiry; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo17_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo17_acct_expiry);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo17);
+       }
+       
+       offset = samr_dissect_element_UserInfo17_acct_expiry(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 hash[16]; */
+/* IDL: } */
+
+static int
+samr_dissect_element_Password_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = samr_dissect_element_Password_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Password_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_Password_hash, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_Password);
+       }
+       
+       offset = samr_dissect_element_Password_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_Password nt_pwd; */
+/* IDL:        samr_Password lm_pwd; */
+/* IDL:        uint8 nt_pwd_active; */
+/* IDL:        uint8 lm_pwd_active; */
+/* IDL:        uint8 password_expired; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo18_nt_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo18_nt_pwd,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo18_lm_pwd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo18_lm_pwd,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo18_nt_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_nt_pwd_active, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo18_lm_pwd_active(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_lm_pwd_active, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo18_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo18_password_expired, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo18);
+       }
+       
+       offset = samr_dissect_element_UserInfo18_nt_pwd(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo18_lm_pwd(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo18_nt_pwd_active(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo18_lm_pwd_active(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo18_password_expired(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        lsa_BinaryString parameters; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo20_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo20_parameters,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo20);
+       }
+       
+       offset = samr_dissect_element_UserInfo20_parameters(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_FIELD_ACCOUNT_NAME =  0x00000001 , */
+/* IDL:        SAMR_FIELD_FULL_NAME =  0x00000002 , */
+/* IDL:        SAMR_FIELD_RID =  0x00000004 , */
+/* IDL:        SAMR_FIELD_PRIMARY_GID =  0x00000008 , */
+/* IDL:        SAMR_FIELD_DESCRIPTION =  0x00000010 , */
+/* IDL:        SAMR_FIELD_COMMENT =  0x00000020 , */
+/* IDL:        SAMR_FIELD_HOME_DIRECTORY =  0x00000040 , */
+/* IDL:        SAMR_FIELD_HOME_DRIVE =  0x00000080 , */
+/* IDL:        SAMR_FIELD_LOGON_SCRIPT =  0x00000100 , */
+/* IDL:        SAMR_FIELD_PROFILE_PATH =  0x00000200 , */
+/* IDL:        SAMR_FIELD_WORKSTATIONS =  0x00000400 , */
+/* IDL:        SAMR_FIELD_LAST_LOGON =  0x00000800 , */
+/* IDL:        SAMR_FIELD_LAST_LOGOFF =  0x00001000 , */
+/* IDL:        SAMR_FIELD_LOGON_HOURS =  0x00002000 , */
+/* IDL:        SAMR_FIELD_BAD_PWD_COUNT =  0x00004000 , */
+/* IDL:        SAMR_FIELD_NUM_LOGONS =  0x00008000 , */
+/* IDL:        SAMR_FIELD_ALLOW_PWD_CHANGE =  0x00010000 , */
+/* IDL:        SAMR_FIELD_FORCE_PWD_CHANGE =  0x00020000 , */
+/* IDL:        SAMR_FIELD_LAST_PWD_CHANGE =  0x00040000 , */
+/* IDL:        SAMR_FIELD_ACCT_EXPIRY =  0x00080000 , */
+/* IDL:        SAMR_FIELD_ACCT_FLAGS =  0x00100000 , */
+/* IDL:        SAMR_FIELD_PARAMETERS =  0x00200000 , */
+/* IDL:        SAMR_FIELD_COUNTRY_CODE =  0x00400000 , */
+/* IDL:        SAMR_FIELD_CODE_PAGE =  0x00800000 , */
+/* IDL:        SAMR_FIELD_NT_PASSWORD_PRESENT =  0x01000000 , */
+/* IDL:        SAMR_FIELD_LM_PASSWORD_PRESENT =  0x02000000 , */
+/* IDL:        SAMR_FIELD_PRIVATE_DATA =  0x04000000 , */
+/* IDL:        SAMR_FIELD_EXPIRED_FLAG =  0x08000000 , */
+/* IDL:        SAMR_FIELD_SEC_DESC =  0x10000000 , */
+/* IDL:        SAMR_FIELD_OWF_PWD =  0x20000000 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_FieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_FieldsPresent);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_FIELD_ACCOUNT_NAME");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_FIELD_FULL_NAME");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_RID, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_FIELD_RID");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_FIELD_PRIMARY_GID");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_FIELD_DESCRIPTION");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SAMR_FIELD_COMMENT");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "SAMR_FIELD_HOME_DIRECTORY");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "SAMR_FIELD_HOME_DRIVE");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "SAMR_FIELD_LOGON_SCRIPT");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "SAMR_FIELD_PROFILE_PATH");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "SAMR_FIELD_WORKSTATIONS");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "SAMR_FIELD_LAST_LOGON");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "SAMR_FIELD_LAST_LOGOFF");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "SAMR_FIELD_LOGON_HOURS");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "SAMR_FIELD_BAD_PWD_COUNT");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "SAMR_FIELD_NUM_LOGONS");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "SAMR_FIELD_ALLOW_PWD_CHANGE");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "SAMR_FIELD_FORCE_PWD_CHANGE");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "SAMR_FIELD_LAST_PWD_CHANGE");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "SAMR_FIELD_ACCT_EXPIRY");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "SAMR_FIELD_ACCT_FLAGS");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "SAMR_FIELD_PARAMETERS");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "SAMR_FIELD_COUNTRY_CODE");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "SAMR_FIELD_CODE_PAGE");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "SAMR_FIELD_NT_PASSWORD_PRESENT");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "SAMR_FIELD_LM_PASSWORD_PRESENT");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x04000000 )){
+               proto_item_append_text(item, "SAMR_FIELD_PRIVATE_DATA");
+               if (flags & (~( 0x04000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04000000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "SAMR_FIELD_EXPIRED_FLAG");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "SAMR_FIELD_SEC_DESC");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "SAMR_FIELD_OWF_PWD");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NTTIME last_logon; */
+/* IDL:        NTTIME last_logoff; */
+/* IDL:        NTTIME last_password_change; */
+/* IDL:        NTTIME acct_expiry; */
+/* IDL:        NTTIME allow_password_change; */
+/* IDL:        NTTIME force_password_change; */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String full_name; */
+/* IDL:        lsa_String home_directory; */
+/* IDL:        lsa_String home_drive; */
+/* IDL:        lsa_String logon_script; */
+/* IDL:        lsa_String profile_path; */
+/* IDL:        lsa_String description; */
+/* IDL:        lsa_String workstations; */
+/* IDL:        lsa_String comment; */
+/* IDL:        lsa_BinaryString parameters; */
+/* IDL:        lsa_BinaryString lm_owf_password; */
+/* IDL:        lsa_BinaryString nt_owf_password; */
+/* IDL:        lsa_String private_data; */
+/* IDL:        uint32 buf_count; */
+/* IDL:        [unique(1)] [size_is(buf_count)] uint8 *buffer; */
+/* IDL:        uint32 rid; */
+/* IDL:        uint32 primary_gid; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL:        samr_FieldsPresent fields_present; */
+/* IDL:        samr_LogonHours logon_hours; */
+/* IDL:        uint16 bad_password_count; */
+/* IDL:        uint16 logon_count; */
+/* IDL:        uint16 country_code; */
+/* IDL:        uint16 code_page; */
+/* IDL:        uint8 lm_password_set; */
+/* IDL:        uint8 nt_password_set; */
+/* IDL:        uint8 password_expired; */
+/* IDL:        uint8 private_data_sensitive; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo21_last_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_logon);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_last_logoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_logoff);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_last_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_acct_expiry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_acct_expiry);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_allow_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_allow_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_force_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_force_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_full_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_home_directory(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_home_directory,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_home_drive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_home_drive,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_logon_script(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_logon_script,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_profile_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_profile_path,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_description,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_workstations(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_workstations,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_comment,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_parameters,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_lm_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_lm_owf_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_nt_owf_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_BinaryString(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_nt_owf_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_private_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_private_data,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_buf_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_buf_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_samr_samr_UserInfo21_buffer);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_UserInfo21_buffer__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_buffer, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_primary_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_primary_gid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_FieldsPresent(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_fields_present, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_logon_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_LogonHours(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo21_logon_hours,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_bad_password_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_bad_password_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_logon_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_logon_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_country_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_country_code, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_code_page(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_code_page, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_lm_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_lm_password_set, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_nt_password_set(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_nt_password_set, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_password_expired, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo21_private_data_sensitive(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo21_private_data_sensitive, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo21);
+       }
+       
+       offset = samr_dissect_element_UserInfo21_last_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_last_logoff(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_acct_expiry(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_allow_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_force_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_full_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_home_directory(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_home_drive(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_logon_script(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_profile_path(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_description(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_workstations(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_lm_owf_password(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_nt_owf_password(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_private_data(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_buf_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_buffer(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_primary_gid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_fields_present(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_logon_hours(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_bad_password_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_logon_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_country_code(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_code_page(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_lm_password_set(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_nt_password_set(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_password_expired(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo21_private_data_sensitive(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 data[516]; */
+/* IDL: } */
+
+static int
+samr_dissect_element_CryptPassword_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 516; i++)
+               offset = samr_dissect_element_CryptPassword_data_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CryptPassword_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_CryptPassword_data, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_CryptPassword);
+       }
+       
+       offset = samr_dissect_element_CryptPassword_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_UserInfo21 info; */
+/* IDL:        samr_CryptPassword password; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo23_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo23_info,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo23_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo23_password,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo23);
+       }
+       
+       offset = samr_dissect_element_UserInfo23_info(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo23_password(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_CryptPassword password; */
+/* IDL:        uint8 password_expired; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo24_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo24_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo24_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo24_password_expired, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo24);
+       }
+       
+       offset = samr_dissect_element_UserInfo24_password(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo24_password_expired(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 data[532]; */
+/* IDL: } */
+
+static int
+samr_dissect_element_CryptPasswordEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 532; i++)
+               offset = samr_dissect_element_CryptPasswordEx_data_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CryptPasswordEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_CryptPasswordEx_data, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_CryptPasswordEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_CryptPasswordEx);
+       }
+       
+       offset = samr_dissect_element_CryptPasswordEx_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_UserInfo21 info; */
+/* IDL:        samr_CryptPasswordEx password; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo25_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo25_info,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo25_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo25_password,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo25);
+       }
+       
+       offset = samr_dissect_element_UserInfo25_info(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo25_password(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_CryptPasswordEx password; */
+/* IDL:        uint8 password_expired; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo26_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPasswordEx(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo26_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo26_password_expired(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_UserInfo26_password_expired, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_UserInfo26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo26);
+       }
+       
+       offset = samr_dissect_element_UserInfo26_password(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_UserInfo26_password_expired(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [case(1)] samr_UserInfo1 info1; */
+/* IDL: [case(2)] [case(2)] samr_UserInfo2 info2; */
+/* IDL: [case(3)] [case(3)] samr_UserInfo3 info3; */
+/* IDL: [case(4)] [case(4)] samr_UserInfo4 info4; */
+/* IDL: [case(5)] [case(5)] samr_UserInfo5 info5; */
+/* IDL: [case(6)] [case(6)] samr_UserInfo6 info6; */
+/* IDL: [case(7)] [case(7)] samr_UserInfo7 info7; */
+/* IDL: [case(8)] [case(8)] samr_UserInfo8 info8; */
+/* IDL: [case(9)] [case(9)] samr_UserInfo9 info9; */
+/* IDL: [case(10)] [case(10)] samr_UserInfo10 info10; */
+/* IDL: [case(11)] [case(11)] samr_UserInfo11 info11; */
+/* IDL: [case(12)] [case(12)] samr_UserInfo12 info12; */
+/* IDL: [case(13)] [case(13)] samr_UserInfo13 info13; */
+/* IDL: [case(14)] [case(14)] samr_UserInfo14 info14; */
+/* IDL: [case(16)] [case(16)] samr_UserInfo16 info16; */
+/* IDL: [case(17)] [case(17)] samr_UserInfo17 info17; */
+/* IDL: [case(18)] [case(18)] samr_UserInfo18 info18; */
+/* IDL: [case(20)] [case(20)] samr_UserInfo20 info20; */
+/* IDL: [case(21)] [case(21)] samr_UserInfo21 info21; */
+/* IDL: [case(23)] [case(23)] samr_UserInfo23 info23; */
+/* IDL: [case(24)] [case(24)] samr_UserInfo24 info24; */
+/* IDL: [case(25)] [case(25)] samr_UserInfo25 info25; */
+/* IDL: [case(26)] [case(26)] samr_UserInfo26 info26; */
+/* IDL: } */
+
+static int
+samr_dissect_element_UserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info1,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo2(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info2,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo3(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info3,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo4(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info4,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo5(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info5,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo6(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info6,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo7(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info7,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo8(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info8,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo9(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info9,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo10(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info10,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo11(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info11,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo12(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info12,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo13(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info13,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo14(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info14,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo16(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info16,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo17(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info17,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo18(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info18,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo20(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info20,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo21(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info21,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo23(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info23,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo24(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info24,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo25(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info25,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_UserInfo_info26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_UserInfo26(tvb,offset,pinfo,tree,drep,hf_samr_samr_UserInfo_info26,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_UserInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_UserInfo");
+               tree = proto_item_add_subtree(item, ett_samr_samr_UserInfo);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = samr_dissect_element_UserInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = samr_dissect_element_UserInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = samr_dissect_element_UserInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = samr_dissect_element_UserInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = samr_dissect_element_UserInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = samr_dissect_element_UserInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = samr_dissect_element_UserInfo_info7(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = samr_dissect_element_UserInfo_info8(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 9:
+                       offset = samr_dissect_element_UserInfo_info9(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 10:
+                       offset = samr_dissect_element_UserInfo_info10(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 11:
+                       offset = samr_dissect_element_UserInfo_info11(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 12:
+                       offset = samr_dissect_element_UserInfo_info12(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 13:
+                       offset = samr_dissect_element_UserInfo_info13(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 14:
+                       offset = samr_dissect_element_UserInfo_info14(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 16:
+                       offset = samr_dissect_element_UserInfo_info16(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 17:
+                       offset = samr_dissect_element_UserInfo_info17(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 18:
+                       offset = samr_dissect_element_UserInfo_info18(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 20:
+                       offset = samr_dissect_element_UserInfo_info20(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 21:
+                       offset = samr_dissect_element_UserInfo_info21(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 23:
+                       offset = samr_dissect_element_UserInfo_info23(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 24:
+                       offset = samr_dissect_element_UserInfo_info24(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 25:
+                       offset = samr_dissect_element_UserInfo_info25(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 26:
+                       offset = samr_dissect_element_UserInfo_info26(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 rid; */
+/* IDL:        samr_GroupAttrs attributes; */
+/* IDL: } */
+
+static int
+samr_dissect_element_RidWithAttribute_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttribute_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidWithAttribute_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttribute_attributes, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_RidWithAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttribute);
+       }
+       
+       offset = samr_dissect_element_RidWithAttribute_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_RidWithAttribute_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] samr_RidWithAttribute *rids; */
+/* IDL: } */
+
+static int
+samr_dissect_element_RidWithAttributeArray_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidWithAttributeArray_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidWithAttributeArray_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids_, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttribute)",hf_samr_samr_RidWithAttributeArray_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidWithAttributeArray_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidWithAttributeArray_rids__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidWithAttributeArray_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_RidWithAttribute(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidWithAttributeArray_rids,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_RidWithAttributeArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_RidWithAttributeArray);
+       }
+       
+       offset = samr_dissect_element_RidWithAttributeArray_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_RidWithAttributeArray_rids(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 idx; */
+/* IDL:        uint32 rid; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String description; */
+/* IDL:        lsa_String full_name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispEntryGeneral_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryGeneral_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryGeneral_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryGeneral_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryGeneral_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryGeneral_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_description,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryGeneral_full_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryGeneral_full_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispEntryGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryGeneral);
+       }
+       
+       offset = samr_dissect_element_DispEntryGeneral_idx(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryGeneral_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryGeneral_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryGeneral_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryGeneral_description(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryGeneral_full_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] samr_DispEntryGeneral *entries; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispInfoGeneral_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoGeneral_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoGeneral_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoGeneral_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryGeneral)",hf_samr_samr_DispInfoGeneral_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoGeneral_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoGeneral_entries__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoGeneral_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispEntryGeneral(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoGeneral_entries,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispInfoGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoGeneral);
+       }
+       
+       offset = samr_dissect_element_DispInfoGeneral_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispInfoGeneral_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 idx; */
+/* IDL:        uint32 rid; */
+/* IDL:        samr_AcctFlags acct_flags; */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispEntryFull_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFull_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFull_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFull_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFull_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFull_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFull_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFull_description,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispEntryFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFull);
+       }
+       
+       offset = samr_dissect_element_DispEntryFull_idx(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFull_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFull_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFull_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFull_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] samr_DispEntryFull *entries; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispInfoFull_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoFull_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoFull_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFull_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryFull)",hf_samr_samr_DispInfoFull_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoFull_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFull_entries__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoFull_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispEntryFull(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoFull_entries,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispInfoFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFull);
+       }
+       
+       offset = samr_dissect_element_DispInfoFull_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispInfoFull_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 idx; */
+/* IDL:        uint32 rid; */
+/* IDL:        samr_GroupAttrs acct_flags; */
+/* IDL:        lsa_String account_name; */
+/* IDL:        lsa_String description; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispEntryFullGroup_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFullGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFullGroup_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAttrs(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryFullGroup_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFullGroup_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFullGroup_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryFullGroup_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryFullGroup_description,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispEntryFullGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryFullGroup);
+       }
+       
+       offset = samr_dissect_element_DispEntryFullGroup_idx(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFullGroup_rid(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFullGroup_acct_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFullGroup_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryFullGroup_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] samr_DispEntryFullGroup *entries; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispInfoFullGroups_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoFullGroups_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoFullGroups_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFullGroups_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryFullGroup)",hf_samr_samr_DispInfoFullGroups_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoFullGroups_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoFullGroups_entries__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoFullGroups_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispEntryFullGroup(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoFullGroups_entries,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispInfoFullGroups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoFullGroups);
+       }
+       
+       offset = samr_dissect_element_DispInfoFullGroups_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispInfoFullGroups_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 idx; */
+/* IDL:        lsa_AsciiStringLarge account_name; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispEntryAscii_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispEntryAscii_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispEntryAscii_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_AsciiStringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispEntryAscii_account_name,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispEntryAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispEntryAscii);
+       }
+       
+       offset = samr_dissect_element_DispEntryAscii_idx(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispEntryAscii_account_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] samr_DispEntryAscii *entries; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispInfoAscii_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DispInfoAscii_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoAscii_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoAscii_entries_, NDR_POINTER_UNIQUE, "Pointer to Entries (samr_DispEntryAscii)",hf_samr_samr_DispInfoAscii_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoAscii_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_DispInfoAscii_entries__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfoAscii_entries__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispEntryAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfoAscii_entries,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_DispInfoAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispInfoAscii);
+       }
+       
+       offset = samr_dissect_element_DispInfoAscii_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_DispInfoAscii_entries(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [case(1)] samr_DispInfoGeneral info1; */
+/* IDL: [case(2)] [case(2)] samr_DispInfoFull info2; */
+/* IDL: [case(3)] [case(3)] samr_DispInfoFullGroups info3; */
+/* IDL: [case(4)] [case(4)] samr_DispInfoAscii info4; */
+/* IDL: [case(5)] [case(5)] samr_DispInfoAscii info5; */
+/* IDL: } */
+
+static int
+samr_dissect_element_DispInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispInfoGeneral(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info1,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispInfoFull(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info2,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispInfoFullGroups(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info3,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info4,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DispInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DispInfoAscii(tvb,offset,pinfo,tree,drep,hf_samr_samr_DispInfo_info5,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_DispInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_DispInfo");
+               tree = proto_item_add_subtree(item, ett_samr_samr_DispInfo);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = samr_dissect_element_DispInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = samr_dissect_element_DispInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = samr_dissect_element_DispInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = samr_dissect_element_DispInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = samr_dissect_element_DispInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 min_password_length; */
+/* IDL:        samr_PasswordProperties password_properties; */
+/* IDL: } */
+
+static int
+samr_dissect_element_PwInfo_min_password_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_PwInfo_min_password_length, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_PwInfo_password_properties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_PasswordProperties(tvb, offset, pinfo, tree, drep, hf_samr_samr_PwInfo_password_properties, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_PwInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_PwInfo);
+       }
+       
+       offset = samr_dissect_element_PwInfo_min_password_length(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_PwInfo_password_properties(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SAMR_CONNECT_PRE_W2K=1, */
+/* IDL:        SAMR_CONNECT_W2K=2, */
+/* IDL:        SAMR_CONNECT_AFTER_W2K=3, */
+/* IDL: } */
+
+int
+samr_dissect_enum_ConnectVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SAM_PWD_CHANGE_NO_ERROR=0, */
+/* IDL:        SAM_PWD_CHANGE_PASSWORD_TOO_SHORT=1, */
+/* IDL:        SAM_PWD_CHANGE_PWD_IN_HISTORY=2, */
+/* IDL:        SAM_PWD_CHANGE_USERNAME_IN_PASSWORD=3, */
+/* IDL:        SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD=4, */
+/* IDL:        SAM_PWD_CHANGE_NOT_COMPLEX=5, */
+/* IDL:        SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT=6, */
+/* IDL:        SAM_PWD_CHANGE_FAILED_BY_FILTER=7, */
+/* IDL:        SAM_PWD_CHANGE_PASSWORD_TOO_LONG=8, */
+/* IDL: } */
+
+int
+samr_dissect_enum_samPwdChangeReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samPwdChangeReason extendedFailureReason; */
+/* IDL:        lsa_String filterModuleName; */
+/* IDL: } */
+
+static int
+samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_samPwdChangeReason(tvb, offset, pinfo, tree, drep, hf_samr_userPwdChangeFailureInformation_extendedFailureReason, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_userPwdChangeFailureInformation_filterModuleName,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_userPwdChangeFailureInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_userPwdChangeFailureInformation);
+       }
+       
+       offset = samr_dissect_element_userPwdChangeFailureInformation_extendedFailureReason(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_userPwdChangeFailureInformation_filterModuleName(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_ConnectVersion client_version; */
+/* IDL:        uint32 unknown2; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ConnectInfo1_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, drep, hf_samr_samr_ConnectInfo1_client_version, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ConnectInfo1_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ConnectInfo1_unknown2, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ConnectInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo1);
+       }
+       
+       offset = samr_dissect_element_ConnectInfo1_client_version(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ConnectInfo1_unknown2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(1)] [case(1)] samr_ConnectInfo1 info1; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ConnectInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ConnectInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ConnectInfo_info1,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_ConnectInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ConnectInfo");
+               tree = proto_item_add_subtree(item, ett_samr_samr_ConnectInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = samr_dissect_element_ConnectInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET =  0x00000001 , */
+/* IDL:        SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME =  0x00000002 , */
+/* IDL:        SAMR_VALIDATE_FIELD_LOCKOUT_TIME =  0x00000004 , */
+/* IDL:        SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT =  0x00000008 , */
+/* IDL:        SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH =  0x00000010 , */
+/* IDL:        SAMR_VALIDATE_FIELD_PASSWORD_HISTORY =  0x00000020 , */
+/* IDL: } */
+
+int
+samr_dissect_bitmap_ValidateFieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_samr_samr_ValidateFieldsPresent);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SAMR_VALIDATE_FIELD_LOCKOUT_TIME");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SAMR_VALIDATE_FIELD_PASSWORD_HISTORY");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NetValidateAuthentication=1, */
+/* IDL:        NetValidatePasswordChange=2, */
+/* IDL:        NetValidatePasswordReset=3, */
+/* IDL: } */
+
+int
+samr_dissect_enum_ValidatePasswordLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SAMR_VALIDATION_STATUS_SUCCESS=0, */
+/* IDL:        SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE=1, */
+/* IDL:        SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT=2, */
+/* IDL:        SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED=3, */
+/* IDL:        SAMR_VALIDATION_STATUS_BAD_PASSWORD=4, */
+/* IDL:        SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT=5, */
+/* IDL:        SAMR_VALIDATION_STATUS_PWD_TOO_SHORT=6, */
+/* IDL:        SAMR_VALIDATION_STATUS_PWD_TOO_LONG=7, */
+/* IDL:        SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH=8, */
+/* IDL:        SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT=9, */
+/* IDL:        SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR=10, */
+/* IDL: } */
+
+int
+samr_dissect_enum_ValidationStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 length; */
+/* IDL:        [unique(1)] [size_is(length)] uint8 *data; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidationBlob_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidationBlob_length, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidationBlob_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_samr_samr_ValidationBlob_data);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidationBlob_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidationBlob_data__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidationBlob_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidationBlob_data, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ValidationBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidationBlob);
+       }
+       
+       offset = samr_dissect_element_ValidationBlob_length(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidationBlob_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_ValidateFieldsPresent fields_present; */
+/* IDL:        NTTIME_hyper last_password_change; */
+/* IDL:        NTTIME_hyper bad_password_time; */
+/* IDL:        NTTIME_hyper lockout_time; */
+/* IDL:        uint32 bad_pwd_count; */
+/* IDL:        uint32 pwd_history_len; */
+/* IDL:        [unique(1)] [size_is(pwd_history_len)] samr_ValidationBlob *pwd_history; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordInfo_fields_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_ValidateFieldsPresent(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_fields_present, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_last_password_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_last_password_change);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_bad_password_time);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_lockout_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_lockout_time);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_bad_pwd_count, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordInfo_pwd_history_len, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_pwd_history(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePasswordInfo_pwd_history_, NDR_POINTER_UNIQUE, "Pointer to Pwd History (samr_ValidationBlob)",hf_samr_samr_ValidatePasswordInfo_pwd_history);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_pwd_history_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePasswordInfo_pwd_history__);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordInfo_pwd_history__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordInfo_pwd_history,0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ValidatePasswordInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordInfo);
+       }
+       
+       offset = samr_dissect_element_ValidatePasswordInfo_fields_present(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordInfo_last_password_change(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordInfo_bad_password_time(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordInfo_lockout_time(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordInfo_bad_pwd_count(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordInfo_pwd_history_len(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordInfo_pwd_history(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_ValidatePasswordInfo info; */
+/* IDL:        samr_ValidationStatus status; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordRepCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRepCtr_info,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordRepCtr_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_ValidationStatus(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordRepCtr_status, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ValidatePasswordRepCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRepCtr);
+       }
+       
+       offset = samr_dissect_element_ValidatePasswordRepCtr_info(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordRepCtr_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [case(1)] samr_ValidatePasswordRepCtr ctr1; */
+/* IDL: [case(2)] [case(2)] samr_ValidatePasswordRepCtr ctr2; */
+/* IDL: [case(3)] [case(3)] samr_ValidatePasswordRepCtr ctr3; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordRep_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr1,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordRep_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr2,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordRep_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordRepCtr(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordRep_ctr3,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_ValidatePasswordRep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ValidatePasswordRep");
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordRep);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = samr_dissect_element_ValidatePasswordRep_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = samr_dissect_element_ValidatePasswordRep_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = samr_dissect_element_ValidatePasswordRep_ctr3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        samr_ValidatePasswordInfo info; */
+/* IDL:        lsa_StringLarge password; */
+/* IDL:        lsa_StringLarge account; */
+/* IDL:        samr_ValidationBlob hash; */
+/* IDL:        uint8 pwd_must_change_at_next_logon; */
+/* IDL:        uint8 clear_lockout; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordReq3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_info,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq3_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_account,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq3_hash,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq3_clear_lockout, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ValidatePasswordReq3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq3);
+       }
+       
+       offset = samr_dissect_element_ValidatePasswordReq3_info(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq3_password(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq3_account(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq3_hash(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq3_pwd_must_change_at_next_logon(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq3_clear_lockout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_ValidatePasswordInfo info; */
+/* IDL:        lsa_StringLarge password; */
+/* IDL:        lsa_StringLarge account; */
+/* IDL:        samr_ValidationBlob hash; */
+/* IDL:        uint8 password_matched; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordReq2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_info,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_account,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidationBlob(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq2_hash,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq2_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq2_password_matched, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ValidatePasswordReq2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq2);
+       }
+       
+       offset = samr_dissect_element_ValidatePasswordReq2_info(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq2_password(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq2_account(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq2_hash(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq2_password_matched(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        samr_ValidatePasswordInfo info; */
+/* IDL:        uint8 password_matched; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordReq1_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq1_info,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq1_password_matched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePasswordReq1_password_matched, 0);
+
+       return offset;
+}
+
+int
+samr_dissect_struct_ValidatePasswordReq1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq1);
+       }
+       
+       offset = samr_dissect_element_ValidatePasswordReq1_info(tvb, offset, pinfo, tree, drep);
+
+       offset = samr_dissect_element_ValidatePasswordReq1_password_matched(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [case(1)] samr_ValidatePasswordReq1 req1; */
+/* IDL: [case(2)] [case(2)] samr_ValidatePasswordReq2 req2; */
+/* IDL: [case(3)] [case(3)] samr_ValidatePasswordReq3 req3; */
+/* IDL: } */
+
+static int
+samr_dissect_element_ValidatePasswordReq_req1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordReq1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req1,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq_req2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordReq2(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req2,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePasswordReq_req3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_ValidatePasswordReq3(tvb,offset,pinfo,tree,drep,hf_samr_samr_ValidatePasswordReq_req3,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_ValidatePasswordReq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "samr_ValidatePasswordReq");
+               tree = proto_item_add_subtree(item, ett_samr_samr_ValidatePasswordReq);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = samr_dissect_element_ValidatePasswordReq_req1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = samr_dissect_element_ValidatePasswordReq_req2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = samr_dissect_element_ValidatePasswordReq_req3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+static int
+samr_dissect_element_Connect_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect_system_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_system_name, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect_connect_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Connect( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] samr_ConnectAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *connect_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Connect_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Connect";
+       offset = samr_dissect_element_Connect_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Connect_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Connect";
+       offset = samr_dissect_element_Connect_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_Close_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Close_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_samr_Close_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Close_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Close_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Close( */
+/* IDL: [out] [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Close_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Close";
+       offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Close_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Close";
+       offset = samr_dissect_element_Close_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetSecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_samr_SetSecurity_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetSecurity_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetSecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetSecurity_sec_info, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetSecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetSecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_SetSecurity_sdbuf);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetSecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetSecurity_sdbuf,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetSecurity( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] security_secinfo sec_info, */
+/* IDL: [in] [ref] sec_desc_buf *sdbuf */
+/* IDL: ); */
+
+static int
+samr_dissect_SetSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetSecurity";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetSecurity";
+       offset = samr_dissect_element_SetSecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetSecurity_sec_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetSecurity_sdbuf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QuerySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QuerySecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_samr_samr_QuerySecurity_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QuerySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QuerySecurity_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QuerySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QuerySecurity_sec_info, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QuerySecurity_sdbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QuerySecurity_sdbuf_, NDR_POINTER_REF, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_QuerySecurity_sdbuf);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QuerySecurity_sdbuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QuerySecurity_sdbuf__, NDR_POINTER_UNIQUE, "Pointer to Sdbuf (sec_desc_buf)",hf_samr_samr_QuerySecurity_sdbuf);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QuerySecurity_sdbuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_samr_samr_QuerySecurity_sdbuf,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QuerySecurity( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] security_secinfo sec_info, */
+/* IDL: [out] [ref] sec_desc_buf **sdbuf */
+/* IDL: ); */
+
+static int
+samr_dissect_QuerySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QuerySecurity";
+       offset = samr_dissect_element_QuerySecurity_sdbuf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QuerySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QuerySecurity";
+       offset = samr_dissect_element_QuerySecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QuerySecurity_sec_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_Shutdown_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Shutdown_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Shutdown_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Shutdown_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Shutdown_connect_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Shutdown( */
+/* IDL: [in] [ref] policy_handle *connect_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Shutdown_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Shutdown";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Shutdown_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Shutdown";
+       offset = samr_dissect_element_Shutdown_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_LookupDomain_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupDomain_connect_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (lsa_String)",hf_samr_samr_LookupDomain_domain_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupDomain_domain_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_LookupDomain_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupDomain_sid__, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_samr_samr_LookupDomain_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupDomain_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupDomain_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_LookupDomain( */
+/* IDL: [in] [ref] policy_handle *connect_handle, */
+/* IDL: [in] [ref] lsa_String *domain_name, */
+/* IDL: [out] [ref] dom_sid2 **sid */
+/* IDL: ); */
+
+static int
+samr_dissect_LookupDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="LookupDomain";
+       offset = samr_dissect_element_LookupDomain_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_LookupDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="LookupDomain";
+       offset = samr_dissect_element_LookupDomain_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_LookupDomain_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_EnumDomains_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_connect_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomains_resume_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomains_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomains_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomains_sam,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_buf_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomains_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomains_num_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomains_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomains_num_entries, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_EnumDomains( */
+/* IDL: [in] [ref] policy_handle *connect_handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [out] [ref] samr_SamArray **sam, */
+/* IDL: [in] uint32 buf_size, */
+/* IDL: [out] [ref] uint32 *num_entries */
+/* IDL: ); */
+
+static int
+samr_dissect_EnumDomains_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumDomains";
+       offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomains_sam(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomains_num_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_EnumDomains_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumDomains";
+       offset = samr_dissect_element_EnumDomains_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomains_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomains_buf_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenDomain_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_OpenDomain_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_connect_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_DomainAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_OpenDomain_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_OpenDomain_sid,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenDomain_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenDomain_domain_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_OpenDomain( */
+/* IDL: [in] [ref] policy_handle *connect_handle, */
+/* IDL: [in] samr_DomainAccessMask access_mask, */
+/* IDL: [in] [ref] dom_sid2 *sid, */
+/* IDL: [out] [ref] policy_handle *domain_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_OpenDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenDomain";
+       offset = samr_dissect_element_OpenDomain_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_OpenDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenDomain";
+       offset = samr_dissect_element_OpenDomain_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenDomain_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenDomain_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDomainInfo_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryDomainInfo( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] samr_DomainInfoClass level, */
+/* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryDomainInfo";
+       offset = samr_dissect_element_QueryDomainInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryDomainInfo";
+       offset = samr_dissect_element_QueryDomainInfo_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDomainInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDomainInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDomainInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_SetDomainInfo_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDomainInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDomainInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDomainInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDomainInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_SetDomainInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDomainInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDomainInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetDomainInfo( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] samr_DomainInfoClass level, */
+/* IDL: [in] [ref] [switch_is(level)] samr_DomainInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_SetDomainInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetDomainInfo";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetDomainInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetDomainInfo";
+       offset = samr_dissect_element_SetDomainInfo_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetDomainInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetDomainInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateDomainGroup_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_CreateDomainGroup_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateDomainGroup_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_CreateDomainGroup_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomainGroup_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateDomainGroup_rid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomainGroup_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomainGroup_rid, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_CreateDomainGroup( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [in] samr_GroupAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *group_handle, */
+/* IDL: [out] [ref] uint32 *rid */
+/* IDL: ); */
+
+static int
+samr_dissect_CreateDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateDomainGroup";
+       offset = samr_dissect_element_CreateDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_CreateDomainGroup_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_CreateDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateDomainGroup";
+       offset = samr_dissect_element_CreateDomainGroup_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateDomainGroup_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateDomainGroup_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_EnumDomainGroups_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainGroups_resume_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainGroups_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainGroups_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainGroups_sam,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_max_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainGroups_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainGroups_num_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainGroups_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainGroups_num_entries, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_EnumDomainGroups( */
+/* IDL: [ref] [in] policy_handle *domain_handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [out] [ref] samr_SamArray **sam, */
+/* IDL: [in] uint32 max_size, */
+/* IDL: [out] [ref] uint32 *num_entries */
+/* IDL: ); */
+
+static int
+samr_dissect_EnumDomainGroups_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumDomainGroups";
+       offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomainGroups_sam(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomainGroups_num_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_EnumDomainGroups_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumDomainGroups";
+       offset = samr_dissect_element_EnumDomainGroups_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainGroups_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainGroups_max_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateUser_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_samr_samr_CreateUser_account_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateUser_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_CreateUser_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateUser_rid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser_rid, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_CreateUser( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [ref] lsa_String *account_name, */
+/* IDL: [in] samr_UserAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *user_handle, */
+/* IDL: [out] [ref] uint32 *rid */
+/* IDL: ); */
+
+static int
+samr_dissect_CreateUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateUser";
+       offset = samr_dissect_element_CreateUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_CreateUser_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_CreateUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateUser";
+       offset = samr_dissect_element_CreateUser_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateUser_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateUser_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_EnumDomainUsers_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainUsers_resume_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainUsers_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainUsers_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainUsers_sam,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_max_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainUsers_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainUsers_num_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainUsers_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainUsers_num_entries, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_EnumDomainUsers( */
+/* IDL: [ref] [in] policy_handle *domain_handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [in] samr_AcctFlags acct_flags, */
+/* IDL: [out] [ref] samr_SamArray **sam, */
+/* IDL: [in] uint32 max_size, */
+/* IDL: [out] [ref] uint32 *num_entries */
+/* IDL: ); */
+
+static int
+samr_dissect_EnumDomainUsers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumDomainUsers";
+       offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomainUsers_sam(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomainUsers_num_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_EnumDomainUsers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumDomainUsers";
+       offset = samr_dissect_element_EnumDomainUsers_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainUsers_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainUsers_acct_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainUsers_max_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateDomAlias_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_alias_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_alias_name_, NDR_POINTER_REF, "Pointer to Alias Name (lsa_String)",hf_samr_samr_CreateDomAlias_alias_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_alias_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateDomAlias_alias_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_CreateDomAlias_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateDomAlias_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateDomAlias_rid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateDomAlias_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateDomAlias_rid, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_CreateDomAlias( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [ref] lsa_String *alias_name, */
+/* IDL: [in] samr_AliasAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *alias_handle, */
+/* IDL: [out] [ref] uint32 *rid */
+/* IDL: ); */
+
+static int
+samr_dissect_CreateDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateDomAlias";
+       offset = samr_dissect_element_CreateDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_CreateDomAlias_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_CreateDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateDomAlias";
+       offset = samr_dissect_element_CreateDomAlias_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateDomAlias_alias_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateDomAlias_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_EnumDomainAliases_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_resume_handle_, NDR_POINTER_REF, "Pointer to Resume Handle (uint32)",hf_samr_samr_EnumDomainAliases_resume_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_sam(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_sam_, NDR_POINTER_REF, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainAliases_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_sam_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_sam__, NDR_POINTER_UNIQUE, "Pointer to Sam (samr_SamArray)",hf_samr_samr_EnumDomainAliases_sam);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_sam__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_SamArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_EnumDomainAliases_sam,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_max_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_max_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_num_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_EnumDomainAliases_num_entries_, NDR_POINTER_REF, "Pointer to Num Entries (uint32)",hf_samr_samr_EnumDomainAliases_num_entries);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_EnumDomainAliases_num_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_EnumDomainAliases_num_entries, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_EnumDomainAliases( */
+/* IDL: [ref] [in] policy_handle *domain_handle, */
+/* IDL: [out] [in] [ref] uint32 *resume_handle, */
+/* IDL: [out] [ref] samr_SamArray **sam, */
+/* IDL: [in] uint32 max_size, */
+/* IDL: [out] [ref] uint32 *num_entries */
+/* IDL: ); */
+
+static int
+samr_dissect_EnumDomainAliases_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumDomainAliases";
+       offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomainAliases_sam(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_EnumDomainAliases_num_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_EnumDomainAliases_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumDomainAliases";
+       offset = samr_dissect_element_EnumDomainAliases_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainAliases_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_EnumDomainAliases_max_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetAliasMembership_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetAliasMembership_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetAliasMembership_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetAliasMembership_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetAliasMembership_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetAliasMembership_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetAliasMembership_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_GetAliasMembership_sids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetAliasMembership_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetAliasMembership_sids,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetAliasMembership_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetAliasMembership_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_Ids)",hf_samr_samr_GetAliasMembership_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetAliasMembership_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetAliasMembership_rids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetAliasMembership( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [ref] lsa_SidArray *sids, */
+/* IDL: [out] [ref] samr_Ids *rids */
+/* IDL: ); */
+
+static int
+samr_dissect_GetAliasMembership_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetAliasMembership";
+       offset = samr_dissect_element_GetAliasMembership_rids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetAliasMembership_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetAliasMembership";
+       offset = samr_dissect_element_GetAliasMembership_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_GetAliasMembership_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_LookupNames_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupNames_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_num_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupNames_num_names, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_names_);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_names,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_Ids)",hf_samr_samr_LookupNames_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_rids,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupNames_types_, NDR_POINTER_REF, "Pointer to Types (samr_Ids)",hf_samr_samr_LookupNames_types);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupNames_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupNames_types,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_LookupNames( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [range(0,1000)] uint32 num_names, */
+/* IDL: [in] [length_is(num_names)] [size_is(1000)] lsa_String names[*], */
+/* IDL: [out] [ref] samr_Ids *rids, */
+/* IDL: [out] [ref] samr_Ids *types */
+/* IDL: ); */
+
+static int
+samr_dissect_LookupNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="LookupNames";
+       offset = samr_dissect_element_LookupNames_rids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_LookupNames_types(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_LookupNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="LookupNames";
+       offset = samr_dissect_element_LookupNames_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_LookupNames_num_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_LookupNames_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_LookupRids_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_num_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_num_rids, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_rids_);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_LookupRids_rids, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_names_, NDR_POINTER_REF, "Pointer to Names (lsa_Strings)",hf_samr_samr_LookupRids_names);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_Strings(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupRids_names,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_LookupRids_types_, NDR_POINTER_REF, "Pointer to Types (samr_Ids)",hf_samr_samr_LookupRids_types);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_LookupRids_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Ids(tvb,offset,pinfo,tree,drep,hf_samr_samr_LookupRids_types,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_LookupRids( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [range(0,1000)] uint32 num_rids, */
+/* IDL: [in] [length_is(num_rids)] [size_is(1000)] uint32 rids[*], */
+/* IDL: [out] [ref] lsa_Strings *names, */
+/* IDL: [out] [ref] samr_Ids *types */
+/* IDL: ); */
+
+static int
+samr_dissect_LookupRids_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="LookupRids";
+       offset = samr_dissect_element_LookupRids_names(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_LookupRids_types(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_LookupRids_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="LookupRids";
+       offset = samr_dissect_element_LookupRids_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_LookupRids_num_rids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_LookupRids_rids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenGroup_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenGroup_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenGroup_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenGroup_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenGroup_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_GroupAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenGroup_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_OpenGroup_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenGroup_group_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_OpenGroup( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] samr_GroupAccessMask access_mask, */
+/* IDL: [in] uint32 rid, */
+/* IDL: [out] [ref] policy_handle *group_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_OpenGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenGroup";
+       offset = samr_dissect_element_OpenGroup_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_OpenGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenGroup";
+       offset = samr_dissect_element_OpenGroup_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenGroup_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenGroup_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupInfo_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_QueryGroupInfo_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_QueryGroupInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_QueryGroupInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryGroupInfo( */
+/* IDL: [in] [ref] policy_handle *group_handle, */
+/* IDL: [in] samr_GroupInfoEnum level, */
+/* IDL: [out] [ref] [switch_is(level)] samr_GroupInfo **info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryGroupInfo";
+       offset = samr_dissect_element_QueryGroupInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryGroupInfo";
+       offset = samr_dissect_element_QueryGroupInfo_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryGroupInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetGroupInfo_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetGroupInfo_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_SetGroupInfo_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetGroupInfo_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetGroupInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_GroupInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetGroupInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetGroupInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_GroupInfo)",hf_samr_samr_SetGroupInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetGroupInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_GroupInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetGroupInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetGroupInfo( */
+/* IDL: [in] [ref] policy_handle *group_handle, */
+/* IDL: [in] samr_GroupInfoEnum level, */
+/* IDL: [in] [ref] [switch_is(level)] samr_GroupInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_SetGroupInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetGroupInfo";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetGroupInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetGroupInfo";
+       offset = samr_dissect_element_SetGroupInfo_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetGroupInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetGroupInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_AddGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_AddGroupMember_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddGroupMember_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddGroupMember_flags, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_AddGroupMember( */
+/* IDL: [in] [ref] policy_handle *group_handle, */
+/* IDL: [in] uint32 rid, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+samr_dissect_AddGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddGroupMember";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_AddGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddGroupMember";
+       offset = samr_dissect_element_AddGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_AddGroupMember_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_AddGroupMember_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteDomainGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteDomainGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_DeleteDomainGroup_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteDomainGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteDomainGroup_group_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_DeleteDomainGroup( */
+/* IDL: [out] [in] [ref] policy_handle *group_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_DeleteDomainGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteDomainGroup";
+       offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_DeleteDomainGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteDomainGroup";
+       offset = samr_dissect_element_DeleteDomainGroup_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_DeleteGroupMember_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteGroupMember_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteGroupMember_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteGroupMember_rid, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_DeleteGroupMember( */
+/* IDL: [in] [ref] policy_handle *group_handle, */
+/* IDL: [in] uint32 rid */
+/* IDL: ); */
+
+static int
+samr_dissect_DeleteGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteGroupMember";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_DeleteGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteGroupMember";
+       offset = samr_dissect_element_DeleteGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_DeleteGroupMember_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupMember_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupMember_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_QueryGroupMember_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupMember_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryGroupMember_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupMember_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupMember_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_RidAttrArray)",hf_samr_samr_QueryGroupMember_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupMember_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryGroupMember_rids__, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidAttrArray)",hf_samr_samr_QueryGroupMember_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryGroupMember_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_RidAttrArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_QueryGroupMember_rids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryGroupMember( */
+/* IDL: [in] [ref] policy_handle *group_handle, */
+/* IDL: [out] [ref] samr_RidAttrArray **rids */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryGroupMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryGroupMember";
+       offset = samr_dissect_element_QueryGroupMember_rids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryGroupMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryGroupMember";
+       offset = samr_dissect_element_QueryGroupMember_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetMemberAttributesOfGroup_group_handle_, NDR_POINTER_REF, "Pointer to Group Handle (policy_handle)",hf_samr_samr_SetMemberAttributesOfGroup_group_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetMemberAttributesOfGroup_group_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_group_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown1, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetMemberAttributesOfGroup_unknown2, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetMemberAttributesOfGroup( */
+/* IDL: [in] [ref] policy_handle *group_handle, */
+/* IDL: [in] uint32 unknown1, */
+/* IDL: [in] uint32 unknown2 */
+/* IDL: ); */
+
+static int
+samr_dissect_SetMemberAttributesOfGroup_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetMemberAttributesOfGroup";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetMemberAttributesOfGroup_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetMemberAttributesOfGroup";
+       offset = samr_dissect_element_SetMemberAttributesOfGroup_group_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetMemberAttributesOfGroup_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenAlias_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenAlias_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenAlias_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenAlias_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenAlias_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AliasAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenAlias_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_OpenAlias_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenAlias_alias_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_OpenAlias( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] samr_AliasAccessMask access_mask, */
+/* IDL: [in] uint32 rid, */
+/* IDL: [out] [ref] policy_handle *alias_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_OpenAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenAlias";
+       offset = samr_dissect_element_OpenAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_OpenAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenAlias";
+       offset = samr_dissect_element_OpenAlias_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenAlias_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenAlias_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryAliasInfo_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_QueryAliasInfo_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryAliasInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_QueryAliasInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryAliasInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_QueryAliasInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryAliasInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryAliasInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryAliasInfo( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [in] samr_AliasInfoEnum level, */
+/* IDL: [out] [ref] [switch_is(level)] samr_AliasInfo **info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryAliasInfo";
+       offset = samr_dissect_element_QueryAliasInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryAliasInfo";
+       offset = samr_dissect_element_QueryAliasInfo_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryAliasInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetAliasInfo_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetAliasInfo_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_SetAliasInfo_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetAliasInfo_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetAliasInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_AliasInfoEnum(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetAliasInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetAliasInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_AliasInfo)",hf_samr_samr_SetAliasInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetAliasInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_AliasInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetAliasInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetAliasInfo( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [in] samr_AliasInfoEnum level, */
+/* IDL: [in] [ref] [switch_is(level)] samr_AliasInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_SetAliasInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetAliasInfo";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetAliasInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetAliasInfo";
+       offset = samr_dissect_element_SetAliasInfo_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetAliasInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetAliasInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteDomAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteDomAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_DeleteDomAlias_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteDomAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteDomAlias_alias_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_DeleteDomAlias( */
+/* IDL: [out] [in] [ref] policy_handle *alias_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_DeleteDomAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteDomAlias";
+       offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_DeleteDomAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteDomAlias";
+       offset = samr_dissect_element_DeleteDomAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_AddAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddAliasMember_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_AddAliasMember_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddAliasMember_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddAliasMember_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_AddAliasMember_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_AddAliasMember_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_AddAliasMember( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [in] [ref] dom_sid2 *sid */
+/* IDL: ); */
+
+static int
+samr_dissect_AddAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddAliasMember";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_AddAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddAliasMember";
+       offset = samr_dissect_element_AddAliasMember_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_AddAliasMember_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteAliasMember_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteAliasMember_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_DeleteAliasMember_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteAliasMember_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteAliasMember_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteAliasMember_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteAliasMember_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_DeleteAliasMember_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteAliasMember_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_DeleteAliasMember_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_DeleteAliasMember( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [in] [ref] dom_sid2 *sid */
+/* IDL: ); */
+
+static int
+samr_dissect_DeleteAliasMember_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteAliasMember";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_DeleteAliasMember_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteAliasMember";
+       offset = samr_dissect_element_DeleteAliasMember_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_DeleteAliasMember_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetMembersInAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetMembersInAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_GetMembersInAlias_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetMembersInAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetMembersInAlias_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetMembersInAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetMembersInAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_GetMembersInAlias_sids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetMembersInAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetMembersInAlias_sids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetMembersInAlias( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [out] [ref] lsa_SidArray *sids */
+/* IDL: ); */
+
+static int
+samr_dissect_GetMembersInAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetMembersInAlias";
+       offset = samr_dissect_element_GetMembersInAlias_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetMembersInAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetMembersInAlias";
+       offset = samr_dissect_element_GetMembersInAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenUser_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenUser_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_OpenUser_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenUser_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenUser_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenUser_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OpenUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_OpenUser_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OpenUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_OpenUser_user_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_OpenUser( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] samr_UserAccessMask access_mask, */
+/* IDL: [in] uint32 rid, */
+/* IDL: [out] [ref] policy_handle *user_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_OpenUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenUser";
+       offset = samr_dissect_element_OpenUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_OpenUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenUser";
+       offset = samr_dissect_element_OpenUser_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenUser_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OpenUser_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_DeleteUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_DeleteUser_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_DeleteUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_DeleteUser_user_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_DeleteUser( */
+/* IDL: [out] [in] [ref] policy_handle *user_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_DeleteUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteUser";
+       offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_DeleteUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteUser";
+       offset = samr_dissect_element_DeleteUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_QueryUserInfo_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryUserInfo( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [in] samr_UserInfoLevel level, */
+/* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryUserInfo";
+       offset = samr_dissect_element_QueryUserInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryUserInfo";
+       offset = samr_dissect_element_QueryUserInfo_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryUserInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_SetUserInfo_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_SetUserInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetUserInfo( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [in] samr_UserInfoLevel level, */
+/* IDL: [ref] [in] [switch_is(level)] samr_UserInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_SetUserInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetUserInfo";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetUserInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetUserInfo";
+       offset = samr_dissect_element_SetUserInfo_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetUserInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetUserInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_ChangePasswordUser_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_lm_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_lm_present, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_old_lm_crypted_, NDR_POINTER_UNIQUE, "Pointer to Old Lm Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_old_lm_crypted);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_old_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_old_lm_crypted,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_new_lm_crypted_, NDR_POINTER_UNIQUE, "Pointer to New Lm Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_new_lm_crypted);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_new_lm_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_new_lm_crypted,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_nt_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_nt_present, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_old_nt_crypted_, NDR_POINTER_UNIQUE, "Pointer to Old Nt Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_old_nt_crypted);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_old_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_old_nt_crypted,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_new_nt_crypted_, NDR_POINTER_UNIQUE, "Pointer to New Nt Crypted (samr_Password)",hf_samr_samr_ChangePasswordUser_new_nt_crypted);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_new_nt_crypted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_new_nt_crypted,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_cross1_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_cross1_present, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_nt_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_nt_cross_, NDR_POINTER_UNIQUE, "Pointer to Nt Cross (samr_Password)",hf_samr_samr_ChangePasswordUser_nt_cross);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_nt_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_nt_cross,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_cross2_present(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser_cross2_present, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_lm_cross(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser_lm_cross_, NDR_POINTER_UNIQUE, "Pointer to Lm Cross (samr_Password)",hf_samr_samr_ChangePasswordUser_lm_cross);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser_lm_cross_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser_lm_cross,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_ChangePasswordUser( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [in] uint8 lm_present, */
+/* IDL: [unique(1)] [in] samr_Password *old_lm_crypted, */
+/* IDL: [unique(1)] [in] samr_Password *new_lm_crypted, */
+/* IDL: [in] uint8 nt_present, */
+/* IDL: [unique(1)] [in] samr_Password *old_nt_crypted, */
+/* IDL: [unique(1)] [in] samr_Password *new_nt_crypted, */
+/* IDL: [in] uint8 cross1_present, */
+/* IDL: [unique(1)] [in] samr_Password *nt_cross, */
+/* IDL: [in] uint8 cross2_present, */
+/* IDL: [unique(1)] [in] samr_Password *lm_cross */
+/* IDL: ); */
+
+static int
+samr_dissect_ChangePasswordUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangePasswordUser";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_ChangePasswordUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangePasswordUser";
+       offset = samr_dissect_element_ChangePasswordUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_lm_present(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_old_lm_crypted(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_new_lm_crypted(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_nt_present(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_old_nt_crypted(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_new_nt_crypted(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_cross1_present(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_nt_cross(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_cross2_present(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser_lm_cross(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetGroupsForUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetGroupsForUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_GetGroupsForUser_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetGroupsForUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetGroupsForUser_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetGroupsForUser_rids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetGroupsForUser_rids_, NDR_POINTER_REF, "Pointer to Rids (samr_RidWithAttributeArray)",hf_samr_samr_GetGroupsForUser_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetGroupsForUser_rids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetGroupsForUser_rids__, NDR_POINTER_UNIQUE, "Pointer to Rids (samr_RidWithAttributeArray)",hf_samr_samr_GetGroupsForUser_rids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetGroupsForUser_rids__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_RidWithAttributeArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetGroupsForUser_rids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetGroupsForUser( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [out] [ref] samr_RidWithAttributeArray **rids */
+/* IDL: ); */
+
+static int
+samr_dissect_GetGroupsForUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetGroupsForUser";
+       offset = samr_dissect_element_GetGroupsForUser_rids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetGroupsForUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetGroupsForUser";
+       offset = samr_dissect_element_GetGroupsForUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDisplayInfo_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_start_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_max_entries, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_buf_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo_total_size);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_total_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo_returned_size);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_returned_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryDisplayInfo( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [in] uint32 start_idx, */
+/* IDL: [in] uint32 max_entries, */
+/* IDL: [in] uint32 buf_size, */
+/* IDL: [out] [ref] uint32 *total_size, */
+/* IDL: [out] [ref] uint32 *returned_size, */
+/* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryDisplayInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryDisplayInfo";
+       offset = samr_dissect_element_QueryDisplayInfo_total_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_QueryDisplayInfo_returned_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_QueryDisplayInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryDisplayInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryDisplayInfo";
+       offset = samr_dissect_element_QueryDisplayInfo_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo_start_idx(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo_max_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo_buf_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetDisplayEnumerationIndex_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_GetDisplayEnumerationIndex_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDisplayEnumerationIndex_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex_idx_, NDR_POINTER_REF, "Pointer to Idx (uint32)",hf_samr_samr_GetDisplayEnumerationIndex_idx);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex_idx, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetDisplayEnumerationIndex( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [out] [ref] uint32 *idx */
+/* IDL: ); */
+
+static int
+samr_dissect_GetDisplayEnumerationIndex_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex";
+       offset = samr_dissect_element_GetDisplayEnumerationIndex_idx(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetDisplayEnumerationIndex_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex";
+       offset = samr_dissect_element_GetDisplayEnumerationIndex_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_GetDisplayEnumerationIndex_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_GetDisplayEnumerationIndex_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_TestPrivateFunctionsDomain_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_TestPrivateFunctionsDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_TestPrivateFunctionsDomain_domain_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_TestPrivateFunctionsDomain( */
+/* IDL: [in] [ref] policy_handle *domain_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_TestPrivateFunctionsDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="TestPrivateFunctionsDomain";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_TestPrivateFunctionsDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="TestPrivateFunctionsDomain";
+       offset = samr_dissect_element_TestPrivateFunctionsDomain_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_TestPrivateFunctionsUser_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_TestPrivateFunctionsUser_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_TestPrivateFunctionsUser_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_TestPrivateFunctionsUser_user_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_TestPrivateFunctionsUser( */
+/* IDL: [in] [ref] policy_handle *user_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_TestPrivateFunctionsUser_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="TestPrivateFunctionsUser";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_TestPrivateFunctionsUser_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="TestPrivateFunctionsUser";
+       offset = samr_dissect_element_TestPrivateFunctionsUser_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetUserPwInfo_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetUserPwInfo_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_GetUserPwInfo_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetUserPwInfo_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetUserPwInfo_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetUserPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetUserPwInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_PwInfo)",hf_samr_samr_GetUserPwInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetUserPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetUserPwInfo_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetUserPwInfo( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [out] [ref] samr_PwInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_GetUserPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetUserPwInfo";
+       offset = samr_dissect_element_GetUserPwInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetUserPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetUserPwInfo";
+       offset = samr_dissect_element_GetUserPwInfo_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMemberFromForeignDomain_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_RemoveMemberFromForeignDomain_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMemberFromForeignDomain_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_RemoveMemberFromForeignDomain_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_RemoveMemberFromForeignDomain( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [ref] dom_sid2 *sid */
+/* IDL: ); */
+
+static int
+samr_dissect_RemoveMemberFromForeignDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_RemoveMemberFromForeignDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RemoveMemberFromForeignDomain";
+       offset = samr_dissect_element_RemoveMemberFromForeignDomain_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_RemoveMemberFromForeignDomain_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDomainInfo2_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_DomainInfoClass(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo2_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDomainInfo2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_DomainInfo)",hf_samr_samr_QueryDomainInfo2_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDomainInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_DomainInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDomainInfo2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryDomainInfo2( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] samr_DomainInfoClass level, */
+/* IDL: [out] [ref] [switch_is(level)] samr_DomainInfo **info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryDomainInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryDomainInfo2";
+       offset = samr_dissect_element_QueryDomainInfo2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryDomainInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryDomainInfo2";
+       offset = samr_dissect_element_QueryDomainInfo2_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDomainInfo2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_QueryUserInfo2_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo2_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryUserInfo2_info__, NDR_POINTER_UNIQUE, "Pointer to Info (samr_UserInfo)",hf_samr_samr_QueryUserInfo2_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryUserInfo2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryUserInfo2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryUserInfo2( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [in] samr_UserInfoLevel level, */
+/* IDL: [out] [ref] [switch_is(level)] samr_UserInfo **info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryUserInfo2";
+       offset = samr_dissect_element_QueryUserInfo2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryUserInfo2";
+       offset = samr_dissect_element_QueryUserInfo2_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryUserInfo2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDisplayInfo2_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_start_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_max_entries, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_buf_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo2_total_size);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_total_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo2_returned_size);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_returned_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo2_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryDisplayInfo2( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [in] uint32 start_idx, */
+/* IDL: [in] uint32 max_entries, */
+/* IDL: [in] uint32 buf_size, */
+/* IDL: [out] [ref] uint32 *total_size, */
+/* IDL: [out] [ref] uint32 *returned_size, */
+/* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryDisplayInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryDisplayInfo2";
+       offset = samr_dissect_element_QueryDisplayInfo2_total_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_QueryDisplayInfo2_returned_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_QueryDisplayInfo2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryDisplayInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryDisplayInfo2";
+       offset = samr_dissect_element_QueryDisplayInfo2_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo2_start_idx(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo2_max_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo2_buf_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex2_name_, NDR_POINTER_REF, "Pointer to Name (lsa_String)",hf_samr_samr_GetDisplayEnumerationIndex2_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDisplayEnumerationIndex2_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDisplayEnumerationIndex2_idx_, NDR_POINTER_REF, "Pointer to Idx (uint32)",hf_samr_samr_GetDisplayEnumerationIndex2_idx);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDisplayEnumerationIndex2_idx_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetDisplayEnumerationIndex2_idx, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetDisplayEnumerationIndex2( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [in] [ref] lsa_String *name, */
+/* IDL: [out] [ref] uint32 *idx */
+/* IDL: ); */
+
+static int
+samr_dissect_GetDisplayEnumerationIndex2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
+       offset = samr_dissect_element_GetDisplayEnumerationIndex2_idx(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetDisplayEnumerationIndex2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetDisplayEnumerationIndex2";
+       offset = samr_dissect_element_GetDisplayEnumerationIndex2_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_GetDisplayEnumerationIndex2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_GetDisplayEnumerationIndex2_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_CreateUser2_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_account_name_, NDR_POINTER_REF, "Pointer to Account Name (lsa_String)",hf_samr_samr_CreateUser2_account_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_account_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_CreateUser2_account_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_acct_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_AcctFlags(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_acct_flags, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_UserAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_CreateUser2_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_access_granted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_access_granted_, NDR_POINTER_REF, "Pointer to Access Granted (uint32)",hf_samr_samr_CreateUser2_access_granted);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_access_granted_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_access_granted, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_CreateUser2_rid_, NDR_POINTER_REF, "Pointer to Rid (uint32)",hf_samr_samr_CreateUser2_rid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_CreateUser2_rid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_CreateUser2_rid, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_CreateUser2( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] [ref] lsa_String *account_name, */
+/* IDL: [in] samr_AcctFlags acct_flags, */
+/* IDL: [in] samr_UserAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *user_handle, */
+/* IDL: [out] [ref] uint32 *access_granted, */
+/* IDL: [out] [ref] uint32 *rid */
+/* IDL: ); */
+
+static int
+samr_dissect_CreateUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateUser2";
+       offset = samr_dissect_element_CreateUser2_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_CreateUser2_access_granted(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_CreateUser2_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_CreateUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateUser2";
+       offset = samr_dissect_element_CreateUser2_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateUser2_account_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateUser2_acct_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_CreateUser2_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_QueryDisplayInfo3_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_start_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_start_idx, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_max_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_max_entries, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_buf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_buf_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_total_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_total_size_, NDR_POINTER_REF, "Pointer to Total Size (uint32)",hf_samr_samr_QueryDisplayInfo3_total_size);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_total_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_total_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_returned_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_returned_size_, NDR_POINTER_REF, "Pointer to Returned Size (uint32)",hf_samr_samr_QueryDisplayInfo3_returned_size);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_returned_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_returned_size, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_QueryDisplayInfo3_info_, NDR_POINTER_REF, "Pointer to Info (samr_DispInfo)",hf_samr_samr_QueryDisplayInfo3_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_QueryDisplayInfo3_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_DispInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_QueryDisplayInfo3_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_QueryDisplayInfo3( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] uint16 level, */
+/* IDL: [in] uint32 start_idx, */
+/* IDL: [in] uint32 max_entries, */
+/* IDL: [in] uint32 buf_size, */
+/* IDL: [out] [ref] uint32 *total_size, */
+/* IDL: [out] [ref] uint32 *returned_size, */
+/* IDL: [out] [ref] [switch_is(level)] samr_DispInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_QueryDisplayInfo3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryDisplayInfo3";
+       offset = samr_dissect_element_QueryDisplayInfo3_total_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_QueryDisplayInfo3_returned_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_QueryDisplayInfo3_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_QueryDisplayInfo3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryDisplayInfo3";
+       offset = samr_dissect_element_QueryDisplayInfo3_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo3_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo3_start_idx(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo3_max_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_QueryDisplayInfo3_buf_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddMultipleMembersToAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_AddMultipleMembersToAlias_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddMultipleMembersToAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_AddMultipleMembersToAlias_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddMultipleMembersToAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_AddMultipleMembersToAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_AddMultipleMembersToAlias_sids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_AddMultipleMembersToAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_AddMultipleMembersToAlias_sids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_AddMultipleMembersToAlias( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [in] [ref] lsa_SidArray *sids */
+/* IDL: ); */
+
+static int
+samr_dissect_AddMultipleMembersToAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddMultipleMembersToAlias";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_AddMultipleMembersToAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddMultipleMembersToAlias";
+       offset = samr_dissect_element_AddMultipleMembersToAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_AddMultipleMembersToAlias_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_, NDR_POINTER_REF, "Pointer to Alias Handle (policy_handle)",hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RemoveMultipleMembersFromAlias_sids_, NDR_POINTER_REF, "Pointer to Sids (lsa_SidArray)",hf_samr_samr_RemoveMultipleMembersFromAlias_sids);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RemoveMultipleMembersFromAlias_sids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_SidArray(tvb,offset,pinfo,tree,drep,hf_samr_samr_RemoveMultipleMembersFromAlias_sids,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_RemoveMultipleMembersFromAlias( */
+/* IDL: [in] [ref] policy_handle *alias_handle, */
+/* IDL: [in] [ref] lsa_SidArray *sids */
+/* IDL: ); */
+
+static int
+samr_dissect_RemoveMultipleMembersFromAlias_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_RemoveMultipleMembersFromAlias_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RemoveMultipleMembersFromAlias";
+       offset = samr_dissect_element_RemoveMultipleMembersFromAlias_alias_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_RemoveMultipleMembersFromAlias_sids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_AsciiString)",hf_samr_samr_OemChangePasswordUser2_server);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_AsciiString(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_server,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_account_, NDR_POINTER_REF, "Pointer to Account (lsa_AsciiString)",hf_samr_samr_OemChangePasswordUser2_account);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_AsciiString(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_account,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_password_, NDR_POINTER_UNIQUE, "Pointer to Password (samr_CryptPassword)",hf_samr_samr_OemChangePasswordUser2_password);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_OemChangePasswordUser2_hash_, NDR_POINTER_UNIQUE, "Pointer to Hash (samr_Password)",hf_samr_samr_OemChangePasswordUser2_hash);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_OemChangePasswordUser2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_OemChangePasswordUser2_hash,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_OemChangePasswordUser2( */
+/* IDL: [unique(1)] [in] lsa_AsciiString *server, */
+/* IDL: [in] [ref] lsa_AsciiString *account, */
+/* IDL: [unique(1)] [in] samr_CryptPassword *password, */
+/* IDL: [unique(1)] [in] samr_Password *hash */
+/* IDL: ); */
+
+static int
+samr_dissect_OemChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OemChangePasswordUser2";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_OemChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OemChangePasswordUser2";
+       offset = samr_dissect_element_OemChangePasswordUser2_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OemChangePasswordUser2_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OemChangePasswordUser2_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_OemChangePasswordUser2_hash(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser2_server);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_server,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser2_account);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_account,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_nt_password_, NDR_POINTER_UNIQUE, "Pointer to Nt Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser2_nt_password);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_nt_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_nt_verifier_, NDR_POINTER_UNIQUE, "Pointer to Nt Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser2_nt_verifier);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_nt_verifier,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser2_lm_change, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_lm_password_, NDR_POINTER_UNIQUE, "Pointer to Lm Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser2_lm_password);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_lm_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser2_lm_verifier_, NDR_POINTER_UNIQUE, "Pointer to Lm Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser2_lm_verifier);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser2_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser2_lm_verifier,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_ChangePasswordUser2( */
+/* IDL: [unique(1)] [in] lsa_String *server, */
+/* IDL: [in] [ref] lsa_String *account, */
+/* IDL: [unique(1)] [in] samr_CryptPassword *nt_password, */
+/* IDL: [unique(1)] [in] samr_Password *nt_verifier, */
+/* IDL: [in] uint8 lm_change, */
+/* IDL: [unique(1)] [in] samr_CryptPassword *lm_password, */
+/* IDL: [unique(1)] [in] samr_Password *lm_verifier */
+/* IDL: ); */
+
+static int
+samr_dissect_ChangePasswordUser2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangePasswordUser2";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_ChangePasswordUser2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangePasswordUser2";
+       offset = samr_dissect_element_ChangePasswordUser2_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser2_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser2_nt_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser2_nt_verifier(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser2_lm_change(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser2_lm_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser2_lm_verifier(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDomPwInfo_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDomPwInfo_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (lsa_String)",hf_samr_samr_GetDomPwInfo_domain_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDomPwInfo_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDomPwInfo_domain_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDomPwInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetDomPwInfo_info_, NDR_POINTER_REF, "Pointer to Info (samr_PwInfo)",hf_samr_samr_GetDomPwInfo_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetDomPwInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_PwInfo(tvb,offset,pinfo,tree,drep,hf_samr_samr_GetDomPwInfo_info,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetDomPwInfo( */
+/* IDL: [unique(1)] [in] lsa_String *domain_name, */
+/* IDL: [out] [ref] samr_PwInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_GetDomPwInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetDomPwInfo";
+       offset = samr_dissect_element_GetDomPwInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetDomPwInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetDomPwInfo";
+       offset = samr_dissect_element_GetDomPwInfo_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect2_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect2_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect2_system_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect2_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect2_system_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect2_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect2_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect2_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect2_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect2_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect2_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect2_connect_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Connect2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
+/* IDL: [in] samr_ConnectAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *connect_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Connect2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Connect2";
+       offset = samr_dissect_element_Connect2_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Connect2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Connect2";
+       offset = samr_dissect_element_Connect2_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect2_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo2_user_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo2_user_handle_, NDR_POINTER_REF, "Pointer to User Handle (policy_handle)",hf_samr_samr_SetUserInfo2_user_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo2_user_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_user_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_UserInfoLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetUserInfo2_info_, NDR_POINTER_REF, "Pointer to Info (samr_UserInfo)",hf_samr_samr_SetUserInfo2_info);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetUserInfo2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_UserInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetUserInfo2_info, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetUserInfo2( */
+/* IDL: [in] [ref] policy_handle *user_handle, */
+/* IDL: [in] samr_UserInfoLevel level, */
+/* IDL: [ref] [in] [switch_is(level)] samr_UserInfo *info */
+/* IDL: ); */
+
+static int
+samr_dissect_SetUserInfo2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetUserInfo2";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetUserInfo2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetUserInfo2";
+       offset = samr_dissect_element_SetUserInfo2_user_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetUserInfo2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetUserInfo2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetBootKeyInformation_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetBootKeyInformation_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_SetBootKeyInformation_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetBootKeyInformation_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_connect_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetBootKeyInformation_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown1, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetBootKeyInformation_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown2, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetBootKeyInformation_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetBootKeyInformation_unknown3, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetBootKeyInformation( */
+/* IDL: [in] [ref] policy_handle *connect_handle, */
+/* IDL: [in] uint32 unknown1, */
+/* IDL: [in] uint32 unknown2, */
+/* IDL: [in] uint32 unknown3 */
+/* IDL: ); */
+
+static int
+samr_dissect_SetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetBootKeyInformation";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetBootKeyInformation";
+       offset = samr_dissect_element_SetBootKeyInformation_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetBootKeyInformation_unknown1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetBootKeyInformation_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetBootKeyInformation_unknown3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_GetBootKeyInformation_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetBootKeyInformation_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_GetBootKeyInformation_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetBootKeyInformation_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetBootKeyInformation_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetBootKeyInformation_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_GetBootKeyInformation_unknown_, NDR_POINTER_REF, "Pointer to Unknown (uint32)",hf_samr_samr_GetBootKeyInformation_unknown);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_GetBootKeyInformation_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_GetBootKeyInformation_unknown, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_GetBootKeyInformation( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [out] [ref] uint32 *unknown */
+/* IDL: ); */
+
+static int
+samr_dissect_GetBootKeyInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetBootKeyInformation";
+       offset = samr_dissect_element_GetBootKeyInformation_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_GetBootKeyInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetBootKeyInformation";
+       offset = samr_dissect_element_GetBootKeyInformation_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect3_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect3_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect3_system_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect3_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect3_system_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect3_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_unknown, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect3_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect3_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect3_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect3_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect3_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect3_connect_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Connect3( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
+/* IDL: [in] uint32 unknown, */
+/* IDL: [in] samr_ConnectAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *connect_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Connect3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Connect3";
+       offset = samr_dissect_element_Connect3_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Connect3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Connect3";
+       offset = samr_dissect_element_Connect3_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect3_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect3_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect4_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect4_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect4_system_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect4_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect4_system_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect4_client_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_ConnectVersion(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_client_version, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect4_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect4_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect4_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect4_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect4_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect4_connect_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Connect4( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
+/* IDL: [in] samr_ConnectVersion client_version, */
+/* IDL: [in] samr_ConnectAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *connect_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Connect4_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Connect4";
+       offset = samr_dissect_element_Connect4_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Connect4_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Connect4";
+       offset = samr_dissect_element_Connect4_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect4_client_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect4_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_server_, NDR_POINTER_UNIQUE, "Pointer to Server (lsa_String)",hf_samr_samr_ChangePasswordUser3_server);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_server,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_account_, NDR_POINTER_REF, "Pointer to Account (lsa_String)",hf_samr_samr_ChangePasswordUser3_account);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_account,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_nt_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_nt_password_, NDR_POINTER_UNIQUE, "Pointer to Nt Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_nt_password);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_nt_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_nt_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_nt_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_nt_verifier_, NDR_POINTER_UNIQUE, "Pointer to Nt Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser3_nt_verifier);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_nt_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_nt_verifier,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_lm_change(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_samr_samr_ChangePasswordUser3_lm_change, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_lm_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_lm_password_, NDR_POINTER_UNIQUE, "Pointer to Lm Password (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_lm_password);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_lm_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_lm_password,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_lm_verifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_lm_verifier_, NDR_POINTER_UNIQUE, "Pointer to Lm Verifier (samr_Password)",hf_samr_samr_ChangePasswordUser3_lm_verifier);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_lm_verifier_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_lm_verifier,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_password3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_password3_, NDR_POINTER_UNIQUE, "Pointer to Password3 (samr_CryptPassword)",hf_samr_samr_ChangePasswordUser3_password3);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_password3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_CryptPassword(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_password3,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_dominfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_dominfo_, NDR_POINTER_REF, "Pointer to Dominfo (samr_DomInfo1)",hf_samr_samr_ChangePasswordUser3_dominfo);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_dominfo_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_dominfo__, NDR_POINTER_UNIQUE, "Pointer to Dominfo (samr_DomInfo1)",hf_samr_samr_ChangePasswordUser3_dominfo);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_dominfo__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_DomInfo1(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_dominfo,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_reject(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_reject_, NDR_POINTER_REF, "Pointer to Reject (userPwdChangeFailureInformation)",hf_samr_samr_ChangePasswordUser3_reject);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_reject_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ChangePasswordUser3_reject__, NDR_POINTER_UNIQUE, "Pointer to Reject (userPwdChangeFailureInformation)",hf_samr_samr_ChangePasswordUser3_reject);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ChangePasswordUser3_reject__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_userPwdChangeFailureInformation(tvb,offset,pinfo,tree,drep,hf_samr_samr_ChangePasswordUser3_reject,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_ChangePasswordUser3( */
+/* IDL: [unique(1)] [in] lsa_String *server, */
+/* IDL: [in] [ref] lsa_String *account, */
+/* IDL: [unique(1)] [in] samr_CryptPassword *nt_password, */
+/* IDL: [unique(1)] [in] samr_Password *nt_verifier, */
+/* IDL: [in] uint8 lm_change, */
+/* IDL: [unique(1)] [in] samr_CryptPassword *lm_password, */
+/* IDL: [unique(1)] [in] samr_Password *lm_verifier, */
+/* IDL: [unique(1)] [in] samr_CryptPassword *password3, */
+/* IDL: [out] [ref] samr_DomInfo1 **dominfo, */
+/* IDL: [out] [ref] userPwdChangeFailureInformation **reject */
+/* IDL: ); */
+
+static int
+samr_dissect_ChangePasswordUser3_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangePasswordUser3";
+       offset = samr_dissect_element_ChangePasswordUser3_dominfo(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_ChangePasswordUser3_reject(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_ChangePasswordUser3_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangePasswordUser3";
+       offset = samr_dissect_element_ChangePasswordUser3_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_nt_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_nt_verifier(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_lm_change(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_lm_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_lm_verifier(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ChangePasswordUser3_password3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_samr_samr_Connect5_system_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_samr_samr_Connect5_system_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_bitmap_ConnectAccessMask(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_access_mask, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_level_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_level_in, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_info_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_info_in_, NDR_POINTER_REF, "Pointer to Info In (samr_ConnectInfo)",hf_samr_samr_Connect5_info_in);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_info_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_info_in, *0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_level_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_level_out_, NDR_POINTER_REF, "Pointer to Level Out (uint32)",hf_samr_samr_Connect5_level_out);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_level_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_level_out, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_info_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_info_out_, NDR_POINTER_REF, "Pointer to Info Out (samr_ConnectInfo)",hf_samr_samr_Connect5_info_out);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_info_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_ConnectInfo(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_info_out, *0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_connect_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_Connect5_connect_handle_, NDR_POINTER_REF, "Pointer to Connect Handle (policy_handle)",hf_samr_samr_Connect5_connect_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_Connect5_connect_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_Connect5_connect_handle, 0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_Connect5( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *system_name, */
+/* IDL: [in] samr_ConnectAccessMask access_mask, */
+/* IDL: [in] uint32 level_in, */
+/* IDL: [ref] [in] [switch_is(level_in)] samr_ConnectInfo *info_in, */
+/* IDL: [out] [ref] uint32 *level_out, */
+/* IDL: [out] [ref] [switch_is(*level_out)] samr_ConnectInfo *info_out, */
+/* IDL: [out] [ref] policy_handle *connect_handle */
+/* IDL: ); */
+
+static int
+samr_dissect_Connect5_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Connect5";
+       offset = samr_dissect_element_Connect5_level_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_Connect5_info_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = samr_dissect_element_Connect5_connect_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_Connect5_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Connect5";
+       offset = samr_dissect_element_Connect5_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect5_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect5_level_in(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_Connect5_info_in(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_RidToSid_domain_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidToSid_domain_handle_, NDR_POINTER_REF, "Pointer to Domain Handle (policy_handle)",hf_samr_samr_RidToSid_domain_handle);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidToSid_domain_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidToSid_domain_handle, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidToSid_rid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_RidToSid_rid, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidToSid_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid2)",hf_samr_samr_RidToSid_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_RidToSid_sid__, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid2)",hf_samr_samr_RidToSid_sid);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_RidToSid_sid__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_dom_sid2(tvb,offset,pinfo,tree,drep,hf_samr_samr_RidToSid_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_RidToSid( */
+/* IDL: [in] [ref] policy_handle *domain_handle, */
+/* IDL: [in] uint32 rid, */
+/* IDL: [out] [ref] dom_sid2 **sid */
+/* IDL: ); */
+
+static int
+samr_dissect_RidToSid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RidToSid";
+       offset = samr_dissect_element_RidToSid_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_RidToSid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RidToSid";
+       offset = samr_dissect_element_RidToSid_domain_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_RidToSid_rid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDsrmPassword_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDsrmPassword_name_, NDR_POINTER_UNIQUE, "Pointer to Name (lsa_String)",hf_samr_samr_SetDsrmPassword_name);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDsrmPassword_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetDsrmPassword_name,0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDsrmPassword_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_samr_samr_SetDsrmPassword_unknown, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDsrmPassword_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_SetDsrmPassword_hash_, NDR_POINTER_UNIQUE, "Pointer to Hash (samr_Password)",hf_samr_samr_SetDsrmPassword_hash);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_SetDsrmPassword_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_struct_Password(tvb,offset,pinfo,tree,drep,hf_samr_samr_SetDsrmPassword_hash,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_SetDsrmPassword( */
+/* IDL: [unique(1)] [in] lsa_String *name, */
+/* IDL: [in] uint32 unknown, */
+/* IDL: [unique(1)] [in] samr_Password *hash */
+/* IDL: ); */
+
+static int
+samr_dissect_SetDsrmPassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetDsrmPassword";
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_SetDsrmPassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetDsrmPassword";
+       offset = samr_dissect_element_SetDsrmPassword_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetDsrmPassword_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_SetDsrmPassword_hash(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePassword_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_enum_ValidatePasswordLevel(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_level, 0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePassword_req(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePassword_req_, NDR_POINTER_REF, "Pointer to Req (samr_ValidatePasswordReq)",hf_samr_samr_ValidatePassword_req);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePassword_req_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_ValidatePasswordReq(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_req, *0);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePassword_rep(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePassword_rep_, NDR_POINTER_REF, "Pointer to Rep (samr_ValidatePasswordRep)",hf_samr_samr_ValidatePassword_rep);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePassword_rep_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, samr_dissect_element_ValidatePassword_rep__, NDR_POINTER_UNIQUE, "Pointer to Rep (samr_ValidatePasswordRep)",hf_samr_samr_ValidatePassword_rep);
+
+       return offset;
+}
+
+static int
+samr_dissect_element_ValidatePassword_rep__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = samr_dissect_ValidatePasswordRep(tvb, offset, pinfo, tree, drep, hf_samr_samr_ValidatePassword_rep, *0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS samr_ValidatePassword( */
+/* IDL: [in] samr_ValidatePasswordLevel level, */
+/* IDL: [ref] [in] [switch_is(level)] samr_ValidatePasswordReq *req, */
+/* IDL: [out] [ref] [switch_is(level)] samr_ValidatePasswordRep **rep */
+/* IDL: ); */
+
+static int
+samr_dissect_ValidatePassword_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ValidatePassword";
+       offset = samr_dissect_element_ValidatePassword_rep(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_samr_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+samr_dissect_ValidatePassword_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ValidatePassword";
+       offset = samr_dissect_element_ValidatePassword_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = samr_dissect_element_ValidatePassword_req(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector samr_dissectors[] = {
+       { 0, "Connect",
+          samr_dissect_Connect_request, samr_dissect_Connect_response},
+       { 1, "Close",
+          samr_dissect_Close_request, samr_dissect_Close_response},
+       { 2, "SetSecurity",
+          samr_dissect_SetSecurity_request, samr_dissect_SetSecurity_response},
+       { 3, "QuerySecurity",
+          samr_dissect_QuerySecurity_request, samr_dissect_QuerySecurity_response},
+       { 4, "Shutdown",
+          samr_dissect_Shutdown_request, samr_dissect_Shutdown_response},
+       { 5, "LookupDomain",
+          samr_dissect_LookupDomain_request, samr_dissect_LookupDomain_response},
+       { 6, "EnumDomains",
+          samr_dissect_EnumDomains_request, samr_dissect_EnumDomains_response},
+       { 7, "OpenDomain",
+          samr_dissect_OpenDomain_request, samr_dissect_OpenDomain_response},
+       { 8, "QueryDomainInfo",
+          samr_dissect_QueryDomainInfo_request, samr_dissect_QueryDomainInfo_response},
+       { 9, "SetDomainInfo",
+          samr_dissect_SetDomainInfo_request, samr_dissect_SetDomainInfo_response},
+       { 10, "CreateDomainGroup",
+          samr_dissect_CreateDomainGroup_request, samr_dissect_CreateDomainGroup_response},
+       { 11, "EnumDomainGroups",
+          samr_dissect_EnumDomainGroups_request, samr_dissect_EnumDomainGroups_response},
+       { 12, "CreateUser",
+          samr_dissect_CreateUser_request, samr_dissect_CreateUser_response},
+       { 13, "EnumDomainUsers",
+          samr_dissect_EnumDomainUsers_request, samr_dissect_EnumDomainUsers_response},
+       { 14, "CreateDomAlias",
+          samr_dissect_CreateDomAlias_request, samr_dissect_CreateDomAlias_response},
+       { 15, "EnumDomainAliases",
+          samr_dissect_EnumDomainAliases_request, samr_dissect_EnumDomainAliases_response},
+       { 16, "GetAliasMembership",
+          samr_dissect_GetAliasMembership_request, samr_dissect_GetAliasMembership_response},
+       { 17, "LookupNames",
+          samr_dissect_LookupNames_request, samr_dissect_LookupNames_response},
+       { 18, "LookupRids",
+          samr_dissect_LookupRids_request, samr_dissect_LookupRids_response},
+       { 19, "OpenGroup",
+          samr_dissect_OpenGroup_request, samr_dissect_OpenGroup_response},
+       { 20, "QueryGroupInfo",
+          samr_dissect_QueryGroupInfo_request, samr_dissect_QueryGroupInfo_response},
+       { 21, "SetGroupInfo",
+          samr_dissect_SetGroupInfo_request, samr_dissect_SetGroupInfo_response},
+       { 22, "AddGroupMember",
+          samr_dissect_AddGroupMember_request, samr_dissect_AddGroupMember_response},
+       { 23, "DeleteDomainGroup",
+          samr_dissect_DeleteDomainGroup_request, samr_dissect_DeleteDomainGroup_response},
+       { 24, "DeleteGroupMember",
+          samr_dissect_DeleteGroupMember_request, samr_dissect_DeleteGroupMember_response},
+       { 25, "QueryGroupMember",
+          samr_dissect_QueryGroupMember_request, samr_dissect_QueryGroupMember_response},
+       { 26, "SetMemberAttributesOfGroup",
+          samr_dissect_SetMemberAttributesOfGroup_request, samr_dissect_SetMemberAttributesOfGroup_response},
+       { 27, "OpenAlias",
+          samr_dissect_OpenAlias_request, samr_dissect_OpenAlias_response},
+       { 28, "QueryAliasInfo",
+          samr_dissect_QueryAliasInfo_request, samr_dissect_QueryAliasInfo_response},
+       { 29, "SetAliasInfo",
+          samr_dissect_SetAliasInfo_request, samr_dissect_SetAliasInfo_response},
+       { 30, "DeleteDomAlias",
+          samr_dissect_DeleteDomAlias_request, samr_dissect_DeleteDomAlias_response},
+       { 31, "AddAliasMember",
+          samr_dissect_AddAliasMember_request, samr_dissect_AddAliasMember_response},
+       { 32, "DeleteAliasMember",
+          samr_dissect_DeleteAliasMember_request, samr_dissect_DeleteAliasMember_response},
+       { 33, "GetMembersInAlias",
+          samr_dissect_GetMembersInAlias_request, samr_dissect_GetMembersInAlias_response},
+       { 34, "OpenUser",
+          samr_dissect_OpenUser_request, samr_dissect_OpenUser_response},
+       { 35, "DeleteUser",
+          samr_dissect_DeleteUser_request, samr_dissect_DeleteUser_response},
+       { 36, "QueryUserInfo",
+          samr_dissect_QueryUserInfo_request, samr_dissect_QueryUserInfo_response},
+       { 37, "SetUserInfo",
+          samr_dissect_SetUserInfo_request, samr_dissect_SetUserInfo_response},
+       { 38, "ChangePasswordUser",
+          samr_dissect_ChangePasswordUser_request, samr_dissect_ChangePasswordUser_response},
+       { 39, "GetGroupsForUser",
+          samr_dissect_GetGroupsForUser_request, samr_dissect_GetGroupsForUser_response},
+       { 40, "QueryDisplayInfo",
+          samr_dissect_QueryDisplayInfo_request, samr_dissect_QueryDisplayInfo_response},
+       { 41, "GetDisplayEnumerationIndex",
+          samr_dissect_GetDisplayEnumerationIndex_request, samr_dissect_GetDisplayEnumerationIndex_response},
+       { 42, "TestPrivateFunctionsDomain",
+          samr_dissect_TestPrivateFunctionsDomain_request, samr_dissect_TestPrivateFunctionsDomain_response},
+       { 43, "TestPrivateFunctionsUser",
+          samr_dissect_TestPrivateFunctionsUser_request, samr_dissect_TestPrivateFunctionsUser_response},
+       { 44, "GetUserPwInfo",
+          samr_dissect_GetUserPwInfo_request, samr_dissect_GetUserPwInfo_response},
+       { 45, "RemoveMemberFromForeignDomain",
+          samr_dissect_RemoveMemberFromForeignDomain_request, samr_dissect_RemoveMemberFromForeignDomain_response},
+       { 46, "QueryDomainInfo2",
+          samr_dissect_QueryDomainInfo2_request, samr_dissect_QueryDomainInfo2_response},
+       { 47, "QueryUserInfo2",
+          samr_dissect_QueryUserInfo2_request, samr_dissect_QueryUserInfo2_response},
+       { 48, "QueryDisplayInfo2",
+          samr_dissect_QueryDisplayInfo2_request, samr_dissect_QueryDisplayInfo2_response},
+       { 49, "GetDisplayEnumerationIndex2",
+          samr_dissect_GetDisplayEnumerationIndex2_request, samr_dissect_GetDisplayEnumerationIndex2_response},
+       { 50, "CreateUser2",
+          samr_dissect_CreateUser2_request, samr_dissect_CreateUser2_response},
+       { 51, "QueryDisplayInfo3",
+          samr_dissect_QueryDisplayInfo3_request, samr_dissect_QueryDisplayInfo3_response},
+       { 52, "AddMultipleMembersToAlias",
+          samr_dissect_AddMultipleMembersToAlias_request, samr_dissect_AddMultipleMembersToAlias_response},
+       { 53, "RemoveMultipleMembersFromAlias",
+          samr_dissect_RemoveMultipleMembersFromAlias_request, samr_dissect_RemoveMultipleMembersFromAlias_response},
+       { 54, "OemChangePasswordUser2",
+          samr_dissect_OemChangePasswordUser2_request, samr_dissect_OemChangePasswordUser2_response},
+       { 55, "ChangePasswordUser2",
+          samr_dissect_ChangePasswordUser2_request, samr_dissect_ChangePasswordUser2_response},
+       { 56, "GetDomPwInfo",
+          samr_dissect_GetDomPwInfo_request, samr_dissect_GetDomPwInfo_response},
+       { 57, "Connect2",
+          samr_dissect_Connect2_request, samr_dissect_Connect2_response},
+       { 58, "SetUserInfo2",
+          samr_dissect_SetUserInfo2_request, samr_dissect_SetUserInfo2_response},
+       { 59, "SetBootKeyInformation",
+          samr_dissect_SetBootKeyInformation_request, samr_dissect_SetBootKeyInformation_response},
+       { 60, "GetBootKeyInformation",
+          samr_dissect_GetBootKeyInformation_request, samr_dissect_GetBootKeyInformation_response},
+       { 61, "Connect3",
+          samr_dissect_Connect3_request, samr_dissect_Connect3_response},
+       { 62, "Connect4",
+          samr_dissect_Connect4_request, samr_dissect_Connect4_response},
+       { 63, "ChangePasswordUser3",
+          samr_dissect_ChangePasswordUser3_request, samr_dissect_ChangePasswordUser3_response},
+       { 64, "Connect5",
+          samr_dissect_Connect5_request, samr_dissect_Connect5_response},
+       { 65, "RidToSid",
+          samr_dissect_RidToSid_request, samr_dissect_RidToSid_response},
+       { 66, "SetDsrmPassword",
+          samr_dissect_SetDsrmPassword_request, samr_dissect_SetDsrmPassword_response},
+       { 67, "ValidatePassword",
+          samr_dissect_ValidatePassword_request, samr_dissect_ValidatePassword_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_samr(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_samr_samr_QueryDisplayInfo2_level,
+         { "Level", "samr.samr_QueryDisplayInfo2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect5_connect_handle,
+         { "Connect Handle", "samr.samr_Connect5.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect2_system_name,
+         { "System Name", "samr.samr_Connect2.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH,
+         { "Acb Dont Require Preauth", "samr.samr_AcctFlags.ACB_DONT_REQUIRE_PREAUTH", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DONT_REQUIRE_PREAUTH_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_oem,
+         { "Oem", "samr.samr_DomainInfo.oem", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfoAscii_entries,
+         { "Entries", "samr.samr_DispInfoAscii.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryAliasInfo_level,
+         { "Level", "samr.samr_QueryAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFullGroup_idx,
+         { "Idx", "samr.samr_DispEntryFullGroup.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryGroupInfo_info,
+         { "Info", "samr.samr_QueryGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT,
+         { "Samr Field Logon Script", "samr.samr_FieldsPresent.SAMR_FIELD_LOGON_SCRIPT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LOGON_SCRIPT_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_primary_gid,
+         { "Primary Gid", "samr.samr_UserInfo21.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation2_lockout_duration,
+         { "Lockout Duration", "samr.samr_DomGeneralInformation2.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY,
+         { "Samr Field Acct Expiry", "samr.samr_FieldsPresent.SAMR_FIELD_ACCT_EXPIRY", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ACCT_EXPIRY_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_samr_samr_DispInfoGeneral_count,
+         { "Count", "samr.samr_DispInfoGeneral.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser_rid,
+         { "Rid", "samr.samr_CreateUser.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_total_size,
+         { "Total Size", "samr.samr_QueryDisplayInfo3.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDomPwInfo_info,
+         { "Info", "samr.samr_GetDomPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QuerySecurity_sdbuf,
+         { "Sdbuf", "samr.samr_QuerySecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_workstations,
+         { "Workstations", "samr.samr_UserInfo3.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryUserInfo2_info,
+         { "Info", "samr.samr_QueryUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_start_idx,
+         { "Start Idx", "samr.samr_QueryDisplayInfo3.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PARAMETERS,
+         { "Samr Field Parameters", "samr.samr_FieldsPresent.SAMR_FIELD_PARAMETERS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PARAMETERS_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_num_users,
+         { "Num Users", "samr.samr_DomGeneralInformation.num_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS,
+         { "Samr Domain Access Lookup Alias", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_acct_flags,
+         { "Acct Flags", "samr.samr_UserInfo21.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomainGroup_access_mask,
+         { "Access Mask", "samr.samr_CreateDomainGroup.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_profile_path,
+         { "Profile Path", "samr.samr_UserInfo5.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_PW_EXPIRED,
+         { "Acb Pw Expired", "samr.samr_AcctFlags.ACB_PW_EXPIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PW_EXPIRED_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_samr_samr_OpenUser_rid,
+         { "Rid", "samr.samr_OpenUser.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq3_hash,
+         { "Hash", "samr.samr_ValidatePasswordReq3.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect2_access_mask,
+         { "Access Mask", "samr.samr_Connect2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetUserInfo_user_handle,
+         { "User Handle", "samr.samr_SetUserInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDomainInfo_info,
+         { "Info", "samr.samr_QueryDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info16,
+         { "Info16", "samr.samr_UserInfo.info16", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetBootKeyInformation_unknown1,
+         { "Unknown1", "samr.samr_SetBootKeyInformation.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfo_attributes,
+         { "Attributes", "samr.samr_GroupInfo.attributes", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo3_force_logoff_time,
+         { "Force Logoff Time", "samr.samr_DomInfo3.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_new_nt_crypted,
+         { "New Nt Crypted", "samr.samr_ChangePasswordUser.new_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_reject,
+         { "Reject", "samr.samr_ChangePasswordUser3.reject", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDomainInfo2_info,
+         { "Info", "samr.samr_QueryDomainInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo1_description,
+         { "Description", "samr.samr_UserInfo1.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetAliasInfo_info,
+         { "Info", "samr.samr_SetAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_cross1_present,
+         { "Cross1 Present", "samr.samr_ChangePasswordUser.cross1_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_primary_gid,
+         { "Primary Gid", "samr.samr_UserInfo5.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE,
+         { "Domain Password No Clear Change", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_NO_CLEAR_CHANGE", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_NO_CLEAR_CHANGE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
+         { "Samr Domain Access Open Account", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_samr_samr_Connect4_system_name,
+         { "System Name", "samr.samr_Connect4.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_buf_size,
+         { "Buf Size", "samr.samr_QueryDisplayInfo3.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS,
+         { "Samr Field Num Logons", "samr.samr_FieldsPresent.SAMR_FIELD_NUM_LOGONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_NUM_LOGONS_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT,
+         { "Samr Validate Field Bad Password Count", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_COUNT_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_Connect5_access_mask,
+         { "Access Mask", "samr.samr_Connect5.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Ids_ids,
+         { "Ids", "samr.samr_Ids.ids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE,
+         { "Samr Field Last Pwd Change", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_PWD_CHANGE_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo20_parameters,
+         { "Parameters", "samr.samr_UserInfo20.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo18_lm_pwd,
+         { "Lm Pwd", "samr.samr_UserInfo18.lm_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo1_account_name,
+         { "Account Name", "samr.samr_UserInfo1.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_lm_change,
+         { "Lm Change", "samr.samr_ChangePasswordUser2.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_description,
+         { "Description", "samr.samr_UserInfo21.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_profile_path,
+         { "Profile Path", "samr.samr_UserInfo21.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePassword_req,
+         { "Req", "samr.samr_ValidatePassword.req", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_DISABLED,
+         { "Acb Disabled", "samr.samr_AcctFlags.ACB_DISABLED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DISABLED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_private_data_sensitive,
+         { "Private Data Sensitive", "samr.samr_UserInfo21.private_data_sensitive", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_nt_cross,
+         { "Nt Cross", "samr.samr_ChangePasswordUser.nt_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME,
+         { "Samr Field Account Name", "samr.samr_FieldsPresent.SAMR_FIELD_ACCOUNT_NAME", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ACCOUNT_NAME_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_rid,
+         { "Rid", "samr.samr_UserInfo21.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenGroup_access_mask,
+         { "Access Mask", "samr.samr_OpenGroup.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq3_password,
+         { "Password", "samr.samr_ValidatePasswordReq3.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_logon_script,
+         { "Logon Script", "samr.samr_UserInfo5.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidWithAttributeArray_count,
+         { "Count", "samr.samr_RidWithAttributeArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AddGroupMember_group_handle,
+         { "Group Handle", "samr.samr_AddGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_pwd_history_len,
+         { "Pwd History Len", "samr.samr_ValidatePasswordInfo.pwd_history_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfoFullGroups_entries,
+         { "Entries", "samr.samr_DispInfoFullGroups.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_bad_password_count,
+         { "Bad Password Count", "samr.samr_UserInfo5.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info5,
+         { "Info5", "samr.samr_DomainInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER,
+         { "Samr Alias Access Add Member", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_ADD_MEMBER", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_ADD_MEMBER_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info6,
+         { "Info6", "samr.samr_UserInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect5_info_out,
+         { "Info Out", "samr.samr_Connect5.info_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect_connect_handle,
+         { "Connect Handle", "samr.samr_Connect.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_logon_script,
+         { "Logon Script", "samr.samr_UserInfo3.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetUserInfo_level,
+         { "Level", "samr.samr_SetUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_last_logon,
+         { "Last Logon", "samr.samr_UserInfo21.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetBootKeyInformation_domain_handle,
+         { "Domain Handle", "samr.samr_GetBootKeyInformation.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_returned_size,
+         { "Returned Size", "samr.samr_QueryDisplayInfo3.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq3_account,
+         { "Account", "samr.samr_ValidatePasswordReq3.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo7_account_name,
+         { "Account Name", "samr.samr_UserInfo7.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo23_info,
+         { "Info", "samr.samr_UserInfo23.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1,
+         { "Samr Domain Access Set Info 1", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_SET_INFO_1", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_1_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_last_logon,
+         { "Last Logon", "samr.samr_UserInfo3.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info10,
+         { "Info10", "samr.samr_UserInfo.info10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainGroups_max_size,
+         { "Max Size", "samr.samr_EnumDomainGroups.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE,
+         { "Domain Password No Anon Change", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_NO_ANON_CHANGE", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_NO_ANON_CHANGE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_full_name,
+         { "Full Name", "samr.samr_UserInfo3.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetUserInfo2_user_handle,
+         { "User Handle", "samr.samr_SetUserInfo2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryAscii_account_name,
+         { "Account Name", "samr.samr_DispEntryAscii.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo11_logon_script,
+         { "Logon Script", "samr.samr_UserInfo11.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_lm_present,
+         { "Lm Present", "samr.samr_ChangePasswordUser.lm_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AddMultipleMembersToAlias_sids,
+         { "Sids", "samr.samr_AddMultipleMembersToAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenDomain_domain_handle,
+         { "Domain Handle", "samr.samr_OpenDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo13_sequence_num,
+         { "Sequence Num", "samr.samr_DomInfo13.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info21,
+         { "Info21", "samr.samr_UserInfo.info21", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq_req1,
+         { "Req1", "samr.samr_ValidatePasswordReq.req1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetAliasMembership_domain_handle,
+         { "Domain Handle", "samr.samr_GetAliasMembership.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_MNS,
+         { "Acb Mns", "samr.samr_AcctFlags.ACB_MNS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_MNS_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFullGroup_description,
+         { "Description", "samr.samr_DispEntryFullGroup.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetSecurity_sdbuf,
+         { "Sdbuf", "samr.samr_SetSecurity.sdbuf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq2_account,
+         { "Account", "samr.samr_ValidatePasswordReq2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupNames_names,
+         { "Names", "samr.samr_LookupNames.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE,
+         { "Domain Refuse Password Change", "samr.samr_PasswordProperties.DOMAIN_REFUSE_PASSWORD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_REFUSE_PASSWORD_CHANGE_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP,
+         { "Samr User Access Change Group Membership", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_samr_samr_PwInfo_password_properties,
+         { "Password Properties", "samr.samr_PwInfo.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq_req2,
+         { "Req2", "samr.samr_ValidatePasswordReq.req2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation2_lockout_window,
+         { "Lockout Window", "samr.samr_DomGeneralInformation2.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_returned_size,
+         { "Returned Size", "samr.samr_QueryDisplayInfo2.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetBootKeyInformation_unknown2,
+         { "Unknown2", "samr.samr_SetBootKeyInformation.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGON,
+         { "Samr Field Last Logon", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_LOGON", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_LOGON_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_samr_samr_RidToSid_rid,
+         { "Rid", "samr.samr_RidToSid.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Ids_count,
+         { "Count", "samr.samr_Ids.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM,
+         { "Samr User Access Set Loc Com", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_SET_LOC_COM", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_SET_LOC_COM_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_SMARTCARD_REQUIRED,
+         { "Acb Smartcard Required", "samr.samr_AcctFlags.ACB_SMARTCARD_REQUIRED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SMARTCARD_REQUIRED_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_nt_verifier,
+         { "Nt Verifier", "samr.samr_ChangePasswordUser3.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info17,
+         { "Info17", "samr.samr_UserInfo.info17", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupRids_types,
+         { "Types", "samr.samr_LookupRids.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DeleteGroupMember_rid,
+         { "Rid", "samr.samr_DeleteGroupMember.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH,
+         { "Samr Field Profile Path", "samr.samr_FieldsPresent.SAMR_FIELD_PROFILE_PATH", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PROFILE_PATH_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_lm_change,
+         { "Lm Change", "samr.samr_ChangePasswordUser3.lm_change", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_rid,
+         { "Rid", "samr.samr_CreateUser2.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupRids_rids,
+         { "Rids", "samr.samr_LookupRids.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo1_primary_gid,
+         { "Primary Gid", "samr.samr_UserInfo1.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetMembersInAlias_alias_handle,
+         { "Alias Handle", "samr.samr_GetMembersInAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq1_info,
+         { "Info", "samr.samr_ValidatePasswordReq1.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_home_drive,
+         { "Home Drive", "samr.samr_UserInfo21.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_PWNOEXP,
+         { "Acb Pwnoexp", "samr.samr_AcctFlags.ACB_PWNOEXP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOEXP_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_samr_samr_DomOEMInformation_oem_information,
+         { "Oem Information", "samr.samr_DomOEMInformation.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetBootKeyInformation_connect_handle,
+         { "Connect Handle", "samr.samr_SetBootKeyInformation.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainAliases_num_entries,
+         { "Num Entries", "samr.samr_EnumDomainAliases.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_SVRTRUST,
+         { "Acb Svrtrust", "samr.samr_AcctFlags.ACB_SVRTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_SVRTRUST_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_samr_samr_OpenAlias_domain_handle,
+         { "Domain Handle", "samr.samr_OpenAlias.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_oem_information,
+         { "Oem Information", "samr.samr_DomGeneralInformation.oem_information", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info8,
+         { "Info8", "samr.samr_UserInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo25_info,
+         { "Info", "samr.samr_UserInfo25.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP,
+         { "Samr User Access Get Group Membership", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_samr_samr_CreateDomainGroup_name,
+         { "Name", "samr.samr_CreateDomainGroup.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_num_groups,
+         { "Num Groups", "samr.samr_DomGeneralInformation.num_groups", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetGroupInfo_info,
+         { "Info", "samr.samr_SetGroupInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainAliases_resume_handle,
+         { "Resume Handle", "samr.samr_EnumDomainAliases.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_num_aliases,
+         { "Num Aliases", "samr.samr_DomGeneralInformation.num_aliases", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainAliases_max_size,
+         { "Max Size", "samr.samr_EnumDomainAliases.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_full_name,
+         { "Full Name", "samr.samr_UserInfo21.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDomPwInfo_domain_name,
+         { "Domain Name", "samr.samr_GetDomPwInfo.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_primary_gid,
+         { "Primary Gid", "samr.samr_UserInfo3.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO,
+         { "Samr Alias Access Lookup Info", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_LOOKUP_INFO", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_LOOKUP_INFO_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info5,
+         { "Info5", "samr.samr_UserInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidWithAttribute_rid,
+         { "Rid", "samr.samr_RidWithAttribute.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_home_directory,
+         { "Home Directory", "samr.samr_UserInfo3.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_cross2_present,
+         { "Cross2 Present", "samr.samr_ChangePasswordUser.cross2_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DeleteAliasMember_sid,
+         { "Sid", "samr.samr_DeleteAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePassword_rep,
+         { "Rep", "samr.samr_ValidatePassword.rep", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_fields_present,
+         { "Fields Present", "samr.samr_ValidatePasswordInfo.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER,
+         { "Samr Group Access Remove Member", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_REMOVE_MEMBER", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_REMOVE_MEMBER_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_SetMemberAttributesOfGroup_unknown1,
+         { "Unknown1", "samr.samr_SetMemberAttributesOfGroup.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex2_level,
+         { "Level", "samr.samr_GetDisplayEnumerationIndex2.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED,
+         { "Acb Enc Txt Pwd Allowed", "samr.samr_AcctFlags.ACB_ENC_TXT_PWD_ALLOWED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_ENC_TXT_PWD_ALLOWED_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_samr_samr_AliasInfo_description,
+         { "Description", "samr.samr_AliasInfo.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_info,
+         { "Info", "samr.samr_QueryDisplayInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfoAll_num_members,
+         { "Num Members", "samr.samr_GroupInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetGroupInfo_group_handle,
+         { "Group Handle", "samr.samr_SetGroupInfo.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_status,
+         { "NT Error", "samr.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_rid,
+         { "Rid", "samr.samr_UserInfo5.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo12_profile_path,
+         { "Profile Path", "samr.samr_UserInfo12.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupDomain_connect_handle,
+         { "Connect Handle", "samr.samr_LookupDomain.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_comment,
+         { "Comment", "samr.samr_UserInfo21.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2,
+         { "Samr Domain Access Set Info 2", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_SET_INFO_2", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_2_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info14,
+         { "Info14", "samr.samr_UserInfo.info14", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_access_granted,
+         { "Access Granted", "samr.samr_CreateUser2.access_granted", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectInfo1_client_version,
+         { "Client Version", "samr.samr_ConnectInfo1.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_acct_flags,
+         { "Acct Flags", "samr.samr_UserInfo5.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo24_password_expired,
+         { "Password Expired", "samr.samr_UserInfo24.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_NOT_DELEGATED,
+         { "Acb Not Delegated", "samr.samr_AcctFlags.ACB_NOT_DELEGATED", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NOT_DELEGATED_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_samr_samr_SetDsrmPassword_name,
+         { "Name", "samr.samr_SetDsrmPassword.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect_system_name,
+         { "System Name", "samr.samr_Connect.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo1_min_password_age,
+         { "Min Password Age", "samr.samr_DomInfo1.min_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupNames_domain_handle,
+         { "Domain Handle", "samr.samr_LookupNames.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupRids_num_rids,
+         { "Num Rids", "samr.samr_LookupRids.num_rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfoDescription_description,
+         { "Description", "samr.samr_GroupInfoDescription.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidAttrArray_count,
+         { "Count", "samr.samr_RidAttrArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryUserInfo_level,
+         { "Level", "samr.samr_QueryUserInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_LOGON_ID,
+         { "Se Group Logon Id", "samr.samr_GroupAttrs.SE_GROUP_LOGON_ID", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_LOGON_ID_tfs), ( 0xC0000000 ), NULL, HFILL }},
+       { &hf_samr_samr_DispEntryGeneral_account_name,
+         { "Account Name", "samr.samr_DispEntryGeneral.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryAliasInfo_alias_handle,
+         { "Alias Handle", "samr.samr_QueryAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_HOMDIRREQ,
+         { "Acb Homdirreq", "samr.samr_AcctFlags.ACB_HOMDIRREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_HOMDIRREQ_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_CryptPasswordEx_data,
+         { "Data", "samr.samr_CryptPasswordEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetAliasInfo_alias_handle,
+         { "Alias Handle", "samr.samr_SetAliasInfo.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_bad_password_time,
+         { "Bad Password Time", "samr.samr_ValidatePasswordInfo.bad_password_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_USE_DES_KEY_ONLY,
+         { "Acb Use Des Key Only", "samr.samr_AcctFlags.ACB_USE_DES_KEY_ONLY", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_USE_DES_KEY_ONLY_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_samr_samr_DispInfo_info1,
+         { "Info1", "samr.samr_DispInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetDomainInfo_level,
+         { "Level", "samr.samr_SetDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfo_info4,
+         { "Info4", "samr.samr_DispInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo8_domain_create_time,
+         { "Domain Create Time", "samr.samr_DomInfo8.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_old_nt_crypted,
+         { "Old Nt Crypted", "samr.samr_ChangePasswordUser.old_nt_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_force_logoff_time,
+         { "Force Logoff Time", "samr.samr_DomGeneralInformation.force_logoff_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo12_lockout_threshold,
+         { "Lockout Threshold", "samr.samr_DomInfo12.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfoAttributes_attributes,
+         { "Attributes", "samr.samr_GroupInfoAttributes.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomainGroup_domain_handle,
+         { "Domain Handle", "samr.samr_CreateDomainGroup.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SamArray_entries,
+         { "Entries", "samr.samr_SamArray.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info9,
+         { "Info9", "samr.samr_UserInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect3_access_mask,
+         { "Access Mask", "samr.samr_Connect3.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_lm_password,
+         { "Lm Password", "samr.samr_ChangePasswordUser2.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryGeneral_full_name,
+         { "Full Name", "samr.samr_DispEntryGeneral.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation2_general,
+         { "General", "samr.samr_DomGeneralInformation2.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasInfoAll_num_members,
+         { "Num Members", "samr.samr_AliasInfoAll.num_members", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO,
+         { "Samr Group Access Set Info", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_SET_INFO", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_SET_INFO_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFull_description,
+         { "Description", "samr.samr_DispEntryFull.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupDomain_domain_name,
+         { "Domain Name", "samr.samr_LookupDomain.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordRep_ctr3,
+         { "Ctr3", "samr.samr_ValidatePasswordRep.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_max_entries,
+         { "Max Entries", "samr.samr_QueryDisplayInfo3.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo6_primary,
+         { "Primary", "samr.samr_DomInfo6.primary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX,
+         { "Domain Password Complex", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_COMPLEX", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_COMPLEX_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_DeleteGroupMember_group_handle,
+         { "Group Handle", "samr.samr_DeleteGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect5_system_name,
+         { "System Name", "samr.samr_Connect5.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_bad_password_count,
+         { "Bad Password Count", "samr.samr_UserInfo21.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_acct_expiry,
+         { "Acct Expiry", "samr.samr_UserInfo21.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainUsers_max_size,
+         { "Max Size", "samr.samr_EnumDomainUsers.max_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE,
+         { "Samr Field Allow Pwd Change", "samr.samr_FieldsPresent.SAMR_FIELD_ALLOW_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ALLOW_PWD_CHANGE_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_samr_samr_LookupNames_rids,
+         { "Rids", "samr.samr_LookupNames.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo1_min_password_length,
+         { "Min Password Length", "samr.samr_DomInfo1.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq3_pwd_must_change_at_next_logon,
+         { "Pwd Must Change At Next Logon", "samr.samr_ValidatePasswordReq3.pwd_must_change_at_next_logon", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QuerySecurity_handle,
+         { "Handle", "samr.samr_QuerySecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS,
+         { "Samr Field Workstations", "samr.samr_FieldsPresent.SAMR_FIELD_WORKSTATIONS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_WORKSTATIONS_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex_idx,
+         { "Idx", "samr.samr_GetDisplayEnumerationIndex.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo9_domain_server_state,
+         { "Domain Server State", "samr.samr_DomInfo9.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect5_level_out,
+         { "Level Out", "samr.samr_Connect5.level_out", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_user_handle,
+         { "User Handle", "samr.samr_CreateUser2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_last_logon,
+         { "Last Logon", "samr.samr_UserInfo5.last_logon", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_server,
+         { "Server", "samr.samr_ChangePasswordUser2.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetDomainInfo_info,
+         { "Info", "samr.samr_SetDomainInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SamArray_count,
+         { "Count", "samr.samr_SamArray.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo24_password,
+         { "Password", "samr.samr_UserInfo24.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFull_idx,
+         { "Idx", "samr.samr_DispEntryFull.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER,
+         { "Samr Access Initialize Server", "samr.samr_ConnectAccessMask.SAMR_ACCESS_INITIALIZE_SERVER", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_INITIALIZE_SERVER_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFull_acct_flags,
+         { "Acct Flags", "samr.samr_DispEntryFull.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo13_modified_count_at_last_promotion,
+         { "Modified Count At Last Promotion", "samr.samr_DomInfo13.modified_count_at_last_promotion", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetAliasMembership_sids,
+         { "Sids", "samr.samr_GetAliasMembership.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info1,
+         { "Info1", "samr.samr_UserInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_RESOURCE,
+         { "Se Group Resource", "samr.samr_GroupAttrs.SE_GROUP_RESOURCE", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_RESOURCE_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_DESCRIPTION,
+         { "Samr Field Description", "samr.samr_FieldsPresent.SAMR_FIELD_DESCRIPTION", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_DESCRIPTION_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo18_nt_pwd,
+         { "Nt Pwd", "samr.samr_UserInfo18.nt_pwd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_nt_owf_password,
+         { "Nt Owf Password", "samr.samr_UserInfo21.nt_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenAlias_alias_handle,
+         { "Alias Handle", "samr.samr_OpenAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetMemberAttributesOfGroup_group_handle,
+         { "Group Handle", "samr.samr_SetMemberAttributesOfGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo23_password,
+         { "Password", "samr.samr_UserInfo23.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_last_logoff,
+         { "Last Logoff", "samr.samr_UserInfo21.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfo_info2,
+         { "Info2", "samr.samr_DispInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainUsers_resume_handle,
+         { "Resume Handle", "samr.samr_EnumDomainUsers.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordRepCtr_status,
+         { "Status", "samr.samr_ValidatePasswordRepCtr.status", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidationStatus_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_SetMemberAttributesOfGroup_unknown2,
+         { "Unknown2", "samr.samr_SetMemberAttributesOfGroup.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_general2,
+         { "General2", "samr.samr_DomainInfo.general2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo2_reserved,
+         { "Reserved", "samr.samr_UserInfo2.reserved", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfoFull_count,
+         { "Count", "samr.samr_DispInfoFull.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS,
+         { "Samr Group Access Get Members", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_GET_MEMBERS", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_GET_MEMBERS_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE,
+         { "Samr Field Country Code", "samr.samr_FieldsPresent.SAMR_FIELD_COUNTRY_CODE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COUNTRY_CODE_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq2_password,
+         { "Password", "samr.samr_ValidatePasswordReq2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_logon_hours,
+         { "Logon Hours", "samr.samr_UserInfo5.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY,
+         { "Samr Field Home Directory", "samr.samr_FieldsPresent.SAMR_FIELD_HOME_DIRECTORY", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_HOME_DIRECTORY_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_NO_AUTH_DATA_REQD,
+         { "Acb No Auth Data Reqd", "samr.samr_AcctFlags.ACB_NO_AUTH_DATA_REQD", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NO_AUTH_DATA_REQD_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_samr_samr_DeleteUser_user_handle,
+         { "User Handle", "samr.samr_DeleteUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDomainInfo_level,
+         { "Level", "samr.samr_QueryDomainInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo26_password,
+         { "Password", "samr.samr_UserInfo26.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq1_password_matched,
+         { "Password Matched", "samr.samr_ValidatePasswordReq1.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES,
+         { "Samr User Access Get Attributes", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_ATTRIBUTES", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_ATTRIBUTES_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_account_name,
+         { "Account Name", "samr.samr_UserInfo21.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO,
+         { "Samr Alias Access Set Info", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_SET_INFO", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_SET_INFO_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo2_comment,
+         { "Comment", "samr.samr_UserInfo2.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_RID,
+         { "Samr Field Rid", "samr.samr_FieldsPresent.SAMR_FIELD_RID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_RID_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info23,
+         { "Info23", "samr.samr_UserInfo.info23", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo18_password_expired,
+         { "Password Expired", "samr.samr_UserInfo18.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_total_size,
+         { "Total Size", "samr.samr_QueryDisplayInfo2.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo25_password,
+         { "Password", "samr.samr_UserInfo25.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_lm_verifier,
+         { "Lm Verifier", "samr.samr_ChangePasswordUser2.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetDomainInfo_domain_handle,
+         { "Domain Handle", "samr.samr_SetDomainInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo4_logon_hours,
+         { "Logon Hours", "samr.samr_UserInfo4.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_home_directory,
+         { "Home Directory", "samr.samr_UserInfo5.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo12_lockout_duration,
+         { "Lockout Duration", "samr.samr_DomInfo12.lockout_duration", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser_account_name,
+         { "Account Name", "samr.samr_CreateUser.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo9_primary_gid,
+         { "Primary Gid", "samr.samr_UserInfo9.primary_gid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect4_connect_handle,
+         { "Connect Handle", "samr.samr_Connect4.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO,
+         { "Samr User Access Get Logoninfo", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_LOGONINFO", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOGONINFO_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_RidToSid_domain_handle,
+         { "Domain Handle", "samr.samr_RidToSid.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET,
+         { "Samr Validate Field Password Last Set", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_LAST_SET_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_domain_name,
+         { "Domain Name", "samr.samr_DomGeneralInformation.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_account_name,
+         { "Account Name", "samr.samr_CreateUser2.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryGroupMember_group_handle,
+         { "Group Handle", "samr.samr_QueryGroupMember.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN,
+         { "Samr Access Create Domain", "samr.samr_ConnectAccessMask.SAMR_ACCESS_CREATE_DOMAIN", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_CREATE_DOMAIN_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_DispEntryGeneral_rid,
+         { "Rid", "samr.samr_DispEntryGeneral.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupDomain_sid,
+         { "Sid", "samr.samr_LookupDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AddAliasMember_sid,
+         { "Sid", "samr.samr_AddAliasMember.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryAliasInfo_info,
+         { "Info", "samr.samr_QueryAliasInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq2_hash,
+         { "Hash", "samr.samr_ValidatePasswordReq2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_fields_present,
+         { "Fields Present", "samr.samr_UserInfo21.fields_present", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG,
+         { "Samr Field Expired Flag", "samr.samr_FieldsPresent.SAMR_FIELD_EXPIRED_FLAG", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_EXPIRED_FLAG_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq2_password_matched,
+         { "Password Matched", "samr.samr_ValidatePasswordReq2.password_matched", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_domain_handle,
+         { "Domain Handle", "samr.samr_CreateUser2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QuerySecurity_sec_info,
+         { "Sec Info", "samr.samr_QuerySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AddGroupMember_rid,
+         { "Rid", "samr.samr_AddGroupMember.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info12,
+         { "Info12", "samr.samr_DomainInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenGroup_domain_handle,
+         { "Domain Handle", "samr.samr_OpenGroup.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_max_entries,
+         { "Max Entries", "samr.samr_QueryDisplayInfo.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomains_resume_handle,
+         { "Resume Handle", "samr.samr_EnumDomains.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info7,
+         { "Info7", "samr.samr_UserInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfo_all2,
+         { "All2", "samr.samr_GroupInfo.all2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo1_full_name,
+         { "Full Name", "samr.samr_UserInfo1.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_domain_handle,
+         { "Domain Handle", "samr.samr_QueryDisplayInfo3.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RemoveMemberFromForeignDomain_domain_handle,
+         { "Domain Handle", "samr.samr_RemoveMemberFromForeignDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenGroup_group_handle,
+         { "Group Handle", "samr.samr_OpenGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainGroups_resume_handle,
+         { "Resume Handle", "samr.samr_EnumDomainGroups.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetUserInfo2_info,
+         { "Info", "samr.samr_SetUserInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryGroupInfo_group_handle,
+         { "Group Handle", "samr.samr_QueryGroupInfo.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_nt_password,
+         { "Nt Password", "samr.samr_ChangePasswordUser3.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_buf_count,
+         { "Buf Count", "samr.samr_UserInfo21.buf_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PwInfo_min_password_length,
+         { "Min Password Length", "samr.samr_PwInfo.min_password_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_lm_owf_password,
+         { "Lm Owf Password", "samr.samr_UserInfo21.lm_owf_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_sequence_num,
+         { "Sequence Num", "samr.samr_DomGeneralInformation.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo26_password_expired,
+         { "Password Expired", "samr.samr_UserInfo26.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_old_lm_crypted,
+         { "Old Lm Crypted", "samr.samr_ChangePasswordUser.old_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS,
+         { "Samr Alias Access Get Members", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_GET_MEMBERS", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_GET_MEMBERS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_NORMAL,
+         { "Acb Normal", "samr.samr_AcctFlags.ACB_NORMAL", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_NORMAL_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_GroupInfo_all,
+         { "All", "samr.samr_GroupInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo16_acct_flags,
+         { "Acct Flags", "samr.samr_UserInfo16.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo2_country_code,
+         { "Country Code", "samr.samr_UserInfo2.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AddGroupMember_flags,
+         { "Flags", "samr.samr_AddGroupMember.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo10_home_directory,
+         { "Home Directory", "samr.samr_UserInfo10.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomainGroup_group_handle,
+         { "Group Handle", "samr.samr_CreateDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryUserInfo2_user_handle,
+         { "User Handle", "samr.samr_QueryUserInfo2.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OemChangePasswordUser2_server,
+         { "Server", "samr.samr_OemChangePasswordUser2.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD,
+         { "Samr User Access Change Password", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_CHANGE_PASSWORD", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_CHANGE_PASSWORD_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_samr_samr_AliasInfo_all,
+         { "All", "samr.samr_AliasInfo.all", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME,
+         { "Samr Validate Field Bad Password Time", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_BAD_PASSWORD_TIME_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC,
+         { "Samr User Access Get Name Etc", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_NAME_ETC", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_NAME_ETC_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_password3,
+         { "Password3", "samr.samr_ChangePasswordUser3.password3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo13_description,
+         { "Description", "samr.samr_UserInfo13.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_lm_password_set,
+         { "Lm Password Set", "samr.samr_UserInfo21.lm_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info2,
+         { "Info2", "samr.samr_UserInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainUsers_domain_handle,
+         { "Domain Handle", "samr.samr_EnumDomainUsers.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupRids_domain_handle,
+         { "Domain Handle", "samr.samr_LookupRids.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LogonHours_bits,
+         { "Bits", "samr.samr_LogonHours.bits", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenUser_domain_handle,
+         { "Domain Handle", "samr.samr_OpenUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_access_mask,
+         { "Access Mask", "samr.samr_CreateUser2.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT,
+         { "Se Group Enabled By Default", "samr.samr_GroupAttrs.SE_GROUP_ENABLED_BY_DEFAULT", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_BY_DEFAULT_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainGroups_sam,
+         { "Sam", "samr.samr_EnumDomainGroups.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfoAll_name,
+         { "Name", "samr.samr_GroupInfoAll.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordRep_ctr2,
+         { "Ctr2", "samr.samr_ValidatePasswordRep.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info24,
+         { "Info24", "samr.samr_UserInfo.info24", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info3,
+         { "Info3", "samr.samr_DomainInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainGroups_num_entries,
+         { "Num Entries", "samr.samr_EnumDomainGroups.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_PWNOTREQ,
+         { "Acb Pwnotreq", "samr.samr_AcctFlags.ACB_PWNOTREQ", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PWNOTREQ_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_bad_password_count,
+         { "Bad Password Count", "samr.samr_UserInfo3.bad_password_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_CODE_PAGE,
+         { "Samr Field Code Page", "samr.samr_FieldsPresent.SAMR_FIELD_CODE_PAGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_CODE_PAGE_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_new_lm_crypted,
+         { "New Lm Crypted", "samr.samr_ChangePasswordUser.new_lm_crypted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupNames_types,
+         { "Types", "samr.samr_LookupNames.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SamEntry_idx,
+         { "Idx", "samr.samr_SamEntry.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_logon_hours,
+         { "Logon Hours", "samr.samr_UserInfo3.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_account,
+         { "Account", "samr.samr_ChangePasswordUser3.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo8_sequence_num,
+         { "Sequence Num", "samr.samr_DomInfo8.sequence_num", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_pwd_history,
+         { "Pwd History", "samr.samr_ValidatePasswordInfo.pwd_history", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect3_unknown,
+         { "Unknown", "samr.samr_Connect3.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex2_idx,
+         { "Idx", "samr.samr_GetDisplayEnumerationIndex2.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN,
+         { "Samr Access Lookup Domain", "samr.samr_ConnectAccessMask.SAMR_ACCESS_LOOKUP_DOMAIN", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_LOOKUP_DOMAIN_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_ConnectInfo1_unknown2,
+         { "Unknown2", "samr.samr_ConnectInfo1.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_TestPrivateFunctionsUser_user_handle,
+         { "User Handle", "samr.samr_TestPrivateFunctionsUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_domain_handle,
+         { "Domain Handle", "samr.samr_QueryDisplayInfo2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasInfoAll_name,
+         { "Name", "samr.samr_AliasInfoAll.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect_access_mask,
+         { "Access Mask", "samr.samr_Connect.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetUserPwInfo_user_handle,
+         { "User Handle", "samr.samr_GetUserPwInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFull_rid,
+         { "Rid", "samr.samr_DispEntryFull.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenAlias_access_mask,
+         { "Access Mask", "samr.samr_OpenAlias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfo_description,
+         { "Description", "samr.samr_GroupInfo.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenGroup_rid,
+         { "Rid", "samr.samr_OpenGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_OWNER,
+         { "Se Group Owner", "samr.samr_GroupAttrs.SE_GROUP_OWNER", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_OWNER_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainAliases_sam,
+         { "Sam", "samr.samr_EnumDomainAliases.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LogonHours_units_per_week,
+         { "Units Per Week", "samr.samr_LogonHours.units_per_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_role,
+         { "Role", "samr.samr_DomGeneralInformation.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_buf_size,
+         { "Buf Size", "samr.samr_QueryDisplayInfo2.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info13,
+         { "Info13", "samr.samr_DomainInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetSecurity_sec_info,
+         { "Sec Info", "samr.samr_SetSecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT,
+         { "Domain Password Store Cleartext", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_STORE_CLEARTEXT", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_STORE_CLEARTEXT_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation2_lockout_threshold,
+         { "Lockout Threshold", "samr.samr_DomGeneralInformation2.lockout_threshold", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_last_password_change,
+         { "Last Password Change", "samr.samr_UserInfo21.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_account,
+         { "Account", "samr.samr_ChangePasswordUser2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_lm_password,
+         { "Lm Password", "samr.samr_ChangePasswordUser3.lm_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_account_name,
+         { "Account Name", "samr.samr_UserInfo3.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect3_system_name,
+         { "System Name", "samr.samr_Connect3.system_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info11,
+         { "Info11", "samr.samr_UserInfo.info11", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info9,
+         { "Info9", "samr.samr_DomainInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SamEntry_name,
+         { "Name", "samr.samr_SamEntry.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_acct_flags,
+         { "Acct Flags", "samr.samr_UserInfo3.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_allow_password_change,
+         { "Allow Password Change", "samr.samr_UserInfo3.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDomainInfo2_level,
+         { "Level", "samr.samr_QueryDomainInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_DomainInfoClass_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex_name,
+         { "Name", "samr.samr_GetDisplayEnumerationIndex.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq3_info,
+         { "Info", "samr.samr_ValidatePasswordReq3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_lockout_time,
+         { "Lockout Time", "samr.samr_ValidatePasswordInfo.lockout_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect4_access_mask,
+         { "Access Mask", "samr.samr_Connect4.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo17_acct_expiry,
+         { "Acct Expiry", "samr.samr_UserInfo17.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo1_password_history_length,
+         { "Password History Length", "samr.samr_DomInfo1.password_history_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_USE_AES_KEYS,
+         { "Acb Use Aes Keys", "samr.samr_AcctFlags.ACB_USE_AES_KEYS", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_USE_AES_KEYS_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_samr_samr_QueryUserInfo_info,
+         { "Info", "samr.samr_QueryUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_primary,
+         { "Primary", "samr.samr_DomGeneralInformation.primary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER,
+         { "Samr Access Shutdown Server", "samr.samr_ConnectAccessMask.SAMR_ACCESS_SHUTDOWN_SERVER", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_SHUTDOWN_SERVER_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT,
+         { "Samr Field Lm Password Present", "samr.samr_FieldsPresent.SAMR_FIELD_LM_PASSWORD_PRESENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LM_PASSWORD_PRESENT_tfs), ( 0x02000000 ), NULL, HFILL }},
+       { &hf_samr_samr_RemoveMemberFromForeignDomain_sid,
+         { "Sid", "samr.samr_RemoveMemberFromForeignDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_home_drive,
+         { "Home Drive", "samr.samr_UserInfo5.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE,
+         { "Samr Field Force Pwd Change", "samr.samr_FieldsPresent.SAMR_FIELD_FORCE_PWD_CHANGE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_FORCE_PWD_CHANGE_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF,
+         { "Samr Field Last Logoff", "samr.samr_FieldsPresent.SAMR_FIELD_LAST_LOGOFF", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LAST_LOGOFF_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_samr_samr_RidWithAttributeArray_rids,
+         { "Rids", "samr.samr_RidWithAttributeArray.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DeleteDomainGroup_group_handle,
+         { "Group Handle", "samr.samr_DeleteDomainGroup.group_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Password_hash,
+         { "Hash", "samr.samr_Password.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_OWF_PWD,
+         { "Samr Field Owf Pwd", "samr.samr_FieldsPresent.SAMR_FIELD_OWF_PWD", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_OWF_PWD_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info25,
+         { "Info25", "samr.samr_UserInfo.info25", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_start_idx,
+         { "Start Idx", "samr.samr_QueryDisplayInfo.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_home_drive,
+         { "Home Drive", "samr.samr_UserInfo3.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info13,
+         { "Info13", "samr.samr_UserInfo.info13", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DeleteAliasMember_alias_handle,
+         { "Alias Handle", "samr.samr_DeleteAliasMember.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDomainInfo_domain_handle,
+         { "Domain Handle", "samr.samr_QueryDomainInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_nt_password,
+         { "Nt Password", "samr.samr_ChangePasswordUser2.nt_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidAttrArray_attributes,
+         { "Attributes", "samr.samr_RidAttrArray.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_bad_pwd_count,
+         { "Bad Pwd Count", "samr.samr_ValidatePasswordInfo.bad_pwd_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryGroupMember_rids,
+         { "Rids", "samr.samr_QueryGroupMember.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_password_expired,
+         { "Password Expired", "samr.samr_UserInfo21.password_expired", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomains_buf_size,
+         { "Buf Size", "samr.samr_EnumDomains.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo1_max_password_age,
+         { "Max Password Age", "samr.samr_DomInfo1.max_password_age", FT_INT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER,
+         { "Samr Group Access Add Member", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_ADD_MEMBER", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_ADD_MEMBER_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_GroupInfoAll_description,
+         { "Description", "samr.samr_GroupInfoAll.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_logon_count,
+         { "Logon Count", "samr.samr_UserInfo3.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY,
+         { "Samr Validate Field Password History", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_PASSWORD_HISTORY", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT,
+         { "Acb Partial Secrets Account", "samr.samr_AcctFlags.ACB_PARTIAL_SECRETS_ACCOUNT", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_PARTIAL_SECRETS_ACCOUNT_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_samr_samr_GroupInfo_name,
+         { "Name", "samr.samr_GroupInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_force_password_change,
+         { "Force Password Change", "samr.samr_UserInfo3.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_nt_present,
+         { "Nt Present", "samr.samr_ChangePasswordUser.nt_present", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_home_directory,
+         { "Home Directory", "samr.samr_UserInfo21.home_directory", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info12,
+         { "Info12", "samr.samr_UserInfo.info12", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OemChangePasswordUser2_password,
+         { "Password", "samr.samr_OemChangePasswordUser2.password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS,
+         { "Samr Domain Access Create Alias", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_CREATE_ALIAS", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_ALIAS_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainGroups_domain_handle,
+         { "Domain Handle", "samr.samr_EnumDomainGroups.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_opnum,
+         { "Operation", "samr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_server,
+         { "Server", "samr.samr_ChangePasswordUser3.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryUserInfo_user_handle,
+         { "User Handle", "samr.samr_QueryUserInfo.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex2_name,
+         { "Name", "samr.samr_GetDisplayEnumerationIndex2.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO,
+         { "Samr Group Access Lookup Info", "samr.samr_GroupAccessMask.SAMR_GROUP_ACCESS_LOOKUP_INFO", FT_BOOLEAN, 32, TFS(&samr_GroupAccessMask_SAMR_GROUP_ACCESS_LOOKUP_INFO_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_GetGroupsForUser_user_handle,
+         { "User Handle", "samr.samr_GetGroupsForUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDomainInfo2_domain_handle,
+         { "Domain Handle", "samr.samr_QueryDomainInfo2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo14_workstations,
+         { "Workstations", "samr.samr_UserInfo14.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex_domain_handle,
+         { "Domain Handle", "samr.samr_GetDisplayEnumerationIndex.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfo_info3,
+         { "Info3", "samr.samr_DispInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info8,
+         { "Info8", "samr.samr_DomainInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfoGeneral_entries,
+         { "Entries", "samr.samr_DispInfoGeneral.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo8_full_name,
+         { "Full Name", "samr.samr_UserInfo8.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_logon_count,
+         { "Logon Count", "samr.samr_UserInfo21.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_code_page,
+         { "Code Page", "samr.samr_UserInfo21.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFullGroup_acct_flags,
+         { "Acct Flags", "samr.samr_DispEntryFullGroup.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION,
+         { "Acb Trusted To Authenticate For Delegation", "samr.samr_AcctFlags.ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_samr_samr_SetUserInfo_info,
+         { "Info", "samr.samr_SetUserInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenDomain_sid,
+         { "Sid", "samr.samr_OpenDomain.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser2_acct_flags,
+         { "Acct Flags", "samr.samr_CreateUser2.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFull_account_name,
+         { "Account Name", "samr.samr_DispEntryFull.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_userPwdChangeFailureInformation_filterModuleName,
+         { "Filtermodulename", "samr.userPwdChangeFailureInformation.filterModuleName", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH,
+         { "Samr Validate Field Password History Length", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_PASSWORD_HISTORY_LENGTH_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE,
+         { "Samr Field Home Drive", "samr.samr_FieldsPresent.SAMR_FIELD_HOME_DRIVE", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_HOME_DRIVE_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info1,
+         { "Info1", "samr.samr_DomainInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidAttrArray_rids,
+         { "Rids", "samr.samr_RidAttrArray.rids", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordRep_ctr1,
+         { "Ctr1", "samr.samr_ValidatePasswordRep.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo18_nt_pwd_active,
+         { "Nt Pwd Active", "samr.samr_UserInfo18.nt_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_DOMTRUST,
+         { "Acb Domtrust", "samr.samr_AcctFlags.ACB_DOMTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_DOMTRUST_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_lm_cross,
+         { "Lm Cross", "samr.samr_ChangePasswordUser.lm_cross", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_profile_path,
+         { "Profile Path", "samr.samr_UserInfo3.profile_path", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo13_domain_create_time,
+         { "Domain Create Time", "samr.samr_DomInfo13.domain_create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_WSTRUST,
+         { "Acb Wstrust", "samr.samr_AcctFlags.ACB_WSTRUST", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_WSTRUST_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_samr_samr_DispEntryAscii_idx,
+         { "Idx", "samr.samr_DispEntryAscii.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo5_domain_name,
+         { "Domain Name", "samr.samr_DomInfo5.domain_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_logon_count,
+         { "Logon Count", "samr.samr_UserInfo5.logon_count", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_last_logoff,
+         { "Last Logoff", "samr.samr_UserInfo5.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomainGroup_rid,
+         { "Rid", "samr.samr_CreateDomainGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePassword_level,
+         { "Level", "samr.samr_ValidatePassword.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_ValidatePasswordLevel_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo6_full_name,
+         { "Full Name", "samr.samr_UserInfo6.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupRids_names,
+         { "Names", "samr.samr_LookupRids.names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo10_home_drive,
+         { "Home Drive", "samr.samr_UserInfo10.home_drive", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS,
+         { "Samr Field Acct Flags", "samr.samr_FieldsPresent.SAMR_FIELD_ACCT_FLAGS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_ACCT_FLAGS_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS,
+         { "Samr User Access Get Groups", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_GROUPS", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_GROUPS_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_samr_samr_OemChangePasswordUser2_account,
+         { "Account", "samr.samr_OemChangePasswordUser2.account", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RemoveMultipleMembersFromAlias_sids,
+         { "Sids", "samr.samr_RemoveMultipleMembersFromAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_info,
+         { "Info", "samr.samr_QueryDisplayInfo2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS,
+         { "Samr Access Enum Domains", "samr.samr_ConnectAccessMask.SAMR_ACCESS_ENUM_DOMAINS", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_ENUM_DOMAINS_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info4,
+         { "Info4", "samr.samr_UserInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo1_password_properties,
+         { "Password Properties", "samr.samr_DomInfo1.password_properties", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_logon_script,
+         { "Logon Script", "samr.samr_UserInfo21.logon_script", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_AUTOLOCK,
+         { "Acb Autolock", "samr.samr_AcctFlags.ACB_AUTOLOCK", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_AUTOLOCK_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_samr_samr_CreateUser_domain_handle,
+         { "Domain Handle", "samr.samr_CreateUser.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetBootKeyInformation_unknown,
+         { "Unknown", "samr.samr_GetBootKeyInformation.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidWithAttribute_attributes,
+         { "Attributes", "samr.samr_RidWithAttribute.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CryptPassword_data,
+         { "Data", "samr.samr_CryptPassword.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasInfo_name,
+         { "Name", "samr.samr_AliasInfo.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER,
+         { "Samr Domain Access Create User", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_CREATE_USER", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_USER_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_COMMENT,
+         { "Samr Field Comment", "samr.samr_FieldsPresent.SAMR_FIELD_COMMENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_COMMENT_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_last_password_change,
+         { "Last Password Change", "samr.samr_UserInfo3.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Shutdown_connect_handle,
+         { "Connect Handle", "samr.samr_Shutdown.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenDomain_access_mask,
+         { "Access Mask", "samr.samr_OpenDomain.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFullGroup_rid,
+         { "Rid", "samr.samr_DispEntryFullGroup.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect2_connect_handle,
+         { "Connect Handle", "samr.samr_Connect2.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_ENABLED,
+         { "Se Group Enabled", "samr.samr_GroupAttrs.SE_GROUP_ENABLED", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2,
+         { "Samr Domain Access Lookup Info 2", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_ValidationBlob_length,
+         { "Length", "samr.samr_ValidationBlob.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_start_idx,
+         { "Start Idx", "samr.samr_QueryDisplayInfo2.start_idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryGeneral_idx,
+         { "Idx", "samr.samr_DispEntryGeneral.idx", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_logon_hours,
+         { "Logon Hours", "samr.samr_UserInfo21.logon_hours", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_country_code,
+         { "Country Code", "samr.samr_UserInfo21.country_code", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AddAliasMember_alias_handle,
+         { "Alias Handle", "samr.samr_AddAliasMember.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetDsrmPassword_hash,
+         { "Hash", "samr.samr_SetDsrmPassword.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_general,
+         { "General", "samr.samr_DomainInfo.general", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_domain_handle,
+         { "Domain Handle", "samr.samr_QueryDisplayInfo.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_MANDATORY,
+         { "Se Group Mandatory", "samr.samr_GroupAttrs.SE_GROUP_MANDATORY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_MANDATORY_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_description,
+         { "Description", "samr.samr_UserInfo5.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo7_role,
+         { "Role", "samr.samr_DomInfo7.role", FT_UINT32, BASE_DEC, VALS(samr_samr_Role_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_workstations,
+         { "Workstations", "samr.samr_UserInfo21.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryGeneral_description,
+         { "Description", "samr.samr_DispEntryGeneral.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA,
+         { "Samr Field Private Data", "samr.samr_FieldsPresent.SAMR_FIELD_PRIVATE_DATA", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PRIVATE_DATA_tfs), ( 0x04000000 ), NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
+         { "Samr Domain Access Enum Accounts", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq_req3,
+         { "Req3", "samr.samr_ValidatePasswordReq.req3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser2_nt_verifier,
+         { "Nt Verifier", "samr.samr_ChangePasswordUser2.nt_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION,
+         { "Acb Trusted For Delegation", "samr.samr_AcctFlags.ACB_TRUSTED_FOR_DELEGATION", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TRUSTED_FOR_DELEGATION_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_samr_samr_EnumDomains_connect_handle,
+         { "Connect Handle", "samr.samr_EnumDomains.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info18,
+         { "Info18", "samr.samr_UserInfo.info18", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomAlias_access_mask,
+         { "Access Mask", "samr.samr_CreateDomAlias.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_force_password_change,
+         { "Force Password Change", "samr.samr_UserInfo21.force_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex2_domain_handle,
+         { "Domain Handle", "samr.samr_GetDisplayEnumerationIndex2.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_TestPrivateFunctionsDomain_domain_handle,
+         { "Domain Handle", "samr.samr_TestPrivateFunctionsDomain.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_domain_server_state,
+         { "Domain Server State", "samr.samr_DomGeneralInformation.domain_server_state", FT_UINT32, BASE_DEC, VALS(samr_samr_DomainServerState_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_SetBootKeyInformation_unknown3,
+         { "Unknown3", "samr.samr_SetBootKeyInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect3_connect_handle,
+         { "Connect Handle", "samr.samr_Connect3.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainUsers_num_entries,
+         { "Num Entries", "samr.samr_EnumDomainUsers.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq2_info,
+         { "Info", "samr.samr_ValidatePasswordReq2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_LookupNames_num_names,
+         { "Num Names", "samr.samr_LookupNames.num_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_level,
+         { "Level", "samr.samr_QueryDisplayInfo3.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_userPwdChangeFailureInformation_extendedFailureReason,
+         { "Extendedfailurereason", "samr.userPwdChangeFailureInformation.extendedFailureReason", FT_UINT32, BASE_DEC, VALS(samr_samPwdChangeReason_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo2_max_entries,
+         { "Max Entries", "samr.samr_QueryDisplayInfo2.max_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordInfo_last_password_change,
+         { "Last Password Change", "samr.samr_ValidatePasswordInfo.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE,
+         { "Samr User Access Get Locale", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_GET_LOCALE", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_GET_LOCALE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_AddMultipleMembersToAlias_alias_handle,
+         { "Alias Handle", "samr.samr_AddMultipleMembersToAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenUser_access_mask,
+         { "Access Mask", "samr.samr_OpenUser.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RemoveMultipleMembersFromAlias_alias_handle,
+         { "Alias Handle", "samr.samr_RemoveMultipleMembersFromAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS,
+         { "Samr Field Logon Hours", "samr.samr_FieldsPresent.SAMR_FIELD_LOGON_HOURS", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_LOGON_HOURS_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_dominfo,
+         { "Dominfo", "samr.samr_ChangePasswordUser3.dominfo", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidationBlob_data,
+         { "Data", "samr.samr_ValidationBlob.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo18_lm_pwd_active,
+         { "Lm Pwd Active", "samr.samr_UserInfo18.lm_pwd_active", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomAlias_domain_handle,
+         { "Domain Handle", "samr.samr_CreateDomAlias.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info26,
+         { "Info26", "samr.samr_UserInfo.info26", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainAliases_domain_handle,
+         { "Domain Handle", "samr.samr_EnumDomainAliases.domain_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GroupInfoAll_attributes,
+         { "Attributes", "samr.samr_GroupInfoAll.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info7,
+         { "Info7", "samr.samr_DomainInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER,
+         { "Samr Access Connect To Server", "samr.samr_ConnectAccessMask.SAMR_ACCESS_CONNECT_TO_SERVER", FT_BOOLEAN, 32, TFS(&samr_ConnectAccessMask_SAMR_ACCESS_CONNECT_TO_SERVER_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_EnumDomains_num_entries,
+         { "Num Entries", "samr.samr_EnumDomains.num_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_parameters,
+         { "Parameters", "samr.samr_UserInfo21.parameters", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryGeneral_acct_flags,
+         { "Acct Flags", "samr.samr_DispEntryGeneral.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AcctFlags_ACB_TEMPDUP,
+         { "Acb Tempdup", "samr.samr_AcctFlags.ACB_TEMPDUP", FT_BOOLEAN, 32, TFS(&samr_AcctFlags_ACB_TEMPDUP_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_DispInfoFullGroups_count,
+         { "Count", "samr.samr_DispInfoFullGroups.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenUser_user_handle,
+         { "User Handle", "samr.samr_OpenUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1,
+         { "Samr Domain Access Lookup Info 1", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_samr_samr_GetAliasMembership_rids,
+         { "Rids", "samr.samr_GetAliasMembership.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomAlias_alias_handle,
+         { "Alias Handle", "samr.samr_CreateDomAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo6_account_name,
+         { "Account Name", "samr.samr_UserInfo6.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info3,
+         { "Info3", "samr.samr_UserInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect5_level_in,
+         { "Level In", "samr.samr_Connect5.level_in", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomInfo12_lockout_window,
+         { "Lockout Window", "samr.samr_DomInfo12.lockout_window", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser_user_handle,
+         { "User Handle", "samr.samr_CreateUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_RidToSid_sid,
+         { "Sid", "samr.samr_RidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetUserPwInfo_info,
+         { "Info", "samr.samr_GetUserPwInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_SEC_DESC,
+         { "Samr Field Sec Desc", "samr.samr_FieldsPresent.SAMR_FIELD_SEC_DESC", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_SEC_DESC_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainUsers_acct_flags,
+         { "Acct Flags", "samr.samr_EnumDomainUsers.acct_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_rid,
+         { "Rid", "samr.samr_UserInfo3.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainInfo_info6,
+         { "Info6", "samr.samr_DomainInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomAlias_alias_name,
+         { "Alias Name", "samr.samr_CreateDomAlias.alias_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomainUsers_sam,
+         { "Sam", "samr.samr_EnumDomainUsers.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfo_info5,
+         { "Info5", "samr.samr_DispInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetGroupsForUser_rids,
+         { "Rids", "samr.samr_GetGroupsForUser.rids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo3_last_logoff,
+         { "Last Logoff", "samr.samr_UserInfo3.last_logoff", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordRepCtr_info,
+         { "Info", "samr.samr_ValidatePasswordRepCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateDomAlias_rid,
+         { "Rid", "samr.samr_CreateDomAlias.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetGroupInfo_level,
+         { "Level", "samr.samr_SetGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT,
+         { "Samr Field Nt Password Present", "samr.samr_FieldsPresent.SAMR_FIELD_NT_PASSWORD_PRESENT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_NT_PASSWORD_PRESENT_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD,
+         { "Samr User Access Set Password", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_SET_PASSWORD", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_SET_PASSWORD_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_samr_samr_SetUserInfo2_level,
+         { "Level", "samr.samr_SetUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_acct_expiry,
+         { "Acct Expiry", "samr.samr_UserInfo5.acct_expiry", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenAlias_rid,
+         { "Rid", "samr.samr_OpenAlias.rid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Close_handle,
+         { "Handle", "samr.samr_Close.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect5_info_in,
+         { "Info In", "samr.samr_Connect5.info_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_nt_password_set,
+         { "Nt Password Set", "samr.samr_UserInfo21.nt_password_set", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo_info20,
+         { "Info20", "samr.samr_UserInfo.info20", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_private_data,
+         { "Private Data", "samr.samr_UserInfo21.private_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_CreateUser_access_mask,
+         { "Access Mask", "samr.samr_CreateUser.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_account_name,
+         { "Account Name", "samr.samr_UserInfo5.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispInfoFull_entries,
+         { "Entries", "samr.samr_DispInfoFull.entries", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_full_name,
+         { "Full Name", "samr.samr_UserInfo5.full_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser3_lm_verifier,
+         { "Lm Verifier", "samr.samr_ChangePasswordUser3.lm_verifier", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID,
+         { "Samr Field Primary Gid", "samr.samr_FieldsPresent.SAMR_FIELD_PRIMARY_GID", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_PRIMARY_GID_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3,
+         { "Samr Domain Access Set Info 3", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_SET_INFO_3", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_SET_INFO_3_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_samr_samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY,
+         { "Se Group Use For Deny Only", "samr.samr_GroupAttrs.SE_GROUP_USE_FOR_DENY_ONLY", FT_BOOLEAN, 32, TFS(&samr_GroupAttrs_SE_GROUP_USE_FOR_DENY_ONLY_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_samr_samr_DispInfoAscii_count,
+         { "Count", "samr.samr_DispInfoAscii.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_GetMembersInAlias_sids,
+         { "Sids", "samr.samr_GetMembersInAlias.sids", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo3_info,
+         { "Info", "samr.samr_QueryDisplayInfo3.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OemChangePasswordUser2_hash,
+         { "Hash", "samr.samr_OemChangePasswordUser2.hash", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ChangePasswordUser_user_handle,
+         { "User Handle", "samr.samr_ChangePasswordUser.user_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryUserInfo2_level,
+         { "Level", "samr.samr_QueryUserInfo2.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_UserInfoLevel_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT,
+         { "Samr Field Bad Pwd Count", "samr.samr_FieldsPresent.SAMR_FIELD_BAD_PWD_COUNT", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_BAD_PWD_COUNT_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_samr_samr_ValidatePasswordReq3_clear_lockout,
+         { "Clear Lockout", "samr.samr_ValidatePasswordReq3.clear_lockout", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_Connect4_client_version,
+         { "Client Version", "samr.samr_Connect4.client_version", FT_UINT32, BASE_DEC, VALS(samr_samr_ConnectVersion_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_GetDisplayEnumerationIndex_level,
+         { "Level", "samr.samr_GetDisplayEnumerationIndex.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_workstations,
+         { "Workstations", "samr.samr_UserInfo5.workstations", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DispEntryFullGroup_account_name,
+         { "Account Name", "samr.samr_DispEntryFullGroup.account_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME,
+         { "Samr Validate Field Lockout Time", "samr.samr_ValidateFieldsPresent.SAMR_VALIDATE_FIELD_LOCKOUT_TIME", FT_BOOLEAN, 32, TFS(&samr_ValidateFieldsPresent_SAMR_VALIDATE_FIELD_LOCKOUT_TIME_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_total_size,
+         { "Total Size", "samr.samr_QueryDisplayInfo.total_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo1_comment,
+         { "Comment", "samr.samr_UserInfo1.comment", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DeleteDomAlias_alias_handle,
+         { "Alias Handle", "samr.samr_DeleteDomAlias.alias_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_EnumDomains_sam,
+         { "Sam", "samr.samr_EnumDomains.sam", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo2_code_page,
+         { "Code Page", "samr.samr_UserInfo2.code_page", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS,
+         { "Domain Password Lockout Admins", "samr.samr_PasswordProperties.DOMAIN_PASSWORD_LOCKOUT_ADMINS", FT_BOOLEAN, 32, TFS(&samr_PasswordProperties_DOMAIN_PASSWORD_LOCKOUT_ADMINS_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_samr_samr_DomGeneralInformation_unknown3,
+         { "Unknown3", "samr.samr_DomGeneralInformation.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_OpenDomain_connect_handle,
+         { "Connect Handle", "samr.samr_OpenDomain.connect_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES,
+         { "Samr User Access Set Attributes", "samr.samr_UserAccessMask.SAMR_USER_ACCESS_SET_ATTRIBUTES", FT_BOOLEAN, 32, TFS(&samr_UserAccessMask_SAMR_USER_ACCESS_SET_ATTRIBUTES_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_buf_size,
+         { "Buf Size", "samr.samr_QueryDisplayInfo.buf_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER,
+         { "Samr Alias Access Remove Member", "samr.samr_AliasAccessMask.SAMR_ALIAS_ACCESS_REMOVE_MEMBER", FT_BOOLEAN, 32, TFS(&samr_AliasAccessMask_SAMR_ALIAS_ACCESS_REMOVE_MEMBER_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_QueryGroupInfo_level,
+         { "Level", "samr.samr_QueryGroupInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_GroupInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_SetAliasInfo_level,
+         { "Level", "samr.samr_SetAliasInfo.level", FT_UINT1632, BASE_DEC, VALS(samr_samr_AliasInfoEnum_vals), 0, NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_level,
+         { "Level", "samr.samr_QueryDisplayInfo.level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_buffer,
+         { "Buffer", "samr.samr_UserInfo21.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetDsrmPassword_unknown,
+         { "Unknown", "samr.samr_SetDsrmPassword.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo5_last_password_change,
+         { "Last Password Change", "samr.samr_UserInfo5.last_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP,
+         { "Samr Domain Access Create Group", "samr.samr_DomainAccessMask.SAMR_DOMAIN_ACCESS_CREATE_GROUP", FT_BOOLEAN, 32, TFS(&samr_DomainAccessMask_SAMR_DOMAIN_ACCESS_CREATE_GROUP_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_samr_samr_QueryDisplayInfo_returned_size,
+         { "Returned Size", "samr.samr_QueryDisplayInfo.returned_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_UserInfo21_allow_password_change,
+         { "Allow Password Change", "samr.samr_UserInfo21.allow_password_change", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_ConnectInfo_info1,
+         { "Info1", "samr.samr_ConnectInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_SetSecurity_handle,
+         { "Handle", "samr.samr_SetSecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_samr_samr_FieldsPresent_SAMR_FIELD_FULL_NAME,
+         { "Samr Field Full Name", "samr.samr_FieldsPresent.SAMR_FIELD_FULL_NAME", FT_BOOLEAN, 32, TFS(&samr_FieldsPresent_SAMR_FIELD_FULL_NAME_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_samr_samr_AliasInfoAll_description,
+         { "Description", "samr.samr_AliasInfoAll.description", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_samr,
+               &ett_samr_security_secinfo,
+               &ett_samr_samr_AcctFlags,
+               &ett_samr_samr_ConnectAccessMask,
+               &ett_samr_samr_UserAccessMask,
+               &ett_samr_samr_DomainAccessMask,
+               &ett_samr_samr_GroupAccessMask,
+               &ett_samr_samr_AliasAccessMask,
+               &ett_samr_samr_SamEntry,
+               &ett_samr_samr_SamArray,
+               &ett_samr_samr_PasswordProperties,
+               &ett_samr_samr_DomInfo1,
+               &ett_samr_samr_DomGeneralInformation,
+               &ett_samr_samr_DomInfo3,
+               &ett_samr_samr_DomOEMInformation,
+               &ett_samr_samr_DomInfo5,
+               &ett_samr_samr_DomInfo6,
+               &ett_samr_samr_DomInfo7,
+               &ett_samr_samr_DomInfo8,
+               &ett_samr_samr_DomInfo9,
+               &ett_samr_samr_DomGeneralInformation2,
+               &ett_samr_samr_DomInfo12,
+               &ett_samr_samr_DomInfo13,
+               &ett_samr_samr_DomainInfo,
+               &ett_samr_samr_Ids,
+               &ett_samr_samr_GroupAttrs,
+               &ett_samr_samr_GroupInfoAll,
+               &ett_samr_samr_GroupInfoAttributes,
+               &ett_samr_samr_GroupInfoDescription,
+               &ett_samr_samr_GroupInfo,
+               &ett_samr_samr_RidAttrArray,
+               &ett_samr_samr_AliasInfoAll,
+               &ett_samr_samr_AliasInfo,
+               &ett_samr_samr_UserInfo1,
+               &ett_samr_samr_UserInfo2,
+               &ett_samr_samr_LogonHours,
+               &ett_samr_samr_UserInfo3,
+               &ett_samr_samr_UserInfo4,
+               &ett_samr_samr_UserInfo5,
+               &ett_samr_samr_UserInfo6,
+               &ett_samr_samr_UserInfo7,
+               &ett_samr_samr_UserInfo8,
+               &ett_samr_samr_UserInfo9,
+               &ett_samr_samr_UserInfo10,
+               &ett_samr_samr_UserInfo11,
+               &ett_samr_samr_UserInfo12,
+               &ett_samr_samr_UserInfo13,
+               &ett_samr_samr_UserInfo14,
+               &ett_samr_samr_UserInfo16,
+               &ett_samr_samr_UserInfo17,
+               &ett_samr_samr_Password,
+               &ett_samr_samr_UserInfo18,
+               &ett_samr_samr_UserInfo20,
+               &ett_samr_samr_FieldsPresent,
+               &ett_samr_samr_UserInfo21,
+               &ett_samr_samr_CryptPassword,
+               &ett_samr_samr_UserInfo23,
+               &ett_samr_samr_UserInfo24,
+               &ett_samr_samr_CryptPasswordEx,
+               &ett_samr_samr_UserInfo25,
+               &ett_samr_samr_UserInfo26,
+               &ett_samr_samr_UserInfo,
+               &ett_samr_samr_RidWithAttribute,
+               &ett_samr_samr_RidWithAttributeArray,
+               &ett_samr_samr_DispEntryGeneral,
+               &ett_samr_samr_DispInfoGeneral,
+               &ett_samr_samr_DispEntryFull,
+               &ett_samr_samr_DispInfoFull,
+               &ett_samr_samr_DispEntryFullGroup,
+               &ett_samr_samr_DispInfoFullGroups,
+               &ett_samr_samr_DispEntryAscii,
+               &ett_samr_samr_DispInfoAscii,
+               &ett_samr_samr_DispInfo,
+               &ett_samr_samr_PwInfo,
+               &ett_samr_userPwdChangeFailureInformation,
+               &ett_samr_samr_ConnectInfo1,
+               &ett_samr_samr_ConnectInfo,
+               &ett_samr_samr_ValidateFieldsPresent,
+               &ett_samr_samr_ValidationBlob,
+               &ett_samr_samr_ValidatePasswordInfo,
+               &ett_samr_samr_ValidatePasswordRepCtr,
+               &ett_samr_samr_ValidatePasswordRep,
+               &ett_samr_samr_ValidatePasswordReq3,
+               &ett_samr_samr_ValidatePasswordReq2,
+               &ett_samr_samr_ValidatePasswordReq1,
+               &ett_samr_samr_ValidatePasswordReq,
+       };
+
+       proto_dcerpc_samr = proto_register_protocol("NULL", "SAMR", "samr");
+       proto_register_field_array(proto_dcerpc_samr, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_samr(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_samr, ett_dcerpc_samr,
+               &uuid_dcerpc_samr, ver_dcerpc_samr,
+               samr_dissectors, hf_samr_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-samr.h b/bin/default/librpc/gen_ndr/packet-dcerpc-samr.h
new file mode 100644 (file)
index 0000000..703a104
--- /dev/null
@@ -0,0 +1,252 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/samr.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/samr.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_SAMR_H
+#define __PACKET_DCERPC_SAMR_H
+
+#define SAMR_ACCESS_ALL_ACCESS ( 0x0000003F )
+
+#define GENERIC_RIGHTS_SAM_ALL_ACCESS  ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_ACCESS_ALL_ACCESS) )
+
+#define GENERIC_RIGHTS_SAM_READ        ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_ACCESS_ENUM_DOMAINS) )
+
+#define GENERIC_RIGHTS_SAM_WRITE       ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_ACCESS_CREATE_DOMAIN|SAMR_ACCESS_INITIALIZE_SERVER|SAMR_ACCESS_SHUTDOWN_SERVER) )
+
+#define GENERIC_RIGHTS_SAM_EXECUTE     ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_ACCESS_LOOKUP_DOMAIN|SAMR_ACCESS_CONNECT_TO_SERVER) )
+
+#define SAMR_USER_ACCESS_ALL_ACCESS    ( 0x000007FF )
+
+#define GENERIC_RIGHTS_USER_ALL_ACCESS ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_USER_ACCESS_ALL_ACCESS) )
+
+#define GENERIC_RIGHTS_USER_READ       ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_USER_ACCESS_GET_GROUP_MEMBERSHIP|SAMR_USER_ACCESS_GET_GROUPS|SAMR_USER_ACCESS_GET_ATTRIBUTES|SAMR_USER_ACCESS_GET_LOGONINFO|SAMR_USER_ACCESS_GET_LOCALE) )
+
+#define GENERIC_RIGHTS_USER_WRITE      ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_USER_ACCESS_CHANGE_PASSWORD|SAMR_USER_ACCESS_SET_LOC_COM|SAMR_USER_ACCESS_SET_ATTRIBUTES|SAMR_USER_ACCESS_SET_PASSWORD|SAMR_USER_ACCESS_CHANGE_GROUP_MEMBERSHIP) )
+
+#define GENERIC_RIGHTS_USER_EXECUTE    ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_USER_ACCESS_CHANGE_PASSWORD|SAMR_USER_ACCESS_GET_NAME_ETC) )
+
+#define SAMR_DOMAIN_ACCESS_ALL_ACCESS  ( 0x000007FF )
+
+#define GENERIC_RIGHTS_DOMAIN_ALL_ACCESS       ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_DOMAIN_ACCESS_ALL_ACCESS) )
+
+#define GENERIC_RIGHTS_DOMAIN_READ     ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_DOMAIN_ACCESS_LOOKUP_ALIAS|SAMR_DOMAIN_ACCESS_LOOKUP_INFO_2) )
+
+#define GENERIC_RIGHTS_DOMAIN_WRITE    ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_DOMAIN_ACCESS_SET_INFO_3|SAMR_DOMAIN_ACCESS_CREATE_ALIAS|SAMR_DOMAIN_ACCESS_CREATE_GROUP|SAMR_DOMAIN_ACCESS_CREATE_USER|SAMR_DOMAIN_ACCESS_SET_INFO_2|SAMR_DOMAIN_ACCESS_SET_INFO_1) )
+
+#define GENERIC_RIGHTS_DOMAIN_EXECUTE  ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT|SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS|SAMR_DOMAIN_ACCESS_LOOKUP_INFO_1) )
+
+#define SAMR_GROUP_ACCESS_ALL_ACCESS   ( 0x0000001F )
+
+#define GENERIC_RIGHTS_GROUP_ALL_ACCESS        ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_GROUP_ACCESS_ALL_ACCESS) )
+
+#define GENERIC_RIGHTS_GROUP_READ      ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_GROUP_ACCESS_GET_MEMBERS) )
+
+#define GENERIC_RIGHTS_GROUP_WRITE     ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_GROUP_ACCESS_REMOVE_MEMBER|SAMR_GROUP_ACCESS_ADD_MEMBER|SAMR_GROUP_ACCESS_SET_INFO) )
+
+#define GENERIC_RIGHTS_GROUP_EXECUTE   ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_GROUP_ACCESS_LOOKUP_INFO) )
+
+#define SAMR_ALIAS_ACCESS_ALL_ACCESS   ( 0x0000001F )
+
+#define GENERIC_RIGHTS_ALIAS_ALL_ACCESS        ( (STANDARD_RIGHTS_REQUIRED_ACCESS|SAMR_ALIAS_ACCESS_ALL_ACCESS) )
+
+#define GENERIC_RIGHTS_ALIAS_READ      ( (STANDARD_RIGHTS_READ_ACCESS|SAMR_ALIAS_ACCESS_GET_MEMBERS) )
+
+#define GENERIC_RIGHTS_ALIAS_WRITE     ( (STANDARD_RIGHTS_WRITE_ACCESS|SAMR_ALIAS_ACCESS_REMOVE_MEMBER|SAMR_ALIAS_ACCESS_ADD_MEMBER|SAMR_ALIAS_ACCESS_SET_INFO) )
+
+#define GENERIC_RIGHTS_ALIAS_EXECUTE   ( (STANDARD_RIGHTS_EXECUTE_ACCESS|SAMR_ALIAS_ACCESS_LOOKUP_INFO) )
+
+#define SAMR_ENUM_USERS_MULTIPLIER     ( 54 )
+
+#define PASS_MUST_CHANGE_AT_NEXT_LOGON ( 0x01 )
+
+#define PASS_DONT_CHANGE_AT_NEXT_LOGON ( 0x00 )
+
+int samr_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_AcctFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_ConnectAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_UserAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_DomainAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_GroupAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_AliasAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_SamEntry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_SamArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DomainPasswordInformation (1)
+#define DomainGeneralInformation (2)
+#define DomainLogoffInformation (3)
+#define DomainOemInformation (4)
+#define DomainNameInformation (5)
+#define DomainReplicationInformation (6)
+#define DomainServerRoleInformation (7)
+#define DomainModifiedInformation (8)
+#define DomainStateInformation (9)
+#define DomainUasInformation (10)
+#define DomainGeneralInformation2 (11)
+#define DomainLockoutInformation (12)
+#define DomainModifiedInformation2 (13)
+extern const value_string samr_samr_DomainInfoClass_vals[];
+int samr_dissect_enum_DomainInfoClass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SAMR_ROLE_STANDALONE (0)
+#define SAMR_ROLE_DOMAIN_MEMBER (1)
+#define SAMR_ROLE_DOMAIN_BDC (2)
+#define SAMR_ROLE_DOMAIN_PDC (3)
+extern const value_string samr_samr_Role_vals[];
+int samr_dissect_enum_Role(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int samr_dissect_bitmap_PasswordProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DOMAIN_SERVER_ENABLED (1)
+#define DOMAIN_SERVER_DISABLED (2)
+extern const value_string samr_samr_DomainServerState_vals[];
+int samr_dissect_enum_DomainServerState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int samr_dissect_struct_DomInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomGeneralInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomOEMInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomGeneralInformation2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DomInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_Ids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_GroupAttrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_GroupInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_GroupInfoAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_GroupInfoDescription(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define GROUPINFOALL (1)
+#define GROUPINFONAME (2)
+#define GROUPINFOATTRIBUTES (3)
+#define GROUPINFODESCRIPTION (4)
+#define GROUPINFOALL2 (5)
+extern const value_string samr_samr_GroupInfoEnum_vals[];
+int samr_dissect_enum_GroupInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int samr_dissect_struct_RidAttrArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_AliasInfoAll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define ALIASINFOALL (1)
+#define ALIASINFONAME (2)
+#define ALIASINFODESCRIPTION (3)
+extern const value_string samr_samr_AliasInfoEnum_vals[];
+int samr_dissect_enum_AliasInfoEnum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define UserGeneralInformation (1)
+#define UserPreferencesInformation (2)
+#define UserLogonInformation (3)
+#define UserLogonHoursInformation (4)
+#define UserAccountInformation (5)
+#define UserNameInformation (6)
+#define UserAccountNameInformation (7)
+#define UserFullNameInformation (8)
+#define UserPrimaryGroupInformation (9)
+#define UserHomeInformation (10)
+#define UserScriptInformation (11)
+#define UserProfileInformation (12)
+#define UserAdminCommentInformation (13)
+#define UserWorkStationsInformation (14)
+#define UserControlInformation (16)
+#define UserExpiresInformation (17)
+#define UserInternal1Information (18)
+#define UserParametersInformation (20)
+#define UserAllInformation (21)
+#define UserInternal4Information (23)
+#define UserInternal5Information (24)
+#define UserInternal4InformationNew (25)
+#define UserInternal5InformationNew (26)
+extern const value_string samr_samr_UserInfoLevel_vals[];
+int samr_dissect_enum_UserInfoLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int samr_dissect_struct_UserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_LogonHours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_FieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_CryptPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_CryptPasswordEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_UserInfo26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_RidWithAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_RidWithAttributeArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispEntryGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispInfoGeneral(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispEntryFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispInfoFull(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispEntryFullGroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispInfoFullGroups(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispEntryAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_DispInfoAscii(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_PwInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SAMR_CONNECT_PRE_W2K (1)
+#define SAMR_CONNECT_W2K (2)
+#define SAMR_CONNECT_AFTER_W2K (3)
+extern const value_string samr_samr_ConnectVersion_vals[];
+int samr_dissect_enum_ConnectVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SAM_PWD_CHANGE_NO_ERROR (0)
+#define SAM_PWD_CHANGE_PASSWORD_TOO_SHORT (1)
+#define SAM_PWD_CHANGE_PWD_IN_HISTORY (2)
+#define SAM_PWD_CHANGE_USERNAME_IN_PASSWORD (3)
+#define SAM_PWD_CHANGE_FULLNAME_IN_PASSWORD (4)
+#define SAM_PWD_CHANGE_NOT_COMPLEX (5)
+#define SAM_PWD_CHANGE_MACHINE_NOT_DEFAULT (6)
+#define SAM_PWD_CHANGE_FAILED_BY_FILTER (7)
+#define SAM_PWD_CHANGE_PASSWORD_TOO_LONG (8)
+extern const value_string samr_samPwdChangeReason_vals[];
+int samr_dissect_enum_samPwdChangeReason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int samr_dissect_struct_userPwdChangeFailureInformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_ConnectInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_bitmap_ValidateFieldsPresent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NetValidateAuthentication (1)
+#define NetValidatePasswordChange (2)
+#define NetValidatePasswordReset (3)
+extern const value_string samr_samr_ValidatePasswordLevel_vals[];
+int samr_dissect_enum_ValidatePasswordLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SAMR_VALIDATION_STATUS_SUCCESS (0)
+#define SAMR_VALIDATION_STATUS_PASSWORD_MUST_CHANGE (1)
+#define SAMR_VALIDATION_STATUS_ACCOUNT_LOCKED_OUT (2)
+#define SAMR_VALIDATION_STATUS_PASSWORD_EXPIRED (3)
+#define SAMR_VALIDATION_STATUS_BAD_PASSWORD (4)
+#define SAMR_VALIDATION_STATUS_PWD_HISTORY_CONFLICT (5)
+#define SAMR_VALIDATION_STATUS_PWD_TOO_SHORT (6)
+#define SAMR_VALIDATION_STATUS_PWD_TOO_LONG (7)
+#define SAMR_VALIDATION_STATUS_NOT_COMPLEX_ENOUGH (8)
+#define SAMR_VALIDATION_STATUS_PASSWORD_TOO_RECENT (9)
+#define SAMR_VALIDATION_STATUS_PASSWORD_FILTER_ERROR (10)
+extern const value_string samr_samr_ValidationStatus_vals[];
+int samr_dissect_enum_ValidationStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int samr_dissect_struct_ValidationBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_ValidatePasswordInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_ValidatePasswordRepCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_ValidatePasswordReq3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_ValidatePasswordReq2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int samr_dissect_struct_ValidatePasswordReq1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_SAMR_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-scerpc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-scerpc.c
new file mode 100644 (file)
index 0000000..50c3b7a
--- /dev/null
@@ -0,0 +1,106 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/scerpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/scerpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-scerpc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_scerpc = -1;
+
+
+/* Header field declarations */
+static gint hf_scerpc_werror = -1;
+static gint hf_scerpc_opnum = -1;
+
+static gint proto_dcerpc_scerpc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_scerpc = {
+       0x93149ca2, 0x973b, 0x11d1,
+       { 0x8c, 0x39, 0x00, 0xc0, 0x4f, 0xb9, 0x84, 0xf9 }
+};
+static guint16 ver_dcerpc_scerpc = 0;
+
+
+/* IDL: WERROR scerpc_Unknown0( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+scerpc_dissect_Unknown0_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Unknown0";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_scerpc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+scerpc_dissect_Unknown0_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Unknown0";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector scerpc_dissectors[] = {
+       { 0, "Unknown0",
+          scerpc_dissect_Unknown0_request, scerpc_dissect_Unknown0_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_scerpc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_scerpc_werror,
+         { "Windows Error", "scerpc.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_scerpc_opnum,
+         { "Operation", "scerpc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_scerpc,
+       };
+
+       proto_dcerpc_scerpc = proto_register_protocol("Security Configuration Editor", "SCERPC", "scerpc");
+       proto_register_field_array(proto_dcerpc_scerpc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_scerpc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_scerpc, ett_dcerpc_scerpc,
+               &uuid_dcerpc_scerpc, ver_dcerpc_scerpc,
+               scerpc_dissectors, hf_scerpc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-scerpc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-scerpc.h
new file mode 100644 (file)
index 0000000..2e17121
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/scerpc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/scerpc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_SCERPC_H
+#define __PACKET_DCERPC_SCERPC_H
+
+#endif /* __PACKET_DCERPC_SCERPC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-schannel.c b/bin/default/librpc/gen_ndr/packet-dcerpc-schannel.c
new file mode 100644 (file)
index 0000000..6e04949
--- /dev/null
@@ -0,0 +1,1128 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/schannel.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/schannel.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-schannel.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_schannel = -1;
+static gint ett_schannel_netlogon_creds_CredentialState = -1;
+static gint ett_schannel_NL_AUTH_MESSAGE_FLAGS = -1;
+static gint ett_schannel_NL_AUTH_MESSAGE_BUFFER = -1;
+static gint ett_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY = -1;
+static gint ett_schannel_NL_AUTH_MESSAGE = -1;
+static gint ett_schannel_NL_AUTH_SIGNATURE = -1;
+static gint ett_schannel_NL_AUTH_SHA2_SIGNATURE = -1;
+
+
+/* Header field declarations */
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_SequenceNumber = -1;
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_oem_netbios_computer = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_BUFFER_a = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_Pad = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_Confounder = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_SignatureAlgorithm = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_sid = -1;
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_Flags = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_Buffer = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_utf8_dns_domain = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_sequence = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_COMPUTER_NAME = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_seed = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_DOMAIN_NAME = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_negotiate_flags = -1;
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_Confounder = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_oem_netbios_domain = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_session_key = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_utf8_netbios_computer = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_SequenceNumber = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_client = -1;
+static gint hf_schannel_opnum = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_SealAlgorithm = -1;
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_Pad = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_account_name = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_Flags = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_BUFFER_u = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_utf8_dns_host = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_server = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_DOMAIN_NAME = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_MessageType = -1;
+static gint hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_HOST_NAME = -1;
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_computer_name = -1;
+static gint hf_schannel_netlogon_creds_CredentialState_secure_channel_type = -1;
+static gint hf_schannel_NL_AUTH_SHA2_SIGNATURE_Checksum = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_Checksum = -1;
+static gint hf_schannel_NL_AUTH_SIGNATURE_Flags = -1;
+
+static gint proto_dcerpc_schannel = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_schannel = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_schannel = 0;
+
+static int schannel_dissect_element_netlogon_creds_CredentialState_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_sequence(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_seed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_netlogon_creds_CredentialState_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string schannel_NL_AUTH_MESSAGE_TYPE_vals[] = {
+       { NL_NEGOTIATE_REQUEST, "NL_NEGOTIATE_REQUEST" },
+       { NL_NEGOTIATE_RESPONSE, "NL_NEGOTIATE_RESPONSE" },
+{ 0, NULL }
+};
+static const true_false_string NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_DOMAIN_NAME_tfs = {
+   "NL_FLAG_OEM_NETBIOS_DOMAIN_NAME is SET",
+   "NL_FLAG_OEM_NETBIOS_DOMAIN_NAME is NOT SET",
+};
+static const true_false_string NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_COMPUTER_NAME_tfs = {
+   "NL_FLAG_OEM_NETBIOS_COMPUTER_NAME is SET",
+   "NL_FLAG_OEM_NETBIOS_COMPUTER_NAME is NOT SET",
+};
+static const true_false_string NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_DOMAIN_NAME_tfs = {
+   "NL_FLAG_UTF8_DNS_DOMAIN_NAME is SET",
+   "NL_FLAG_UTF8_DNS_DOMAIN_NAME is NOT SET",
+};
+static const true_false_string NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_HOST_NAME_tfs = {
+   "NL_FLAG_UTF8_DNS_HOST_NAME is SET",
+   "NL_FLAG_UTF8_DNS_HOST_NAME is NOT SET",
+};
+static const true_false_string NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME_tfs = {
+   "NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME is SET",
+   "NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME is NOT SET",
+};
+static int schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_a(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_a(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *MessageType);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_oem_netbios_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_oem_netbios_computer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_utf8_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_utf8_dns_host(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_utf8_netbios_computer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int schannel_dissect_element_NL_AUTH_MESSAGE_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+const value_string schannel_NL_SIGNATURE_ALGORITHM_vals[] = {
+       { NL_SIGN_HMAC_SHA256, "NL_SIGN_HMAC_SHA256" },
+       { NL_SIGN_HMAC_MD5, "NL_SIGN_HMAC_MD5" },
+{ 0, NULL }
+};
+const value_string schannel_NL_SEAL_ALGORITHM_vals[] = {
+       { NL_SEAL_AES128, "NL_SEAL_AES128" },
+       { NL_SEAL_RC4, "NL_SEAL_RC4" },
+       { NL_SEAL_NONE, "NL_SEAL_NONE" },
+{ 0, NULL }
+};
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_SignatureAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_SealAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        netr_NegotiateFlags negotiate_flags; */
+/* IDL:        uint8 session_key[16]; */
+/* IDL:        uint32 sequence; */
+/* IDL:        netr_Credential seed; */
+/* IDL:        netr_Credential client; */
+/* IDL:        netr_Credential server; */
+/* IDL:        netr_SchannelType secure_channel_type; */
+/* IDL:        [charset(UTF8)] uint8 computer_name[*]; */
+/* IDL:        [charset(UTF8)] uint8 account_name[*]; */
+/* IDL:        [unique(1)] dom_sid *sid; */
+/* IDL: } */
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_negotiate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_netr_NegotiateFlags(tvb,offset,pinfo,tree,drep,hf_schannel_netlogon_creds_CredentialState_negotiate_flags,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_session_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_session_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_netlogon_creds_CredentialState_session_key, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_sequence(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_schannel_netlogon_creds_CredentialState_sequence, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_seed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_schannel_netlogon_creds_CredentialState_seed,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_schannel_netlogon_creds_CredentialState_client,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_netr_Credential(tvb,offset,pinfo,tree,drep,hf_schannel_netlogon_creds_CredentialState_server,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_secure_channel_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_netr_SchannelType(tvb,offset,pinfo,tree,drep,hf_schannel_netlogon_creds_CredentialState_secure_channel_type,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_schannel_netlogon_creds_CredentialState_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_account_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_schannel_netlogon_creds_CredentialState_account_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, schannel_dissect_element_netlogon_creds_CredentialState_sid_, NDR_POINTER_UNIQUE, "Pointer to Sid (dom_sid)",hf_schannel_netlogon_creds_CredentialState_sid);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_netlogon_creds_CredentialState_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_schannel_netlogon_creds_CredentialState_sid,0);
+
+       return offset;
+}
+
+int
+schannel_dissect_struct_netlogon_creds_CredentialState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_schannel_netlogon_creds_CredentialState);
+       }
+       
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_negotiate_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_session_key(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_sequence(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_seed(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_client(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_server(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_secure_channel_type(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_computer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_account_name(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_netlogon_creds_CredentialState_sid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NL_NEGOTIATE_REQUEST=0x00000000, */
+/* IDL:        NL_NEGOTIATE_RESPONSE=0x00000001, */
+/* IDL: } */
+
+int
+schannel_dissect_enum_NL_AUTH_MESSAGE_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        NL_FLAG_OEM_NETBIOS_DOMAIN_NAME =  0x00000001 , */
+/* IDL:        NL_FLAG_OEM_NETBIOS_COMPUTER_NAME =  0x00000002 , */
+/* IDL:        NL_FLAG_UTF8_DNS_DOMAIN_NAME =  0x00000004 , */
+/* IDL:        NL_FLAG_UTF8_DNS_HOST_NAME =  0x00000008 , */
+/* IDL:        NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME =  0x00000010 , */
+/* IDL: } */
+
+int
+schannel_dissect_bitmap_NL_AUTH_MESSAGE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_schannel_NL_AUTH_MESSAGE_FLAGS);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_DOMAIN_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "NL_FLAG_OEM_NETBIOS_DOMAIN_NAME");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_COMPUTER_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "NL_FLAG_OEM_NETBIOS_COMPUTER_NAME");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_DOMAIN_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "NL_FLAG_UTF8_DNS_DOMAIN_NAME");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_HOST_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "NL_FLAG_UTF8_DNS_HOST_NAME");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: [noprint(1)] [nodiscriminant(1)] [public(1)] union { */
+/* IDL: [case(NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [case(NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] string a; */
+/* IDL: [case(NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] [case(NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] string a; */
+/* IDL: [case(NL_FLAG_UTF8_DNS_DOMAIN_NAME)] [case(NL_FLAG_UTF8_DNS_DOMAIN_NAME)] nbt_string u; */
+/* IDL: [case(NL_FLAG_UTF8_DNS_HOST_NAME)] [case(NL_FLAG_UTF8_DNS_HOST_NAME)] nbt_string u; */
+/* IDL: [case(NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] [case(NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] nbt_string u; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_a(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_BUFFER_a , 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_a(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_BUFFER_a , 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_schannel_NL_AUTH_MESSAGE_BUFFER_u,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_schannel_NL_AUTH_MESSAGE_BUFFER_u,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_struct_nbt_string(tvb,offset,pinfo,tree,drep,hf_schannel_NL_AUTH_MESSAGE_BUFFER_u,0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_NL_AUTH_MESSAGE_BUFFER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "NL_AUTH_MESSAGE_BUFFER");
+               tree = proto_item_add_subtree(item, ett_schannel_NL_AUTH_MESSAGE_BUFFER);
+       }
+
+       switch(level) {
+               case NL_FLAG_OEM_NETBIOS_DOMAIN_NAME:
+                       offset = schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_a(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NL_FLAG_OEM_NETBIOS_COMPUTER_NAME:
+                       offset = schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_a(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NL_FLAG_UTF8_DNS_DOMAIN_NAME:
+                       offset = schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NL_FLAG_UTF8_DNS_HOST_NAME:
+                       offset = schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME:
+                       offset = schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_u(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: [noprint(1)] [nodiscriminant(1)] [public(1)] union { */
+/* IDL: [case(NL_NEGOTIATE_RESPONSE)] [case(NL_NEGOTIATE_RESPONSE)] uint32 dummy; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_NL_AUTH_MESSAGE_BUFFER_REPLY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "NL_AUTH_MESSAGE_BUFFER_REPLY");
+               tree = proto_item_add_subtree(item, ett_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY);
+       }
+
+       switch(level) {
+               case NL_NEGOTIATE_RESPONSE:
+                       offset = schannel_dissect_element_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        NL_AUTH_MESSAGE_TYPE MessageType; */
+/* IDL:        NL_AUTH_MESSAGE_FLAGS Flags; */
+/* IDL:        [switch_is(Flags&NL_FLAG_OEM_NETBIOS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER oem_netbios_domain; */
+/* IDL:        [switch_is(Flags&NL_FLAG_OEM_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER oem_netbios_computer; */
+/* IDL:        [switch_is(Flags&NL_FLAG_UTF8_DNS_DOMAIN_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_domain; */
+/* IDL:        [switch_is(Flags&NL_FLAG_UTF8_DNS_HOST_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_dns_host; */
+/* IDL:        [switch_is(Flags&NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME)] NL_AUTH_MESSAGE_BUFFER utf8_netbios_computer; */
+/* IDL:        [switch_is(MessageType&NL_NEGOTIATE_RESPONSE)] NL_AUTH_MESSAGE_BUFFER_REPLY Buffer; */
+/* IDL: } */
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_MessageType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *MessageType)
+{
+       offset = schannel_dissect_enum_NL_AUTH_MESSAGE_TYPE(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_MessageType, MessageType);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_bitmap_NL_AUTH_MESSAGE_FLAGS(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_Flags, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_oem_netbios_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = schannel_dissect_NL_AUTH_MESSAGE_BUFFER(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_oem_netbios_domain, *);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_oem_netbios_computer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = schannel_dissect_NL_AUTH_MESSAGE_BUFFER(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_oem_netbios_computer, *);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_utf8_dns_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = schannel_dissect_NL_AUTH_MESSAGE_BUFFER(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_utf8_dns_domain, *);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_utf8_dns_host(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = schannel_dissect_NL_AUTH_MESSAGE_BUFFER(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_utf8_dns_host, *);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_utf8_netbios_computer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = schannel_dissect_NL_AUTH_MESSAGE_BUFFER(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_utf8_netbios_computer, *);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_MESSAGE_Buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = schannel_dissect_NL_AUTH_MESSAGE_BUFFER_REPLY(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_MESSAGE_Buffer, *);
+
+       return offset;
+}
+
+int
+schannel_dissect_struct_NL_AUTH_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 MessageType;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_schannel_NL_AUTH_MESSAGE);
+       }
+       
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_MessageType(tvb, offset, pinfo, tree, drep, &MessageType);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_oem_netbios_domain(tvb, offset, pinfo, tree, drep, &);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_oem_netbios_computer(tvb, offset, pinfo, tree, drep, &);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_utf8_dns_domain(tvb, offset, pinfo, tree, drep, &);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_utf8_dns_host(tvb, offset, pinfo, tree, drep, &);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_utf8_netbios_computer(tvb, offset, pinfo, tree, drep, &);
+
+       offset = schannel_dissect_element_NL_AUTH_MESSAGE_Buffer(tvb, offset, pinfo, tree, drep, &);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NL_SIGN_HMAC_SHA256=0x0013, */
+/* IDL:        NL_SIGN_HMAC_MD5=0x0077, */
+/* IDL: } */
+
+int
+schannel_dissect_enum_NL_SIGNATURE_ALGORITHM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NL_SEAL_AES128=0x001A, */
+/* IDL:        NL_SEAL_RC4=0x007A, */
+/* IDL:        NL_SEAL_NONE=0xFFFF, */
+/* IDL: } */
+
+int
+schannel_dissect_enum_NL_SEAL_ALGORITHM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(NL_SIGN_HMAC_MD5)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm; */
+/* IDL:        NL_SEAL_ALGORITHM SealAlgorithm; */
+/* IDL:        uint16 Pad; */
+/* IDL:        uint16 Flags; */
+/* IDL:        uint8 SequenceNumber[8]; */
+/* IDL:        uint8 Checksum[8]; */
+/* IDL:        uint8 Confounder[8]; */
+/* IDL: } */
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_SignatureAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_enum_NL_SIGNATURE_ALGORITHM(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_SignatureAlgorithm, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_SealAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_enum_NL_SEAL_ALGORITHM(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_SealAlgorithm, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_Pad, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_Flags, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_SequenceNumber, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_Checksum, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SIGNATURE_Confounder, 0);
+
+       return offset;
+}
+
+int
+schannel_dissect_struct_NL_AUTH_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_3_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_schannel_NL_AUTH_SIGNATURE);
+       }
+       
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_SignatureAlgorithm(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_SealAlgorithm(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Pad(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_SequenceNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Checksum(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SIGNATURE_Confounder(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(NL_SIGN_HMAC_SHA256)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm; */
+/* IDL:        NL_SEAL_ALGORITHM SealAlgorithm; */
+/* IDL:        uint16 Pad; */
+/* IDL:        uint16 Flags; */
+/* IDL:        uint8 SequenceNumber[8]; */
+/* IDL:        uint8 Checksum[32]; */
+/* IDL:        uint8 Confounder[8]; */
+/* IDL: } */
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_enum_NL_SIGNATURE_ALGORITHM(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = schannel_dissect_enum_NL_SEAL_ALGORITHM(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Pad(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Pad, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Flags, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_SequenceNumber, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 32; i++)
+               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Checksum, 0);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_schannel_NL_AUTH_SHA2_SIGNATURE_Confounder, 0);
+
+       return offset;
+}
+
+int
+schannel_dissect_struct_NL_AUTH_SHA2_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_3_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_schannel_NL_AUTH_SHA2_SIGNATURE);
+       }
+       
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Pad(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_SequenceNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Checksum(tvb, offset, pinfo, tree, drep);
+
+       offset = schannel_dissect_element_NL_AUTH_SHA2_SIGNATURE_Confounder(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_3_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector schannel_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_schannel(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_SequenceNumber,
+         { "Sequencenumber", "schannel.NL_AUTH_SHA2_SIGNATURE.SequenceNumber", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_SignatureAlgorithm,
+         { "Signaturealgorithm", "schannel.NL_AUTH_SHA2_SIGNATURE.SignatureAlgorithm", FT_UINT1632, BASE_DEC, VALS(schannel_NL_SIGNATURE_ALGORITHM_vals), 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY_dummy,
+         { "Dummy", "schannel.NL_AUTH_MESSAGE_BUFFER_REPLY.dummy", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_oem_netbios_computer,
+         { "Oem Netbios Computer", "schannel.NL_AUTH_MESSAGE.oem_netbios_computer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_BUFFER_a,
+         { "A", "schannel.NL_AUTH_MESSAGE_BUFFER.a", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME,
+         { "Nl Flag Utf8 Netbios Computer Name", "schannel.NL_AUTH_MESSAGE_FLAGS.NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME", FT_BOOLEAN, 32, TFS(&NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_Pad,
+         { "Pad", "schannel.NL_AUTH_SIGNATURE.Pad", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_Confounder,
+         { "Confounder", "schannel.NL_AUTH_SIGNATURE.Confounder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_SignatureAlgorithm,
+         { "Signaturealgorithm", "schannel.NL_AUTH_SIGNATURE.SignatureAlgorithm", FT_UINT1632, BASE_DEC, VALS(schannel_NL_SIGNATURE_ALGORITHM_vals), 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_sid,
+         { "Sid", "schannel.netlogon_creds_CredentialState.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_Flags,
+         { "Flags", "schannel.NL_AUTH_SHA2_SIGNATURE.Flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_Buffer,
+         { "Buffer", "schannel.NL_AUTH_MESSAGE.Buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_utf8_dns_domain,
+         { "Utf8 Dns Domain", "schannel.NL_AUTH_MESSAGE.utf8_dns_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_sequence,
+         { "Sequence", "schannel.netlogon_creds_CredentialState.sequence", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_COMPUTER_NAME,
+         { "Nl Flag Oem Netbios Computer Name", "schannel.NL_AUTH_MESSAGE_FLAGS.NL_FLAG_OEM_NETBIOS_COMPUTER_NAME", FT_BOOLEAN, 32, TFS(&NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_COMPUTER_NAME_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_seed,
+         { "Seed", "schannel.netlogon_creds_CredentialState.seed", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_DOMAIN_NAME,
+         { "Nl Flag Oem Netbios Domain Name", "schannel.NL_AUTH_MESSAGE_FLAGS.NL_FLAG_OEM_NETBIOS_DOMAIN_NAME", FT_BOOLEAN, 32, TFS(&NL_AUTH_MESSAGE_FLAGS_NL_FLAG_OEM_NETBIOS_DOMAIN_NAME_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_negotiate_flags,
+         { "Negotiate Flags", "schannel.netlogon_creds_CredentialState.negotiate_flags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_Confounder,
+         { "Confounder", "schannel.NL_AUTH_SHA2_SIGNATURE.Confounder", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_oem_netbios_domain,
+         { "Oem Netbios Domain", "schannel.NL_AUTH_MESSAGE.oem_netbios_domain", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_session_key,
+         { "Session Key", "schannel.netlogon_creds_CredentialState.session_key", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_utf8_netbios_computer,
+         { "Utf8 Netbios Computer", "schannel.NL_AUTH_MESSAGE.utf8_netbios_computer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_SequenceNumber,
+         { "Sequencenumber", "schannel.NL_AUTH_SIGNATURE.SequenceNumber", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_client,
+         { "Client", "schannel.netlogon_creds_CredentialState.client", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_opnum,
+         { "Operation", "schannel.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_SealAlgorithm,
+         { "Sealalgorithm", "schannel.NL_AUTH_SIGNATURE.SealAlgorithm", FT_UINT1632, BASE_DEC, VALS(schannel_NL_SEAL_ALGORITHM_vals), 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_Pad,
+         { "Pad", "schannel.NL_AUTH_SHA2_SIGNATURE.Pad", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_account_name,
+         { "Account Name", "schannel.netlogon_creds_CredentialState.account_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_Flags,
+         { "Flags", "schannel.NL_AUTH_MESSAGE.Flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_BUFFER_u,
+         { "U", "schannel.NL_AUTH_MESSAGE_BUFFER.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_utf8_dns_host,
+         { "Utf8 Dns Host", "schannel.NL_AUTH_MESSAGE.utf8_dns_host", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_server,
+         { "Server", "schannel.netlogon_creds_CredentialState.server", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_DOMAIN_NAME,
+         { "Nl Flag Utf8 Dns Domain Name", "schannel.NL_AUTH_MESSAGE_FLAGS.NL_FLAG_UTF8_DNS_DOMAIN_NAME", FT_BOOLEAN, 32, TFS(&NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_DOMAIN_NAME_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_MessageType,
+         { "Messagetype", "schannel.NL_AUTH_MESSAGE.MessageType", FT_UINT32, BASE_DEC, VALS(schannel_NL_AUTH_MESSAGE_TYPE_vals), 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_HOST_NAME,
+         { "Nl Flag Utf8 Dns Host Name", "schannel.NL_AUTH_MESSAGE_FLAGS.NL_FLAG_UTF8_DNS_HOST_NAME", FT_BOOLEAN, 32, TFS(&NL_AUTH_MESSAGE_FLAGS_NL_FLAG_UTF8_DNS_HOST_NAME_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_SealAlgorithm,
+         { "Sealalgorithm", "schannel.NL_AUTH_SHA2_SIGNATURE.SealAlgorithm", FT_UINT1632, BASE_DEC, VALS(schannel_NL_SEAL_ALGORITHM_vals), 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_computer_name,
+         { "Computer Name", "schannel.netlogon_creds_CredentialState.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_netlogon_creds_CredentialState_secure_channel_type,
+         { "Secure Channel Type", "schannel.netlogon_creds_CredentialState.secure_channel_type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SHA2_SIGNATURE_Checksum,
+         { "Checksum", "schannel.NL_AUTH_SHA2_SIGNATURE.Checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_Checksum,
+         { "Checksum", "schannel.NL_AUTH_SIGNATURE.Checksum", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_schannel_NL_AUTH_SIGNATURE_Flags,
+         { "Flags", "schannel.NL_AUTH_SIGNATURE.Flags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_schannel,
+               &ett_schannel_netlogon_creds_CredentialState,
+               &ett_schannel_NL_AUTH_MESSAGE_FLAGS,
+               &ett_schannel_NL_AUTH_MESSAGE_BUFFER,
+               &ett_schannel_NL_AUTH_MESSAGE_BUFFER_REPLY,
+               &ett_schannel_NL_AUTH_MESSAGE,
+               &ett_schannel_NL_AUTH_SIGNATURE,
+               &ett_schannel_NL_AUTH_SHA2_SIGNATURE,
+       };
+
+       proto_dcerpc_schannel = proto_register_protocol("SCHANNEL (pidl)", "SCHANNEL", "schannel");
+       proto_register_field_array(proto_dcerpc_schannel, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_schannel(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_schannel, ett_dcerpc_schannel,
+               &uuid_dcerpc_schannel, ver_dcerpc_schannel,
+               schannel_dissectors, hf_schannel_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-schannel.h b/bin/default/librpc/gen_ndr/packet-dcerpc-schannel.h
new file mode 100644 (file)
index 0000000..d58e72b
--- /dev/null
@@ -0,0 +1,44 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/schannel.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/schannel.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-netlogon.h"
+#include "packet-dcerpc-nbt.h"
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_SCHANNEL_H
+#define __PACKET_DCERPC_SCHANNEL_H
+
+#define NL_AUTH_SIGNATURE_SIZE ( 0x20 )
+
+int schannel_dissect_struct_netlogon_creds_CredentialState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NL_NEGOTIATE_REQUEST (0x00000000)
+#define NL_NEGOTIATE_RESPONSE (0x00000001)
+extern const value_string schannel_NL_AUTH_MESSAGE_TYPE_vals[];
+int schannel_dissect_enum_NL_AUTH_MESSAGE_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int schannel_dissect_bitmap_NL_AUTH_MESSAGE_FLAGS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int schannel_dissect_struct_NL_AUTH_MESSAGE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NL_SIGN_HMAC_SHA256 (0x0013)
+#define NL_SIGN_HMAC_MD5 (0x0077)
+extern const value_string schannel_NL_SIGNATURE_ALGORITHM_vals[];
+int schannel_dissect_enum_NL_SIGNATURE_ALGORITHM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NL_SEAL_AES128 (0x001A)
+#define NL_SEAL_RC4 (0x007A)
+#define NL_SEAL_NONE (0xFFFF)
+extern const value_string schannel_NL_SEAL_ALGORITHM_vals[];
+int schannel_dissect_enum_NL_SEAL_ALGORITHM(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int schannel_dissect_struct_NL_AUTH_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int schannel_dissect_struct_NL_AUTH_SHA2_SIGNATURE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_SCHANNEL_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-server_id.c b/bin/default/librpc/gen_ndr/packet-dcerpc-server_id.c
new file mode 100644 (file)
index 0000000..29c2c19
--- /dev/null
@@ -0,0 +1,170 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/server_id.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/server_id.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-server_id.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_server_id = -1;
+static gint ett_server_id_server_id = -1;
+
+
+/* Header field declarations */
+static gint hf_server_id_server_id_unique_id = -1;
+static gint hf_server_id_server_id_pid = -1;
+static gint hf_server_id_server_id_vnn = -1;
+static gint hf_server_id_opnum = -1;
+static gint hf_server_id_server_id_task_id = -1;
+
+static gint proto_dcerpc_server_id = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_server_id = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_server_id = 0;
+
+static int server_id_dissect_element_server_id_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int server_id_dissect_element_server_id_task_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int server_id_dissect_element_server_id_vnn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int server_id_dissect_element_server_id_unique_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        hyper pid; */
+/* IDL:        uint32 task_id; */
+/* IDL:        uint32 vnn; */
+/* IDL:        hyper unique_id; */
+/* IDL: } */
+
+static int
+server_id_dissect_element_server_id_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_server_id_server_id_pid, NULL);
+
+       return offset;
+}
+
+static int
+server_id_dissect_element_server_id_task_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_server_id_server_id_task_id, 0);
+
+       return offset;
+}
+
+static int
+server_id_dissect_element_server_id_vnn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_server_id_server_id_vnn, 0);
+
+       return offset;
+}
+
+static int
+server_id_dissect_element_server_id_unique_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_server_id_server_id_unique_id, NULL);
+
+       return offset;
+}
+
+int
+server_id_dissect_struct_server_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_server_id_server_id);
+       }
+       
+       offset = server_id_dissect_element_server_id_pid(tvb, offset, pinfo, tree, drep);
+
+       offset = server_id_dissect_element_server_id_task_id(tvb, offset, pinfo, tree, drep);
+
+       offset = server_id_dissect_element_server_id_vnn(tvb, offset, pinfo, tree, drep);
+
+       offset = server_id_dissect_element_server_id_unique_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector server_id_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_server_id(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_server_id_server_id_unique_id,
+         { "Unique Id", "server_id.server_id.unique_id", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_server_id_server_id_pid,
+         { "Pid", "server_id.server_id.pid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_server_id_server_id_vnn,
+         { "Vnn", "server_id.server_id.vnn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_server_id_opnum,
+         { "Operation", "server_id.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_server_id_server_id_task_id,
+         { "Task Id", "server_id.server_id.task_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_server_id,
+               &ett_server_id_server_id,
+       };
+
+       proto_dcerpc_server_id = proto_register_protocol("SERVER_ID (pidl)", "SERVER_ID", "server_id");
+       proto_register_field_array(proto_dcerpc_server_id, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_server_id(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_server_id, ett_dcerpc_server_id,
+               &uuid_dcerpc_server_id, ver_dcerpc_server_id,
+               server_id_dissectors, hf_server_id_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-server_id.h b/bin/default/librpc/gen_ndr/packet-dcerpc-server_id.h
new file mode 100644 (file)
index 0000000..0d6b9d0
--- /dev/null
@@ -0,0 +1,24 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/server_id.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/server_id.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_SERVER_ID_H
+#define __PACKET_DCERPC_SERVER_ID_H
+
+#define NONCLUSTER_VNN ( 0xFFFFFFFF )
+
+#define SERVERID_UNIQUE_ID_NOT_TO_VERIFY       ( 0xFFFFFFFFFFFFFFFFULL )
+
+int server_id_dissect_struct_server_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_SERVER_ID_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-smb_acl.c b/bin/default/librpc/gen_ndr/packet-dcerpc-smb_acl.c
new file mode 100644 (file)
index 0000000..ab4d52c
--- /dev/null
@@ -0,0 +1,583 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/smb_acl.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/smb_acl.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-smb_acl.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_smb_acl = -1;
+static gint ett_smb_acl_smb_acl_user = -1;
+static gint ett_smb_acl_smb_acl_group = -1;
+static gint ett_smb_acl_smb_acl_entry_info = -1;
+static gint ett_smb_acl_smb_acl_entry = -1;
+static gint ett_smb_acl_smb_acl_t = -1;
+static gint ett_smb_acl_smb_acl_wrapper = -1;
+
+
+/* Header field declarations */
+static gint hf_smb_acl_smb_acl_wrapper_mode = -1;
+static gint hf_smb_acl_smb_acl_entry_info = -1;
+static gint hf_smb_acl_smb_acl_wrapper_default_acl = -1;
+static gint hf_smb_acl_smb_acl_entry_info_group = -1;
+static gint hf_smb_acl_smb_acl_wrapper_access_acl = -1;
+static gint hf_smb_acl_smb_acl_entry_info_user = -1;
+static gint hf_smb_acl_smb_acl_t_acl = -1;
+static gint hf_smb_acl_smb_acl_user_uid = -1;
+static gint hf_smb_acl_smb_acl_t_next = -1;
+static gint hf_smb_acl_smb_acl_entry_a_perm = -1;
+static gint hf_smb_acl_smb_acl_group_gid = -1;
+static gint hf_smb_acl_smb_acl_wrapper_group = -1;
+static gint hf_smb_acl_smb_acl_t_count = -1;
+static gint hf_smb_acl_smb_acl_wrapper_owner = -1;
+static gint hf_smb_acl_smb_acl_entry_a_type = -1;
+static gint hf_smb_acl_opnum = -1;
+
+static gint proto_dcerpc_smb_acl = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_smb_acl = {
+       0x, 0x, 0x,
+       { 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x }
+};
+static guint16 ver_dcerpc_smb_acl = 0;
+
+const value_string smb_acl_smb_acl_tag_t_vals[] = {
+       { SMB_ACL_TAG_INVALID, "SMB_ACL_TAG_INVALID" },
+       { SMB_ACL_USER, "SMB_ACL_USER" },
+       { SMB_ACL_USER_OBJ, "SMB_ACL_USER_OBJ" },
+       { SMB_ACL_GROUP, "SMB_ACL_GROUP" },
+       { SMB_ACL_GROUP_OBJ, "SMB_ACL_GROUP_OBJ" },
+       { SMB_ACL_OTHER, "SMB_ACL_OTHER" },
+       { SMB_ACL_MASK, "SMB_ACL_MASK" },
+{ 0, NULL }
+};
+static int smb_acl_dissect_element_user_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_group_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_entry_info_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_entry_info_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_entry_a_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *a_type);
+static int smb_acl_dissect_element_entry_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *a_type);
+static int smb_acl_dissect_element_entry_a_perm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_t_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_t_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_t_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_t_acl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_access_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_access_acl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_default_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_default_acl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int smb_acl_dissect_element_wrapper_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL:        SMB_ACL_TAG_INVALID=0, */
+/* IDL:        SMB_ACL_USER=1, */
+/* IDL:        SMB_ACL_USER_OBJ=2, */
+/* IDL:        SMB_ACL_GROUP=3, */
+/* IDL:        SMB_ACL_GROUP_OBJ=4, */
+/* IDL:        SMB_ACL_OTHER=5, */
+/* IDL:        SMB_ACL_MASK=6, */
+/* IDL: } */
+
+int
+smb_acl_dissect_enum_tag_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uid_t uid; */
+/* IDL: } */
+
+static int
+smb_acl_dissect_element_user_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_uid_t(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_user_uid,0);
+
+       return offset;
+}
+
+int
+smb_acl_dissect_struct_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_smb_acl_smb_acl_user);
+       }
+       
+       offset = smb_acl_dissect_element_user_uid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        gid_t gid; */
+/* IDL: } */
+
+static int
+smb_acl_dissect_element_group_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_gid_t(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_group_gid,0);
+
+       return offset;
+}
+
+int
+smb_acl_dissect_struct_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_smb_acl_smb_acl_group);
+       }
+       
+       offset = smb_acl_dissect_element_group_gid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(SMB_ACL_USER)] [case(SMB_ACL_USER)] smb_acl_user user; */
+/* IDL: [case(SMB_ACL_USER_OBJ)] [case(SMB_ACL_USER_OBJ)] EMPTY ; */
+/* IDL: [case(SMB_ACL_GROUP)] [case(SMB_ACL_GROUP)] smb_acl_group group; */
+/* IDL: [case(SMB_ACL_GROUP_OBJ)] [case(SMB_ACL_GROUP_OBJ)] EMPTY ; */
+/* IDL: [case(SMB_ACL_OTHER)] [case(SMB_ACL_OTHER)] EMPTY ; */
+/* IDL: [case(SMB_ACL_MASK)] [case(SMB_ACL_MASK)] EMPTY ; */
+/* IDL: } */
+
+static int
+smb_acl_dissect_element_entry_info_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_user(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_entry_info_user,0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_entry_info_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_group(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_entry_info_group,0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_entry_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "smb_acl_entry_info");
+               tree = proto_item_add_subtree(item, ett_smb_acl_smb_acl_entry_info);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case SMB_ACL_USER:
+                       offset = smb_acl_dissect_element_entry_info_user(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case SMB_ACL_USER_OBJ:
+               break;
+
+               case SMB_ACL_GROUP:
+                       offset = smb_acl_dissect_element_entry_info_group(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case SMB_ACL_GROUP_OBJ:
+               break;
+
+               case SMB_ACL_OTHER:
+               break;
+
+               case SMB_ACL_MASK:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        smb_acl_tag_t a_type; */
+/* IDL:        [switch_is(a_type)] smb_acl_entry_info info; */
+/* IDL:        uint32 a_perm; */
+/* IDL: } */
+
+static int
+smb_acl_dissect_element_entry_a_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *a_type)
+{
+       offset = smb_acl_dissect_enum_tag_t(tvb, offset, pinfo, tree, drep, hf_smb_acl_smb_acl_entry_a_type, a_type);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_entry_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *a_type)
+{
+       offset = smb_acl_dissect_entry_info(tvb, offset, pinfo, tree, drep, hf_smb_acl_smb_acl_entry_info, *a_type);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_entry_a_perm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_smb_acl_smb_acl_entry_a_perm, 0);
+
+       return offset;
+}
+
+int
+smb_acl_dissect_struct_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 a_type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_smb_acl_smb_acl_entry);
+       }
+       
+       offset = smb_acl_dissect_element_entry_a_type(tvb, offset, pinfo, tree, drep, &a_type);
+
+       offset = smb_acl_dissect_element_entry_info(tvb, offset, pinfo, tree, drep, &a_type);
+
+       offset = smb_acl_dissect_element_entry_a_perm(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        int32 count; */
+/* IDL:        [value(0)] int32 next; */
+/* IDL:        [size_is(count)] smb_acl_entry acl[*]; */
+/* IDL: } */
+
+static int
+smb_acl_dissect_element_t_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_smb_acl_smb_acl_t_count, 0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_t_next(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_smb_acl_smb_acl_t_next, 0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_t_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, smb_acl_dissect_element_t_acl_);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_t_acl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_entry(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_t_acl,0);
+
+       return offset;
+}
+
+int
+smb_acl_dissect_struct_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_smb_acl_smb_acl_t);
+       }
+       
+       offset = smb_acl_dissect_element_t_count(tvb, offset, pinfo, tree, drep);
+
+       offset = smb_acl_dissect_element_t_next(tvb, offset, pinfo, tree, drep);
+
+       offset = smb_acl_dissect_element_t_acl(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] smb_acl_t *access_acl; */
+/* IDL:        [unique(1)] smb_acl_t *default_acl; */
+/* IDL:        uid_t owner; */
+/* IDL:        gid_t group; */
+/* IDL:        uint32 mode; */
+/* IDL: } */
+
+static int
+smb_acl_dissect_element_wrapper_access_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, smb_acl_dissect_element_wrapper_access_acl_, NDR_POINTER_UNIQUE, "Pointer to Access Acl (smb_acl_t)",hf_smb_acl_smb_acl_wrapper_access_acl);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_wrapper_access_acl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_t(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_wrapper_access_acl,0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_wrapper_default_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, smb_acl_dissect_element_wrapper_default_acl_, NDR_POINTER_UNIQUE, "Pointer to Default Acl (smb_acl_t)",hf_smb_acl_smb_acl_wrapper_default_acl);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_wrapper_default_acl_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_t(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_wrapper_default_acl,0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_wrapper_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_uid_t(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_wrapper_owner,0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_wrapper_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = smb_acl_dissect_struct_gid_t(tvb,offset,pinfo,tree,drep,hf_smb_acl_smb_acl_wrapper_group,0);
+
+       return offset;
+}
+
+static int
+smb_acl_dissect_element_wrapper_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_smb_acl_smb_acl_wrapper_mode, 0);
+
+       return offset;
+}
+
+int
+smb_acl_dissect_struct_wrapper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_smb_acl_smb_acl_wrapper);
+       }
+       
+       offset = smb_acl_dissect_element_wrapper_access_acl(tvb, offset, pinfo, tree, drep);
+
+       offset = smb_acl_dissect_element_wrapper_default_acl(tvb, offset, pinfo, tree, drep);
+
+       offset = smb_acl_dissect_element_wrapper_owner(tvb, offset, pinfo, tree, drep);
+
+       offset = smb_acl_dissect_element_wrapper_group(tvb, offset, pinfo, tree, drep);
+
+       offset = smb_acl_dissect_element_wrapper_mode(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+static dcerpc_sub_dissector smb_acl_dissectors[] = {
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_smb_acl(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_smb_acl_smb_acl_wrapper_mode,
+         { "Mode", "smb_acl.smb_acl_wrapper.mode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_entry_info,
+         { "Info", "smb_acl.smb_acl_entry.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_wrapper_default_acl,
+         { "Default Acl", "smb_acl.smb_acl_wrapper.default_acl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_entry_info_group,
+         { "Group", "smb_acl.smb_acl_entry_info.group", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_wrapper_access_acl,
+         { "Access Acl", "smb_acl.smb_acl_wrapper.access_acl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_entry_info_user,
+         { "User", "smb_acl.smb_acl_entry_info.user", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_t_acl,
+         { "Acl", "smb_acl.smb_acl_t.acl", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_user_uid,
+         { "Uid", "smb_acl.smb_acl_user.uid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_t_next,
+         { "Next", "smb_acl.smb_acl_t.next", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_entry_a_perm,
+         { "A Perm", "smb_acl.smb_acl_entry.a_perm", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_group_gid,
+         { "Gid", "smb_acl.smb_acl_group.gid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_wrapper_group,
+         { "Group", "smb_acl.smb_acl_wrapper.group", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_t_count,
+         { "Count", "smb_acl.smb_acl_t.count", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_wrapper_owner,
+         { "Owner", "smb_acl.smb_acl_wrapper.owner", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_smb_acl_smb_acl_entry_a_type,
+         { "A Type", "smb_acl.smb_acl_entry.a_type", FT_UINT1632, BASE_DEC, VALS(smb_acl_smb_acl_tag_t_vals), 0, NULL, HFILL }},
+       { &hf_smb_acl_opnum,
+         { "Operation", "smb_acl.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_smb_acl,
+               &ett_smb_acl_smb_acl_user,
+               &ett_smb_acl_smb_acl_group,
+               &ett_smb_acl_smb_acl_entry_info,
+               &ett_smb_acl_smb_acl_entry,
+               &ett_smb_acl_smb_acl_t,
+               &ett_smb_acl_smb_acl_wrapper,
+       };
+
+       proto_dcerpc_smb_acl = proto_register_protocol("SMB_ACL (pidl)", "SMB_ACL", "smb_acl");
+       proto_register_field_array(proto_dcerpc_smb_acl, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_smb_acl(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_smb_acl, ett_dcerpc_smb_acl,
+               &uuid_dcerpc_smb_acl, ver_dcerpc_smb_acl,
+               smb_acl_dissectors, hf_smb_acl_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-smb_acl.h b/bin/default/librpc/gen_ndr/packet-dcerpc-smb_acl.h
new file mode 100644 (file)
index 0000000..33d84ac
--- /dev/null
@@ -0,0 +1,47 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/smb_acl.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/smb_acl.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_SMB_ACL_H
+#define __PACKET_DCERPC_SMB_ACL_H
+
+#define SMB_ACL_READ   ( 4 )
+
+#define SMB_ACL_WRITE  ( 2 )
+
+#define SMB_ACL_EXECUTE        ( 1 )
+
+#define SMB_ACL_FIRST_ENTRY    ( 0 )
+
+#define SMB_ACL_NEXT_ENTRY     ( 1 )
+
+#define SMB_ACL_TYPE_ACCESS    ( 0 )
+
+#define SMB_ACL_TYPE_DEFAULT   ( 1 )
+
+#define SMB_ACL_TAG_INVALID (0)
+#define SMB_ACL_USER (1)
+#define SMB_ACL_USER_OBJ (2)
+#define SMB_ACL_GROUP (3)
+#define SMB_ACL_GROUP_OBJ (4)
+#define SMB_ACL_OTHER (5)
+#define SMB_ACL_MASK (6)
+extern const value_string smb_acl_smb_acl_tag_t_vals[];
+int smb_acl_dissect_enum_tag_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int smb_acl_dissect_struct_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int smb_acl_dissect_struct_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int smb_acl_dissect_struct_entry(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int smb_acl_dissect_struct_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int smb_acl_dissect_struct_wrapper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_SMB_ACL_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.c b/bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.c
new file mode 100644 (file)
index 0000000..686472f
--- /dev/null
@@ -0,0 +1,42127 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/spoolss.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/spoolss.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-spoolss.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_spoolss = -1;
+static gint ett_spoolss_spoolss_Time = -1;
+static gint ett_spoolss_spoolss_TimeCtr = -1;
+static gint ett_spoolss_spoolss_PrinterStatus = -1;
+static gint ett_spoolss_spoolss_JobStatus = -1;
+static gint ett_spoolss_spoolss_PrinterInfo0 = -1;
+static gint ett_spoolss_spoolss_DMPS_Flags = -1;
+static gint ett_spoolss_spoolss_PSDRVEXTRA351 = -1;
+static gint ett_spoolss_spoolss_PSDRVEXTRA400 = -1;
+static gint ett_spoolss_spoolss_PSDRVEXTRA500 = -1;
+static gint ett_spoolss_spoolss_PSDRVEXTRA = -1;
+static gint ett_spoolss_spoolss_UNIDRVEXTRA3_4 = -1;
+static gint ett_spoolss_spoolss_DMUNI_Flags = -1;
+static gint ett_spoolss_spoolss_UNIDRVEXTRA500 = -1;
+static gint ett_spoolss_spoolss_UNIDRVEXTRA = -1;
+static gint ett_spoolss_spoolss_JTEXP = -1;
+static gint ett_spoolss_spoolss_OEM_DMEXTRA = -1;
+static gint ett_spoolss_spoolss_DeviceModeExtraDataPostScript = -1;
+static gint ett_spoolss_spoolss_DeviceModeExtraDataUniDriver = -1;
+static gint ett_spoolss_spoolss_DeviceModeFields = -1;
+static gint ett_spoolss_spoolss_DeviceMode = -1;
+static gint ett_spoolss_spoolss_EnumPrinterFlags = -1;
+static gint ett_spoolss_spoolss_PrinterAttributes = -1;
+static gint ett_spoolss_spoolss_PrinterInfo1 = -1;
+static gint ett_spoolss_spoolss_PrinterInfo2 = -1;
+static gint ett_spoolss_spoolss_PrinterInfo3 = -1;
+static gint ett_spoolss_spoolss_PrinterInfo4 = -1;
+static gint ett_spoolss_spoolss_PrinterInfo5 = -1;
+static gint ett_spoolss_spoolss_PrinterInfo6 = -1;
+static gint ett_spoolss_spoolss_DsPrintAction = -1;
+static gint ett_spoolss_spoolss_PrinterInfo7 = -1;
+static gint ett_spoolss_spoolss_DeviceModeInfo = -1;
+static gint ett_spoolss_spoolss_PrinterInfo = -1;
+static gint ett_spoolss_spoolss_DevmodeContainer = -1;
+static gint ett_spoolss_spoolss_JobInfo1 = -1;
+static gint ett_spoolss_spoolss_JobInfo2 = -1;
+static gint ett_spoolss_spoolss_JobInfo3 = -1;
+static gint ett_spoolss_spoolss_JobInfo4 = -1;
+static gint ett_spoolss_spoolss_JobInfo = -1;
+static gint ett_spoolss_spoolss_SetJobInfo1 = -1;
+static gint ett_spoolss_spoolss_SetJobInfo2 = -1;
+static gint ett_spoolss_spoolss_SetJobInfo4 = -1;
+static gint ett_spoolss_spoolss_SetJobInfo = -1;
+static gint ett_spoolss_spoolss_JobInfoContainer = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo0 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo1 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo2 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo3 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo4 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo5 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo6 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo7 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo8 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo9 = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfo = -1;
+static gint ett_spoolss_spoolss_SetPrinterInfoCtr = -1;
+static gint ett_spoolss_spoolss_StringArray = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo1 = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo2 = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo3 = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo4 = -1;
+static gint ett_spoolss_spoolss_DriverAttributes = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo5 = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo6 = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo8 = -1;
+static gint ett_spoolss_spoolss_AddDriverInfo = -1;
+static gint ett_spoolss_spoolss_AddDriverInfoCtr = -1;
+static gint ett_spoolss_spoolss_DriverInfo1 = -1;
+static gint ett_spoolss_spoolss_DriverInfo2 = -1;
+static gint ett_spoolss_spoolss_DriverInfo3 = -1;
+static gint ett_spoolss_spoolss_DriverInfo4 = -1;
+static gint ett_spoolss_spoolss_DriverInfo5 = -1;
+static gint ett_spoolss_spoolss_DriverInfo6 = -1;
+static gint ett_spoolss_spoolss_DriverInfo7 = -1;
+static gint ett_spoolss_spoolss_DriverInfo8 = -1;
+static gint ett_spoolss_spoolss_DriverFileInfo = -1;
+static gint ett_spoolss_spoolss_DriverInfo101 = -1;
+static gint ett_spoolss_spoolss_DriverInfo = -1;
+static gint ett_spoolss_spoolss_DriverDirectoryInfo1 = -1;
+static gint ett_spoolss_spoolss_DriverDirectoryInfo = -1;
+static gint ett_spoolss_spoolss_PrintProcessorInfo1 = -1;
+static gint ett_spoolss_spoolss_PrintProcessorInfo = -1;
+static gint ett_spoolss_spoolss_PrintProcessorDirectoryInfo1 = -1;
+static gint ett_spoolss_spoolss_PrintProcessorDirectoryInfo = -1;
+static gint ett_spoolss_spoolss_DocumentInfo1 = -1;
+static gint ett_spoolss_spoolss_DocumentInfo = -1;
+static gint ett_spoolss_spoolss_DocumentInfoCtr = -1;
+static gint ett_spoolss_spoolss_OSVersion = -1;
+static gint ett_spoolss_spoolss_OSVersionEx = -1;
+static gint ett_spoolss_spoolss_PrinterData = -1;
+static gint ett_spoolss_spoolss_FormSize = -1;
+static gint ett_spoolss_spoolss_FormArea = -1;
+static gint ett_spoolss_spoolss_FormInfo1 = -1;
+static gint ett_spoolss_spoolss_FormStringType = -1;
+static gint ett_spoolss_spoolss_FormInfo2 = -1;
+static gint ett_spoolss_spoolss_FormInfo = -1;
+static gint ett_spoolss_spoolss_AddFormInfo1 = -1;
+static gint ett_spoolss_spoolss_AddFormInfo2 = -1;
+static gint ett_spoolss_spoolss_AddFormInfo = -1;
+static gint ett_spoolss_spoolss_AddFormInfoCtr = -1;
+static gint ett_spoolss_spoolss_PortInfo1 = -1;
+static gint ett_spoolss_spoolss_PortType = -1;
+static gint ett_spoolss_spoolss_PortInfo2 = -1;
+static gint ett_spoolss_spoolss_PortInfo3 = -1;
+static gint ett_spoolss_spoolss_PortInfoFF = -1;
+static gint ett_spoolss_spoolss_PortInfo = -1;
+static gint ett_spoolss_spoolss_MonitorInfo1 = -1;
+static gint ett_spoolss_spoolss_MonitorInfo2 = -1;
+static gint ett_spoolss_spoolss_MonitorInfo = -1;
+static gint ett_spoolss_spoolss_SetPortInfo1 = -1;
+static gint ett_spoolss_spoolss_SetPortInfo2 = -1;
+static gint ett_spoolss_spoolss_SetPortInfo3 = -1;
+static gint ett_spoolss_spoolss_SetPortInfoFF = -1;
+static gint ett_spoolss_spoolss_SetPortInfo = -1;
+static gint ett_spoolss_spoolss_SetPortInfoContainer = -1;
+static gint ett_spoolss_UNIVERSAL_FONT_ID = -1;
+static gint ett_spoolss_UNIVERSAL_FONT_ID_ctr = -1;
+static gint ett_spoolss_spoolss_AddMonitorInfo1 = -1;
+static gint ett_spoolss_spoolss_AddMonitorInfo2 = -1;
+static gint ett_spoolss_spoolss_AddMonitorInfo = -1;
+static gint ett_spoolss_spoolss_MonitorContainer = -1;
+static gint ett_spoolss_spoolss_PrintProcDataTypesInfo1 = -1;
+static gint ett_spoolss_spoolss_PrintProcDataTypesInfo = -1;
+static gint ett_spoolss_spoolss_PrinterChangeFlags = -1;
+static gint ett_spoolss_spoolss_PortVarContainer = -1;
+static gint ett_spoolss_spoolss_Field = -1;
+static gint ett_spoolss_spoolss_NotifyOptionType = -1;
+static gint ett_spoolss_spoolssNotifyOptionFlags = -1;
+static gint ett_spoolss_spoolss_NotifyOption = -1;
+static gint ett_spoolss_spoolss_NotifyString = -1;
+static gint ett_spoolss_spoolss_NotifyData = -1;
+static gint ett_spoolss_spoolss_Notify = -1;
+static gint ett_spoolss_spoolss_NotifyInfo = -1;
+static gint ett_spoolss_spoolss_ReplyPrinterInfo = -1;
+static gint ett_spoolss_spoolss_PrinterNotifyFlags = -1;
+static gint ett_spoolss_spoolss_UserLevel1 = -1;
+static gint ett_spoolss_spoolss_UserLevel2 = -1;
+static gint ett_spoolss_spoolss_UserLevel3 = -1;
+static gint ett_spoolss_spoolss_UserLevel = -1;
+static gint ett_spoolss_spoolss_UserLevelCtr = -1;
+static gint ett_spoolss_spoolss_AccessRights = -1;
+static gint ett_spoolss_spoolss_PrinterEnumValues = -1;
+static gint ett_spoolss_spoolss_KeyNames = -1;
+static gint ett_spoolss_spoolss_DeleteDriverFlags = -1;
+static gint ett_spoolss_spoolss_PortData1 = -1;
+static gint ett_spoolss_spoolss_PortData2 = -1;
+static gint ett_spoolss_spoolss_MonitorUi = -1;
+static gint ett_spoolss_spoolss_AddPrinterDriverExFlags = -1;
+static gint ett_spoolss_RPC_BINARY_CONTAINER = -1;
+static gint ett_spoolss_RPC_BIDI_DATA_u = -1;
+static gint ett_spoolss_RPC_BIDI_DATA = -1;
+static gint ett_spoolss_RPC_BIDI_REQUEST_DATA = -1;
+static gint ett_spoolss_RPC_BIDI_REQUEST_CONTAINER = -1;
+static gint ett_spoolss_RPC_BIDI_RESPONSE_DATA = -1;
+static gint ett_spoolss_RPC_BIDI_RESPONSE_CONTAINER = -1;
+static gint ett_spoolss_spoolss_CorePrinterDriver = -1;
+static gint ett_spoolss_propertyBlob = -1;
+static gint ett_spoolss_RPC_PrintPropertyValueUnion = -1;
+static gint ett_spoolss_RPC_PrintPropertyValue = -1;
+static gint ett_spoolss_RPC_PrintNamedProperty = -1;
+
+
+/* Header field declarations */
+static gint hf_spoolss_spoolss_PortInfo1_port_name = -1;
+static gint hf_spoolss_spoolss_DeviceMode_size = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result = -1;
+static gint hf_spoolss_spoolss_GetJob_buffer = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_driver_path = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_drivername = -1;
+static gint hf_spoolss_spoolss_DocumentInfo_info1 = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_ressource_id = -1;
+static gint hf_spoolss_spoolss_UserLevel3_reserved = -1;
+static gint hf_spoolss_spoolss_FormInfo2_keyword = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE = -1;
+static gint hf_spoolss_spoolss_JobInfo2_start_time = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wCoreFullSize = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_text_status = -1;
+static gint hf_spoolss_spoolss_XcvData_handle = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_total_pages = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_data_file = -1;
+static gint hf_spoolss_spoolss_SetPortInfo2_monitor_name = -1;
+static gint hf_spoolss_spoolss_PortInfo_infoFF = -1;
+static gint hf_spoolss_spoolss_JobInfo2_submitted = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_architecture = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_server_name = -1;
+static gint hf_spoolss__spoolss_EnumForms_count = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_datatype = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo5_attributes = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS = -1;
+static gint hf_spoolss_spoolss_PrinterEnumValues_data = -1;
+static gint hf_spoolss_spoolss_DeletePrintProcessor_server = -1;
+static gint hf_spoolss___spoolss_EnumPrintProcDataTypes_level = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_location = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_data_needed = -1;
+static gint hf_spoolss_spoolss_NotifyData_integer = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo2_architecture = -1;
+static gint hf_spoolss_spoolss_SetPrinter_devmode_ctr = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_document_name = -1;
+static gint hf_spoolss_spoolss_DriverInfo7_inf_name = -1;
+static gint hf_spoolss_spoolss_SetPrinter_command = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info2 = -1;
+static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_JobId = -1;
+static gint hf_spoolss_spoolss_DeviceMode___driverextra_length = -1;
+static gint hf_spoolss_spoolss_XcvData_function_name = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo_info1 = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_position = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_sepfile = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_RESTART = -1;
+static gint hf_spoolss___spoolss_EnumPrinterDataEx_count = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2__devmode_ptr = -1;
+static gint hf_spoolss_spoolss_JobInfo1_submitted = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_driver_attributes = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_monitor_name = -1;
+static gint hf_spoolss_spoolss_PortData2_size = -1;
+static gint hf_spoolss___spoolss_EnumPrintProcDataTypes_count = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT = -1;
+static gint hf_spoolss_spoolss_StringArray_string = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_aubOptions = -1;
+static gint hf_spoolss___spoolss_EnumPorts_level = -1;
+static gint hf_spoolss_spoolss_JobInfo4_until_time = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_config_file = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wFeedDirection = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_averageppm = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_provider = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_text_status = -1;
+static gint hf_spoolss_spoolss_EnumPorts_level = -1;
+static gint hf_spoolss_spoolss_EnumForms_count = -1;
+static gint hf_spoolss_spoolss_PortData2_snmpcommunity = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_aOptions = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_hardware_id = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wchEPSFile = -1;
+static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName = -1;
+static gint hf_spoolss_spoolss_AddPort_monitor_name = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab_size = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_driver_path = -1;
+static gint hf_spoolss_spoolss_DriverInfo2_architecture = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_printername = -1;
+static gint hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_help_file = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwSignature = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_iLayout = -1;
+static gint hf_spoolss_spoolss_DeletePrinterIC_gdi_handle = -1;
+static gint hf_spoolss__spoolss_EnumJobs_numjobs = -1;
+static gint hf_spoolss_spoolss_PrinterInfo3_secdesc = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_version = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_averageppm = -1;
+static gint hf_spoolss_spoolss_FormInfo1_form_name = -1;
+static gint hf_spoolss__spoolss_EnumJobs_level = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_previous_names = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_iTTDLFmt = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caRedGreenTint = -1;
+static gint hf_spoolss_spoolss_NotifyOption_version = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_platform_id = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_c_setprinter = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wVer = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_info = -1;
+static gint hf_spoolss_spoolss_JobInfo4_printer_name = -1;
+static gint hf_spoolss_spoolss_EnumPorts_buffer = -1;
+static gint hf_spoolss_spoolss_PortVarContainer_monitor_data = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_service_pack_major = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_config_file = -1;
+static gint hf_spoolss_spoolss_DeviceMode_panningheight = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_BITSPERPEL = -1;
+static gint hf_spoolss_spoolss_UserLevel3_major = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7 = -1;
+static gint hf_spoolss_spoolss_GetForm_buffer = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_devmode_ = -1;
+static gint hf_spoolss_spoolss_Notify_variable_type = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo1_description = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_number_of_processors = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_environment = -1;
+static gint hf_spoolss_spoolss_PrinterEnumValues_type = -1;
+static gint hf_spoolss__spoolss_EnumPorts_count = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_data_file = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caSize = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_count = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceWhite = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caGreenGamma = -1;
+static gint hf_spoolss_spoolss_OSVersion_minor = -1;
+static gint hf_spoolss___spoolss_EnumPrinterDrivers_level = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_number_of_processors = -1;
+static gint hf_spoolss_spoolss_SetPort_servername = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_info = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_driver_name = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_help_file = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caSize = -1;
+static gint hf_spoolss__spoolss_EnumJobs_needed = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_previous_names = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_enum_index = -1;
+static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine = -1;
+static gint hf_spoolss_spoolss_EnumJobs_info = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caBrightness = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_level = -1;
+static gint hf_spoolss___spoolss_EnumMonitors_info = -1;
+static gint hf_spoolss_spoolss_SetPortInfo3_status_string = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_starttime = -1;
+static gint hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter = -1;
+static gint hf_spoolss_spoolss_JobInfo1_pages_printed = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caColorfulness = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_buffer = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_language = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_dependent_files = -1;
+static gint hf_spoolss_spoolss_FormInfo_info1 = -1;
+static gint hf_spoolss_spoolss_SetJobInfo_info3 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved3 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wReserved1 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_config_version = -1;
+static gint hf_spoolss_spoolss_JobInfo2_status = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_bReversePrint = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_offered = -1;
+static gint hf_spoolss_spoolss_ReplyOpenPrinter_printer_local = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMMETHOD = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo5_device_not_selected_timeout = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_version = -1;
+static gint hf_spoolss_spoolss_JobInfo2_size = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_help_file = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_reserved2 = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_info = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info9 = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_driver_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_sharename = -1;
+static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties = -1;
+static gint hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Count = -1;
+static gint hf_spoolss_spoolss_DeviceMode_panningwidth = -1;
+static gint hf_spoolss_spoolss_PortInfo2_description = -1;
+static gint hf_spoolss__spoolss_EnumJobs_count = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_session_counter = -1;
+static gint hf_spoolss_spoolss_DocumentInfo1_output_file = -1;
+static gint hf_spoolss_spoolss_UserLevel3_user = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info7 = -1;
+static gint hf_spoolss_spoolss_UserLevel1_minor = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDataEx_info = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_handle = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_server_name = -1;
+static gint hf_spoolss_spoolss_UserLevelCtr_level = -1;
+static gint hf_spoolss_spoolss_OpenPrinterEx_access_mask = -1;
+static gint hf_spoolss_spoolss_AddFormInfo1_form_name = -1;
+static gint hf_spoolss_spoolss_PortData2_version = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ORIENTATION = -1;
+static gint hf_spoolss_spoolss_OpenPrinter_handle = -1;
+static gint hf_spoolss_spoolss_AccessRights_JOB_ACCESS_READ = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwResult = -1;
+static gint hf_spoolss_spoolss_DeletePerMachineConnection_server = -1;
+static gint hf_spoolss_spoolss_JobInfoContainer_level = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_bReversePrint = -1;
+static gint hf_spoolss_spoolss_GetPrinter_handle = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwReqNumber = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_provider = -1;
+static gint hf_spoolss_spoolss_DriverInfo2_driver_path = -1;
+static gint hf_spoolss_spoolss_PortInfo2_port_type = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_data_file = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE = -1;
+static gint hf_spoolss_spoolss_SetPrinterData_value_name = -1;
+static gint hf_spoolss_spoolss_PortData1_queue = -1;
+static gint hf_spoolss_spoolss_PortData2_reserved = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_location = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_servername = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_submitted = -1;
+static gint hf_spoolss_spoolss_EnumPorts_needed = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_config_file = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name = -1;
+static gint hf_spoolss_spoolss_JobInfo4_devmode_ = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwReserved2 = -1;
+static gint hf_spoolss_spoolss_Time_month = -1;
+static gint hf_spoolss_spoolss_OpenPrinter_datatype = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info0 = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDataEx_needed = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer = -1;
+static gint hf_spoolss_spoolss_PortData2_hostaddress = -1;
+static gint hf_spoolss_spoolss_UserLevel_level2 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_date = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_config_file = -1;
+static gint hf_spoolss_spoolss_NotifyInfo_version = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_needed = -1;
+static gint hf_spoolss_spoolss_DeviceMode_scale = -1;
+static gint hf_spoolss_spoolss_DeletePrinterData_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_buffer = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_manufacturer_url = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_printername = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_wOEMExtra = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDataEx_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_previous_names = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_architecture = -1;
+static gint hf_spoolss_spoolss_JobInfo4_devmode = -1;
+static gint hf_spoolss_spoolss_JobInfo4_priority = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_value_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_status = -1;
+static gint hf_spoolss_spoolss_FormArea_bottom = -1;
+static gint hf_spoolss_spoolss_JobInfo4_server_name = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_size = -1;
+static gint hf_spoolss__spoolss_EnumJobs_offered = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_version = -1;
+static gint hf_spoolss_spoolss_GetJob_handle = -1;
+static gint hf_spoolss_spoolss_AddPrinter_secdesc_ctr = -1;
+static gint hf_spoolss_spoolss_DeviceMode_duplex = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinterEx_color = -1;
+static gint hf_spoolss_spoolss_DeletePort_port_name = -1;
+static gint hf_spoolss__spoolss_EnumForms_handle = -1;
+static gint hf_spoolss_spoolss_FormInfo2_flags = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_status = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo2_config_file = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_document_name = -1;
+static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_spooling = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4__ndr_size_dependent_files = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wCoreJTExpSize = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_needed = -1;
+static gint hf_spoolss_spoolss_PortInfoFF_monitor_data = -1;
+static gint hf_spoolss_RPC_PrintNamedProperty_propertyValue = -1;
+static gint hf_spoolss_spoolss_JobInfo2_position = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_type = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_level = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_default_datatype = -1;
+static gint hf_spoolss_spoolss_Time_millisecond = -1;
+static gint hf_spoolss_spoolss_EnumForms_needed = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwNupDirection = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_version = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_driver_path = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_time = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_architecture = -1;
+static gint hf_spoolss_spoolss_GetPrinter_buffer = -1;
+static gint hf_spoolss_spoolss_PrinterData_string = -1;
+static gint hf_spoolss_spoolss_JobInfo4_print_processor = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETED = -1;
+static gint hf_spoolss_spoolss_OEM_DMEXTRA_dwVersion = -1;
+static gint hf_spoolss_spoolss_SetPortInfo_info2 = -1;
+static gint hf_spoolss_spoolss_JobInfo_info3 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_architecture = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey__ndr_size = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDataEx_count = -1;
+static gint hf_spoolss_spoolss_FormInfo2_display_name = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_offered = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_default_datatype = -1;
+static gint hf_spoolss_spoolss_EnumForms_offered = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDataEx_key_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwY = -1;
+static gint hf_spoolss__spoolss_EnumPorts_level = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwChecksum32 = -1;
+static gint hf_spoolss_spoolss_ReplyOpenPrinter_type = -1;
+static gint hf_spoolss_spoolss_DeviceMode_copies = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDataEx_needed = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_data_file = -1;
+static gint hf_spoolss_spoolss_PortData1_protocol = -1;
+static gint hf_spoolss_spoolss_JobInfo4_size = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_level = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER = -1;
+static gint hf_spoolss_spoolss_UserLevel3_client = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psblob = -1;
+static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cOut = -1;
+static gint hf_spoolss_spoolss_JobInfo4_status = -1;
+static gint hf_spoolss_spoolss_OSVersion_platform_id = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_processor_architecture = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_bReversePrint = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_total_pages = -1;
+static gint hf_spoolss_spoolss_PortData2_device_type = -1;
+static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_status = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME = -1;
+static gint hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData = -1;
+static gint hf_spoolss_spoolss_ClosePrinter_handle = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_driver_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_total_pages = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_bReversePrint = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_level = -1;
+static gint hf_spoolss__spoolss_EnumForms_buffer = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_dwFlags = -1;
+static gint hf_spoolss_spoolss_PrinterInfo5_attributes = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caRedGamma = -1;
+static gint hf_spoolss_spoolss_JobInfo1_priority = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo1_name = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY = -1;
+static gint hf_spoolss_spoolss_JobInfo1_data_type = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5 = -1;
+static gint hf_spoolss_spoolss_DeviceMode_bitsperpel = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_extra_string = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info0 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwOptions = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caRedGreenTint = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_user_name = -1;
+static gint hf_spoolss_spoolss_DocumentInfoCtr_level = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwChecksum32 = -1;
+static gint hf_spoolss_spoolss_AddMonitorInfo1_monitor_name = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_offered = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_level = -1;
+static gint hf_spoolss_spoolss_DevmodeContainer_devmode = -1;
+static gint hf_spoolss_RPC_BIDI_DATA_u_sData = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwNupBorderFlags = -1;
+static gint hf_spoolss_spoolss_JobInfo3_reserved = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_version = -1;
+static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_count = -1;
+static gint hf_spoolss___spoolss_EnumPrinters_level = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_priority = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer = -1;
+static gint hf_spoolss_spoolss_UserLevel3_size = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_driver_date = -1;
+static gint hf_spoolss_spoolss_JobInfo4_user_name = -1;
+static gint hf_spoolss_spoolss_DeviceMode_icmintent = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_monitor_name = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_job_id = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_high_part_total_bytes = -1;
+static gint hf_spoolss_spoolss_FormInfo2_unused = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_driver_date = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDataEx_count = -1;
+static gint hf_spoolss_spoolss_JobInfo3_job_id = -1;
+static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_buffer = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_buffer = -1;
+static gint hf_spoolss_spoolss_SetPortInfoFF_monitor_data = -1;
+static gint hf_spoolss_spoolss_Notify_field = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTING = -1;
+static gint hf_spoolss_spoolss_SetPortInfo3_status = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WAITING = -1;
+static gint hf_spoolss_spoolss_DriverInfo2_data_file = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_secdesc_ = -1;
+static gint hf_spoolss_spoolss_GetPrinterData_type = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDataEx_key_name = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDataEx_handle = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caBrightness = -1;
+static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cIn = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo1_flags = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_form_name = -1;
+static gint hf_spoolss_spoolss_MonitorInfo_info2 = -1;
+static gint hf_spoolss_spoolss_SetJobInfo_info4 = -1;
+static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt64 = -1;
+static gint hf_spoolss_spoolss_JTEXP_wCoreMFOSize = -1;
+static gint hf_spoolss_spoolss_DeletePrinterKey_handle = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_reserved2 = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_print_processor = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_server = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_count = -1;
+static gint hf_spoolss_spoolss_JobInfo2_secdesc = -1;
+static gint hf_spoolss_spoolss_JobInfo2_job_id = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_architecture = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_info = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_architecture = -1;
+static gint hf_spoolss_spoolss_JobInfo4_document_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caFlags = -1;
+static gint hf_spoolss_spoolss_PrintProcessorDirectoryInfo1_directory_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caSize = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDataEx_offered = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinter_buffer = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo6_status = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_free_build = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_buffer = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo_info3 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_hardware_id = -1;
+static gint hf_spoolss___spoolss_EnumPrinters_info = -1;
+static gint hf_spoolss_spoolss_DriverInfo7_install_source_root = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_position = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY = -1;
+static gint hf_spoolss_spoolss_PrinterData_string_array = -1;
+static gint hf_spoolss_spoolss_AddFormInfoCtr_info = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab = -1;
+static gint hf_spoolss_spoolss_EnumPorts_count = -1;
+static gint hf_spoolss_spoolss_DeviceMode_pelsheight = -1;
+static gint hf_spoolss_spoolss_NotifyString_string = -1;
+static gint hf_spoolss_spoolss_FormInfo1_size = -1;
+static gint hf_spoolss_spoolss_AddMonitorInfo2_monitor_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_time = -1;
+static gint hf_spoolss_spoolss_JobInfo2_notify_name = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_architecture = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_manufacturer_name = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_server = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_DATA_dwReqNumber = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_ref_ic = -1;
+static gint hf_spoolss_spoolss_JTEXP_FeatureOptionPairs = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_LOGPIXELS = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_manufacturer_url = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_offered = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_driver_version = -1;
+static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_sepfile = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_info = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = -1;
+static gint hf_spoolss_spoolss_DeviceMode_displayfrequency = -1;
+static gint hf_spoolss_spoolss_JobInfo2_text_status = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriver_info_ctr = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_printer_driver_attributes = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN = -1;
+static gint hf_spoolss_spoolss_MonitorInfo_info1 = -1;
+static gint hf_spoolss___spoolss_EnumPrinterDrivers_info = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_previous_names = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_dependent_files = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_value_needed = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo2_version = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_aOptions = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_high_part_total_bytes = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_time = -1;
+static gint hf_spoolss__spoolss_EnumForms_level = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url = -1;
+static gint hf_spoolss_spoolss_AddForm_info_ctr = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_cjobs = -1;
+static gint hf_spoolss_spoolss_GetForm_needed = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_wCoreFullSize = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_info_ = -1;
+static gint hf_spoolss_spoolss_SetPrinterData_handle = -1;
+static gint hf_spoolss_spoolss_GetPrinter_info_ = -1;
+static gint hf_spoolss_spoolss_PortInfo3_status = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo4_printername = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_info = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_pages_printed = -1;
+static gint hf_spoolss_spoolss_JobInfo2_secdesc_ = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caBlueGamma = -1;
+static gint hf_spoolss_spoolss_JobInfo4_data_type = -1;
+static gint hf_spoolss_spoolss_EnumJobs_firstjob = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info4 = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_enumerate_network_printers = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_needed = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_printer_name = -1;
+static gint hf_spoolss_spoolss_JobInfo2_printer_name = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey_offered = -1;
+static gint hf_spoolss__spoolss_EnumPorts_offered = -1;
+static gint hf_spoolss_spoolss_DeviceMode_yresolution = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_info = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_default_datatype = -1;
+static gint hf_spoolss_spoolss_JobInfo2_until_time = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_data_offered = -1;
+static gint hf_spoolss_spoolss_NotifyOptionType_u2 = -1;
+static gint hf_spoolss___spoolss_EnumPrintProcessors_level = -1;
+static gint hf_spoolss_spoolss_EnumJobs_count = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAUSED = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_change_id = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_previous_names = -1;
+static gint hf_spoolss_spoolss_DeletePrinterData_value_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwSignature = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_ERROR = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = -1;
+static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_JobId = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfoCtr_level = -1;
+static gint hf_spoolss_spoolss_DeviceModeInfo_devmode_ = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER = -1;
+static gint hf_spoolss_spoolss_NotifyOptionType_u3 = -1;
+static gint hf_spoolss_spoolss_JobInfo1_server_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caColorfulness = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwOptions = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_provider = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_server = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_notify_name = -1;
+static gint hf_spoolss___spoolss_EnumPrintProcDataTypes_info = -1;
+static gint hf_spoolss_spoolss_JobInfo2_data_type = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_needed = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwHeightOffset = -1;
+static gint hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData = -1;
+static gint hf_spoolss_spoolss_AddFormInfoCtr_level = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinterEx_reply_type = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_user_name = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_area = -1;
+static gint hf_spoolss_spoolss_JobInfo4_job_id = -1;
+static gint hf_spoolss_spoolss_JobInfo4_secdesc_ = -1;
+static gint hf_spoolss_spoolss_GetJob_info_ = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_manufacturer_name = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_offered = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_SPOOLING = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Count = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_parameters = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_file_info = -1;
+static gint hf_spoolss_spoolss_GetPrinter_level = -1;
+static gint hf_spoolss_spoolss_DeviceMode_papersize = -1;
+static gint hf_spoolss_spoolss_DeletePrinterKey_key_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caContrast = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr = -1;
+static gint hf_spoolss_spoolss_AddPerMachineConnection_printername = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_server = -1;
+static gint hf_spoolss_spoolss_SetPrinterDataEx_value_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info5 = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_wReserved = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_pages_printed = -1;
+static gint hf_spoolss_spoolss_XcvData_out_data_size = -1;
+static gint hf_spoolss__spoolss_EnumPorts_buffer = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_needed = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_ref_ic = -1;
+static gint hf_spoolss_spoolss_DocumentInfo1_document_name = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_monitor_name = -1;
+static gint hf_spoolss___spoolss_EnumJobs_level = -1;
+static gint hf_spoolss_spoolss_RpcDeleteJobNamedProperty_JobId = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_needed = -1;
+static gint hf_spoolss_spoolss_PrintProcDataTypesInfo_info1 = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6 = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_total_pages = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwWidthOffset = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwPadding = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_architecture = -1;
+static gint hf_spoolss_RPC_PrintPropertyValue_ePropertyType = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_user_name = -1;
+static gint hf_spoolss_spoolss_OSVersion_extra_string_ = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwNupBorderFlags = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT = -1;
+static gint hf_spoolss_spoolss_SetJob_command = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_info_ = -1;
+static gint hf_spoolss_spoolss_FormInfo2_string_type = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwFlags = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_monitor_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_version = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP = -1;
+static gint hf_spoolss_spoolss_AddPrinterEx_devmode_ctr = -1;
+static gint hf_spoolss_spoolss_SetPrinterDataEx_data = -1;
+static gint hf_spoolss_spoolss_CreatePrinterIC_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_help_file = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_color_profiles = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_flags = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra500 = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info2 = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info6 = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_environment = -1;
+static gint hf_spoolss_spoolss_OSVersion_build = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_last_error = -1;
+static gint hf_spoolss_spoolss_AddPerMachineConnection_printserver = -1;
+static gint hf_spoolss_spoolss_WritePrinter_data = -1;
+static gint hf_spoolss__spoolss_EnumJobs_info = -1;
+static gint hf_spoolss_spoolss_DriverInfo7_size = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caIlluminantIndex = -1;
+static gint hf_spoolss_spoolss_EnumPorts_offered = -1;
+static gint hf_spoolss_spoolss_PortData1_ip_address = -1;
+static gint hf_spoolss_spoolss_Time_minute = -1;
+static gint hf_spoolss_spoolss_AddPortEx_monitor_name = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_iQuality = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_default_datatype = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_until_time = -1;
+static gint hf_spoolss_spoolss_XcvData_status_code = -1;
+static gint hf_spoolss_spoolss_JobInfo3_next_job_id = -1;
+static gint hf_spoolss_spoolss_AddDriverInfoCtr_level = -1;
+static gint hf_spoolss_RPC_PrintPropertyValue_value = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caRedGamma = -1;
+static gint hf_spoolss_spoolss_PrinterEnumValues_data_ = -1;
+static gint hf_spoolss_spoolss_DriverInfo1_driver_name = -1;
+static gint hf_spoolss_spoolss_DeviceMode_driverextra_data = -1;
+static gint hf_spoolss_spoolss_UserLevel1_build = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_data_file = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wOEMExtra = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_handle = -1;
+static gint hf_spoolss_spoolss_GetJob_info = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caContrast = -1;
+static gint hf_spoolss_spoolss_AddPrinterEx_info_ctr = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wFeedDirection = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_buffer = -1;
+static gint hf_spoolss_UNIVERSAL_FONT_ID_ctr_count = -1;
+static gint hf_spoolss_spoolss_NotifyString_size = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_status = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info3 = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_c_setprinter = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_environment = -1;
+static gint hf_spoolss_spoolss_GetForm_offered = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_num_error_out_of_paper = -1;
+static gint hf_spoolss___spoolss_EnumPrinters_count = -1;
+static gint hf_spoolss_spoolss_PortInfo3_severity = -1;
+static gint hf_spoolss_spoolss_XcvData_out_data = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_servername = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_info = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey_key_buffer = -1;
+static gint hf_spoolss_spoolss_UserLevel3_flags = -1;
+static gint hf_spoolss_spoolss_DeletePrinter_handle = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_config_file = -1;
+static gint hf_spoolss_spoolss_GetCorePrinterDrivers_servername = -1;
+static gint hf_spoolss_spoolss_GetPrinterData_handle = -1;
+static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_printer_local = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriverEx_architecture = -1;
+static gint hf_spoolss___spoolss_EnumMonitors_level = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinterEx_info = -1;
+static gint hf_spoolss_spoolss_DeletePrintProcessor_print_processor_name = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriver_server = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caBrightness = -1;
+static gint hf_spoolss_spoolss_PortData1_size = -1;
+static gint hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES = -1;
+static gint hf_spoolss_spoolss_PortData1_snmpcommunity = -1;
+static gint hf_spoolss_spoolss_UserLevel1_client = -1;
+static gint hf_spoolss_spoolss_KeyNames_string_array = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_servername = -1;
+static gint hf_spoolss_spoolss_AddMonitorInfo_info2 = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_sharename = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info4 = -1;
+static gint hf_spoolss_spoolss_EnumForms_level = -1;
+static gint hf_spoolss_spoolss_ReadPrinter_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_inf_path = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_driver_version = -1;
+static gint hf_spoolss_spoolss_SetJobInfo_info2 = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_environment = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_color_profiles = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_vendor_setup = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMINTENT = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_service_pack_minor = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE = -1;
+static gint hf_spoolss_spoolss_StartDocPrinter_job_id = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_count = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_lang_id = -1;
+static gint hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR = -1;
+static gint hf_spoolss_spoolss_JobInfo_info2 = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_count = -1;
+static gint hf_spoolss_spoolss_PortInfo_info1 = -1;
+static gint hf_spoolss_spoolss_EnumForms_buffer = -1;
+static gint hf_spoolss_spoolss_PortData1_snmp_enabled = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLOR = -1;
+static gint hf_spoolss_spoolss_SetPortInfo2_port_name = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_buffer = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_parameters = -1;
+static gint hf_spoolss_spoolss_CorePrinterDriver_driver_date = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_flags = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_attributes = -1;
+static gint hf_spoolss___spoolss_EnumJobs_info = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32 = -1;
+static gint hf_spoolss_spoolss_ReadPrinter_data = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info2 = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_version = -1;
+static gint hf_spoolss_spoolss_JobInfo4_start_time = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_config_file = -1;
+static gint hf_spoolss_spoolss_AddFormInfo1_flags = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_level = -1;
+static gint hf_spoolss_spoolss_ReadPrinter__data_size = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_buffer = -1;
+static gint hf_spoolss_spoolss_SetPortInfo2_description = -1;
+static gint hf_spoolss_spoolss_MonitorInfo1_monitor_name = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_driver_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo5_printername = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_status = -1;
+static gint hf_spoolss__spoolss_EnumPorts_needed = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_offered = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY = -1;
+static gint hf_spoolss___spoolss_EnumPorts_info = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_environment = -1;
+static gint hf_spoolss_spoolss_FormInfo2_mui_dll = -1;
+static gint hf_spoolss_spoolss_DeviceMode_driverversion = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTED = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_client_major_version = -1;
+static gint hf_spoolss__spoolss_EnumJobs_buffer = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETING = -1;
+static gint hf_spoolss__spoolss_EnumForms_needed = -1;
+static gint hf_spoolss_spoolss_Notify_type = -1;
+static gint hf_spoolss_spoolss_PortData2_port_number = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_max_spooling = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caColorfulness = -1;
+static gint hf_spoolss_spoolss_JobInfo2_parameters = -1;
+static gint hf_spoolss_spoolss_GetForm_handle = -1;
+static gint hf_spoolss_spoolss_JobInfo2_print_processor = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_last_error = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_monitor_name = -1;
+static gint hf_spoolss_spoolss_UserLevel3_build = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_build = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wOEMExtra = -1;
+static gint hf_spoolss_spoolss_DriverFileInfo_file_type = -1;
+static gint hf_spoolss_RPC_BIDI_DATA_u_iData = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_driver_path = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_XPS = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_iDialect = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_info = -1;
+static gint hf_spoolss_spoolss_AddPrinterEx_handle = -1;
+static gint hf_spoolss_spoolss_JobInfo1_status = -1;
+static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE = -1;
+static gint hf_spoolss_spoolss_JobInfo4_secdesc = -1;
+static gint hf_spoolss_spoolss_AddFormInfo1_size = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_core_driver_dependencies = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_server = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_processor_level = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_printer_name = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_count = -1;
+static gint hf_spoolss_spoolss_JobInfo4_pages_printed = -1;
+static gint hf_spoolss_spoolss_NotifyOptionType_fields = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra351 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwX = -1;
+static gint hf_spoolss_spoolss_DevmodeContainer_devmode_ = -1;
+static gint hf_spoolss_spoolss_GetPrinter_info = -1;
+static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt32 = -1;
+static gint hf_spoolss_spoolss_NotifyData_devmode = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_config_file = -1;
+static gint hf_spoolss_spoolss_SetPrinterDataEx_key_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_iPSLevel = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_priority = -1;
+static gint hf_spoolss_spoolss_AddFormInfo1_area = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_date = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_offered = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_fxScrAngle = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved2 = -1;
+static gint hf_spoolss_spoolss_PrinterEnumValues_value_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_time = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_offered = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_file_count = -1;
+static gint hf_spoolss_spoolss_PrinterInfo7_guid = -1;
+static gint hf_spoolss_spoolss_StringArray__ndr_size = -1;
+static gint hf_spoolss_spoolss_NotifyInfo_count = -1;
+static gint hf_spoolss_spoolss_FormArea_left = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_iLayout = -1;
+static gint hf_spoolss_spoolss_SetForm_info_ctr = -1;
+static gint hf_spoolss_spoolss_AddFormInfo_info1 = -1;
+static gint hf_spoolss_spoolss_Time_year = -1;
+static gint hf_spoolss_spoolss_EnumPorts_servername = -1;
+static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_data_file = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4 = -1;
+static gint hf_spoolss_spoolss_JobInfo4_parameters = -1;
+static gint hf_spoolss__spoolss_EnumPorts_info = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Version = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info7 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caContrast = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_suite_mask = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wCutSheet = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinter_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo7_version = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES = -1;
+static gint hf_spoolss_spoolss_JobInfo4_notify_name = -1;
+static gint hf_spoolss___spoolss_EnumPrintProcessors_info = -1;
+static gint hf_spoolss_spoolss_OpenPrinterEx_printername = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDataEx_value_name = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_count = -1;
+static gint hf_spoolss_UNIVERSAL_FONT_ID_Index = -1;
+static gint hf_spoolss_spoolss_DeviceMode_reserved2 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_dependent_files = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriverEx_delete_flags = -1;
+static gint hf_spoolss_spoolss_OSVersion_major = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH = -1;
+static gint hf_spoolss_spoolss_NotifyData_string = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_level = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_global_counter = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwFlags = -1;
+static gint hf_spoolss_spoolss_PrinterInfo5_portname = -1;
+static gint hf_spoolss_spoolss_FormArea_top = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_printer_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_untiltime = -1;
+static gint hf_spoolss_spoolss_SetPrinterDataEx_type = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caGreenGamma = -1;
+static gint hf_spoolss___spoolss_EnumPorts_count = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_needed = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER = -1;
+static gint hf_spoolss_spoolss_FormArea_right = -1;
+static gint hf_spoolss_spoolss_Time_hour = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_free_build = -1;
+static gint hf_spoolss_spoolss_DevmodeContainer__ndr_size = -1;
+static gint hf_spoolss_spoolss_AddMonitorInfo2_dll_name = -1;
+static gint hf_spoolss_spoolss_JobInfo2_pages_printed = -1;
+static gint hf_spoolss_spoolss_JobInfo4_driver_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_iDialect = -1;
+static gint hf_spoolss_spoolss_JobInfo4_time = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER = -1;
+static gint hf_spoolss_spoolss_GetForm_form_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceBlack = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info1 = -1;
+static gint hf_spoolss_spoolss_DeviceMode_logpixels = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_default_datatype = -1;
+static gint hf_spoolss_spoolss_DeletePort_ptr = -1;
+static gint hf_spoolss_spoolss_PrinterEnumValues_data_length = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_version = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAPEROUT = -1;
+static gint hf_spoolss_spoolss_AddDriverInfoCtr_info = -1;
+static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_READ = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_comment = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_max_spooling = -1;
+static gint hf_spoolss_spoolss_PortData2_snmp_dev_index = -1;
+static gint hf_spoolss_spoolss_PrinterInfo4_printername = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_architecture = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE = -1;
+static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info = -1;
+static gint hf_spoolss_spoolss_JobInfo4_total_pages = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name = -1;
+static gint hf_spoolss_spoolss_ReadPrinter_data_size = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_info = -1;
+static gint hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_driver_path = -1;
+static gint hf_spoolss_spoolss_AddFormInfo_info2 = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_printername = -1;
+static gint hf_spoolss_spoolss_XcvData_in_data = -1;
+static gint hf_spoolss_spoolss_Notify_data = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_YRESOLUTION = -1;
+static gint hf_spoolss_spoolss_ScheduleJob_jobid = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_change_id = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwReserved3 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwHeightOffset = -1;
+static gint hf_spoolss_spoolss_FormInfo2_ressource_id = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_required = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriverEx_driver = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_handle = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_secdesc = -1;
+static gint hf_spoolss_spoolss_GetCorePrinterDrivers_architecture = -1;
+static gint hf_spoolss_spoolss_AddPrinter_handle = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_driver_date = -1;
+static gint hf_spoolss_spoolss_SetPrinterDataEx_offered = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8 = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS = -1;
+static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_REPUBLISH = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caRedGreenTint = -1;
+static gint hf_spoolss_spoolss_FormInfo2_area = -1;
+static gint hf_spoolss_spoolss_ReplyOpenPrinter_bufsize = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_server_major_version = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo1_description = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_default_datatype = -1;
+static gint hf_spoolss_spoolss_ScheduleJob_handle = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COPIES = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caBlueGamma = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA3_4_wReserved = -1;
+static gint hf_spoolss_spoolss_AddPrinter_info_ctr = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra3_4 = -1;
+static gint hf_spoolss_spoolss_PrinterData_value = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_inf_path = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_wCoreJTExpSize = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_help_file = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_DATA_data = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_needed = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_fxScrFreq = -1;
+static gint hf_spoolss_spoolss_PrinterInfo5_device_not_selected_timeout = -1;
+static gint hf_spoolss_spoolss_DeviceModeInfo_devmode = -1;
+static gint hf_spoolss_spoolss_OSVersion_extra_string = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_SCALE = -1;
+static gint hf_spoolss_spoolss_SetPortInfo3_severity = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_wchEPSFile = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_previous_names = -1;
+static gint hf_spoolss_spoolss_SetPortInfo_info1 = -1;
+static gint hf_spoolss_spoolss_AddPrintProcessor_print_processor_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_reserved3 = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info8 = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_drivername = -1;
+static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_flags = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caGreenGamma = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_default_datatype = -1;
+static gint hf_spoolss_spoolss_AddPerMachineConnection_server = -1;
+static gint hf_spoolss_spoolss_AddForm_handle = -1;
+static gint hf_spoolss_spoolss_DeviceMode_dithertype = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_print_processor = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_needed = -1;
+static gint hf_spoolss_spoolss_PrinterInfo6_status = -1;
+static gint hf_spoolss_RPC_BIDI_DATA_u = -1;
+static gint hf_spoolss_RPC_BINARY_CONTAINER_pszString = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriverEx_version = -1;
+static gint hf_spoolss_spoolss_EnumJobs_needed = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDataEx_key_name = -1;
+static gint hf_spoolss_spoolss_MonitorInfo2_environment = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_data_file = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL = -1;
+static gint hf_spoolss_spoolss_CorePrinterDriver_formname = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_count = -1;
+static gint hf_spoolss_spoolss_AddPortEx_port_ctr = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id = -1;
+static gint hf_spoolss_spoolss_GetForm_info = -1;
+static gint hf_spoolss_spoolss_TimeCtr_size = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_iQuality = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info8 = -1;
+static gint hf_spoolss_spoolss_PrinterEnumValues_value_name_len = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDrivers_info = -1;
+static gint hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1 = -1;
+static gint hf_spoolss___spoolss_EnumForms_info = -1;
+static gint hf_spoolss_spoolss_SetPrinterDataEx_handle = -1;
+static gint hf_spoolss_spoolss_UserLevel1_major = -1;
+static gint hf_spoolss_spoolss_NotifyInfo_notifies = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caBlueGamma = -1;
+static gint hf_spoolss_spoolss_SetPort_port_name = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_submitted = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name = -1;
+static gint hf_spoolss_spoolss_StartPagePrinter_handle = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_reserved = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr = -1;
+static gint hf_spoolss_spoolss_OSVersionEx__ndr_size = -1;
+static gint hf_spoolss_spoolss_OpenPrinterEx_devmode_ctr = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_driver_path = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_architecture = -1;
+static gint hf_spoolss__spoolss_EnumForms_info = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3_help_file = -1;
+static gint hf_spoolss_spoolss_RpcSendRecvBidiData_pAction = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriver_servername = -1;
+static gint hf_spoolss_spoolss_GetJob_job_id = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_portname = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_provider = -1;
+static gint hf_spoolss_spoolss_UserLevel2_not_used = -1;
+static gint hf_spoolss_spoolss_NotifyOption_types = -1;
+static gint hf_spoolss_spoolss_CorePrinterDriver_core_driver_guid = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_version = -1;
+static gint hf_spoolss_spoolss_DeviceMode_paperwidth = -1;
+static gint hf_spoolss_spoolss_JTEXP_wJTHdrSize = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_version = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_size_high = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE = -1;
+static gint hf_spoolss_spoolss_ReplyClosePrinter_handle = -1;
+static gint hf_spoolss_spoolss_AddPrintProcessor_server = -1;
+static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_UNPUBLISH = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_monitor_name = -1;
+static gint hf_spoolss_spoolss_DeviceMode_devicename = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_driver_name = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_document_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caIlluminantIndex = -1;
+static gint hf_spoolss_spoolss_JobInfo2_server_name = -1;
+static gint hf_spoolss_spoolss_SetJob_ctr = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_driver_date = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER = -1;
+static gint hf_spoolss_spoolss_UserLevel1_processor = -1;
+static gint hf_spoolss_spoolss_PrinterInfo4_servername = -1;
+static gint hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName = -1;
+static gint hf_spoolss__spoolss_EnumPorts_servername = -1;
+static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP = -1;
+static gint hf_spoolss_spoolss_GetJob_needed = -1;
+static gint hf_spoolss_spoolss_PortData1_reserved = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_status = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_buffer = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_driver_version = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr = -1;
+static gint hf_spoolss_spoolss_SetPrinterData_offered = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_BUSY = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_dependent_files = -1;
+static gint hf_spoolss_spoolss_FormSize_height = -1;
+static gint hf_spoolss_spoolss_PortData2_dblspool = -1;
+static gint hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo4_attributes = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_config_file = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_vendor_setup = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM = -1;
+static gint hf_spoolss_spoolss_EndDocPrinter_handle = -1;
+static gint hf_spoolss_spoolss_RpcSendRecvBidiData_hPrinter = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_level = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY = -1;
+static gint hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_wchEPSFile = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_keyword = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_monitor_name = -1;
+static gint hf_spoolss_spoolss_DocumentInfo1_datatype = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_driver_name = -1;
+static gint hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter = -1;
+static gint hf_spoolss_spoolss_AddPrintProcessor_architecture = -1;
+static gint hf_spoolss_spoolss_UserLevel_level3 = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING = -1;
+static gint hf_spoolss_spoolss_PortData2_snmp_enabled = -1;
+static gint hf_spoolss_spoolss_OEM_DMEXTRA_Data = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDataEx_handle = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT = -1;
+static gint hf_spoolss_spoolss_FormInfo1_area = -1;
+static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyByte = -1;
+static gint hf_spoolss_spoolss_PortData2_protocol = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wOEMExtra = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caReferenceWhite = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_attributes = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinterEx_flags = -1;
+static gint hf_spoolss_spoolss_AddJob_buffer = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caSize = -1;
+static gint hf_spoolss_spoolss_AddJob_offered = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_needed = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caBrightness = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra = -1;
+static gint hf_spoolss_spoolss_JTEXP_dwVersion = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_driver_name = -1;
+static gint hf_spoolss_spoolss_UserLevel1_user = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_needed = -1;
+static gint hf_spoolss_spoolss_SetJob_handle = -1;
+static gint hf_spoolss_spoolss_JobInfo1_total_pages = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_priority = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_data_type = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey_key_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info3 = -1;
+static gint hf_spoolss_spoolss_JobInfo1_printer_name = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_start_time = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo_info4 = -1;
+static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAUSED = -1;
+static gint hf_spoolss_spoolss_DeviceMode_fields = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Version = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey_needed = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_servername = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wReserved = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_job_error = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info1 = -1;
+static gint hf_spoolss_spoolss_StartDocPrinter_info_ctr = -1;
+static gint hf_spoolss_spoolss_MonitorUi_dll_name = -1;
+static gint hf_spoolss_spoolss_JobInfo1_position = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_data_file = -1;
+static gint hf_spoolss_RPC_BINARY_CONTAINER_cbBuf = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_MEDIATYPE = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_total_jobs = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_datatype = -1;
+static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_PUBLISH = -1;
+static gint hf_spoolss_spoolss_JobInfoContainer_info = -1;
+static gint hf_spoolss_spoolss_XcvData_needed = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_position = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_notify_name = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_needed = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriver_driver = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra500 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caReferenceBlack = -1;
+static gint hf_spoolss_spoolss_AddPort_unknown = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_driver_name = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo2_driver_path = -1;
+static gint hf_spoolss_spoolss_OEM_DMEXTRA_dwSignature = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url = -1;
+static gint hf_spoolss_spoolss_DriverFileInfo_file_name = -1;
+static gint hf_spoolss_UNIVERSAL_FONT_ID_Checksum = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION = -1;
+static gint hf_spoolss___spoolss_EnumForms_level = -1;
+static gint hf_spoolss___spoolss_EnumPrinterDataEx_info = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_extra_string_ = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info7 = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_monitor_name = -1;
+static gint hf_spoolss_spoolss_OSVersion__ndr_size = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_hardware_id = -1;
+static gint hf_spoolss_spoolss_EnumJobs_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info6 = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey_handle = -1;
+static gint hf_spoolss_spoolss_SetPortInfo_infoFF = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6__ndr_size_dependent_files = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_offered = -1;
+static gint hf_spoolss_spoolss_OpenPrinter_devmode_ctr = -1;
+static gint hf_spoolss_spoolss_DeviceMode_driverextra_data_ = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_reserved3 = -1;
+static gint hf_spoolss__spoolss_EnumPrinterDataEx_info = -1;
+static gint hf_spoolss_spoolss_AddPortEx_servername = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_fxScrAngle = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info8 = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_manufacturer_url = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra = -1;
+static gint hf_spoolss_spoolss_JobInfo4_position = -1;
+static gint hf_spoolss__spoolss_EnumJobs_handle = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_defaultpriority = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo7_action = -1;
+static gint hf_spoolss_spoolss_PrinterData_data = -1;
+static gint hf_spoolss_spoolss_AbortPrinter_handle = -1;
+static gint hf_spoolss_RPC_BIDI_DATA_u_bData = -1;
+static gint hf_spoolss_spoolss_FormInfo1_flags = -1;
+static gint hf_spoolss_spoolss_PortData1_portname = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_starttime = -1;
+static gint hf_spoolss_spoolss_DeviceMode_icmmethod = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_provider = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caColorfulness = -1;
+static gint hf_spoolss_spoolss_MonitorContainer_level = -1;
+static gint hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty = -1;
+static gint hf_spoolss_spoolss_AddPortEx_port_var_ctr = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_version = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_minor = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wVer = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_dependent_files = -1;
+static gint hf_spoolss_spoolss_DeviceMode_mediatype = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo4_servername = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_wOptions = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverEx_flags = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinter_bufsize = -1;
+static gint hf_spoolss_spoolss_SetPortInfoFF_port_name = -1;
+static gint hf_spoolss_spoolss_AddPerMachineConnection_provider = -1;
+static gint hf_spoolss_spoolss_UserLevel_level1 = -1;
+static gint hf_spoolss_spoolss_AccessRights_JOB_ACCESS_ADMINISTER = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DITHERTYPE = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH = -1;
+static gint hf_spoolss_spoolss_SetPortInfo_info3 = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_total_bytes = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_driver_name = -1;
+static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_version = -1;
+static gint hf_spoolss_spoolss_PortData1_port_number = -1;
+static gint hf_spoolss_spoolss_SetPrinter_secdesc_ctr = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_priority = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwFlags = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6__ndr_size_previous_names = -1;
+static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_options = -1;
+static gint hf_spoolss_spoolss_UserLevel3_minor = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_driver_path = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_untiltime = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_total_bytes = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_needed = -1;
+static gint hf_spoolss_spoolss_SetPortInfoContainer_info = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriverEx_server = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_default_datatype = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_num_error_not_ready = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caContrast = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_dwSignature = -1;
+static gint hf_spoolss_spoolss_PrinterInfo1_comment = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo5_printername = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDataEx_offered = -1;
+static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE = -1;
+static gint hf_spoolss_spoolss_FindClosePrinterNotify_handle = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info1 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo2_driver_name = -1;
+static gint hf_spoolss_spoolss_EnumForms_handle = -1;
+static gint hf_spoolss_spoolss_JobInfo2_document_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_global_counter = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_size = -1;
+static gint hf_spoolss_spoolss_JobInfo2_devmode_ = -1;
+static gint hf_spoolss_spoolss_SetPortInfo1_port_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_processor_level = -1;
+static gint hf_spoolss_spoolss_OpenPrinterEx_datatype = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo1_driver_name = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM = -1;
+static gint hf_spoolss_spoolss_SetPort_port_ctr = -1;
+static gint hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr = -1;
+static gint hf_spoolss_spoolss_PortData1_snmp_dev_index = -1;
+static gint hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_level = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_default_datatype = -1;
+static gint hf_spoolss_spoolss_PortInfo2_reserved = -1;
+static gint hf_spoolss_propertyBlob_cbBuf = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_enumerate_network_printers = -1;
+static gint hf_spoolss_spoolss_GetPrinter_needed = -1;
+static gint hf_spoolss_spoolss_JobInfo_info4 = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info5 = -1;
+static gint hf_spoolss_spoolss_JobInfo1_job_id = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_FORMNAME = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_level = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwBookletFlags = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wSize = -1;
+static gint hf_spoolss_spoolss_MonitorInfo2_monitor_name = -1;
+static gint hf_spoolss_spoolss_StartDocPrinter_handle = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_job_id = -1;
+static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options = -1;
+static gint hf_spoolss_spoolss_PortInfo_info3 = -1;
+static gint hf_spoolss_RPC_BIDI_DATA_u_biData = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwSignature = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceBlack = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_server = -1;
+static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR = -1;
+static gint hf_spoolss_spoolss_NotifyOptionType_count = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_driver_path = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_level = -1;
+static gint hf_spoolss_spoolss_OpenPrinter_printername = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_total_pages = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_driver_version = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_cjobs = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERSIZE = -1;
+static gint hf_spoolss_spoolss_EnumPrinterKey_key_buffer_ = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_dwFlags = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caIlluminantIndex = -1;
+static gint hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle = -1;
+static gint hf_spoolss_spoolss_Time_second = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE = -1;
+static gint hf_spoolss_spoolss_DriverDirectoryInfo_info1 = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_cjobs = -1;
+static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_UPDATE = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo1_comment = -1;
+static gint hf_spoolss_spoolss_JobInfo4_text_status = -1;
+static gint hf_spoolss_spoolss_ResetPrinter_handle = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_product_type = -1;
+static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_ul = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_key_name = -1;
+static gint hf_spoolss_spoolss_PortData1_hostaddress = -1;
+static gint hf_spoolss_spoolss_PrinterInfo7_action = -1;
+static gint hf_spoolss_spoolss_JTEXP_dwSignature = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CLASS = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_servername = -1;
+static gint hf_spoolss_spoolss_TimeCtr_time = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_help_file = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_dependent_files = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_config_file = -1;
+static gint hf_spoolss_RPC_BIDI_DATA_dwBidiType = -1;
+static gint hf_spoolss_spoolss_GetForm_level = -1;
+static gint hf_spoolss_spoolss_DeviceMode_printquality = -1;
+static gint hf_spoolss_spoolss_DriverInfo2_version = -1;
+static gint hf_spoolss_spoolss_DriverInfo2_driver_name = -1;
+static gint hf_spoolss_spoolss_DeviceMode_formname = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caGreenGamma = -1;
+static gint hf_spoolss__spoolss_EnumForms_offered = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_caIlluminantIndex = -1;
+static gint hf_spoolss_spoolss_SetPortInfo2_port_type = -1;
+static gint hf_spoolss_spoolss_EnumJobs_level = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_iTTDLFmt = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_manufacturer_name = -1;
+static gint hf_spoolss_spoolss_NotifyData_sd = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_printprocessor = -1;
+static gint hf_spoolss_spoolss_CreatePrinterIC_gdi_handle = -1;
+static gint hf_spoolss_spoolss_EnumJobs_buffer = -1;
+static gint hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ENUMERATE = -1;
+static gint hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_servername = -1;
+static gint hf_spoolss_spoolss_UserLevel3_size2 = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfoCtr_info = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info4 = -1;
+static gint hf_spoolss_spoolss_NotifyOption_count = -1;
+static gint hf_spoolss_spoolss_GetJob_offered = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo7_guid = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_total_jobs = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_parameters = -1;
+static gint hf_spoolss_spoolss_DeletePort_server_name = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo_info5 = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_string_type = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_NUP = -1;
+static gint hf_spoolss_spoolss_RpcSetJobNamedProperty_JobId = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_hardware_id = -1;
+static gint hf_spoolss_spoolss_PortInfoFF_port_name = -1;
+static gint hf_spoolss_spoolss_FormInfo2_form_name = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_count = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_driver_name = -1;
+static gint hf_spoolss_spoolss_DriverInfo2_config_file = -1;
+static gint hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_driver_name = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_sPadding = -1;
+static gint hf_spoolss_spoolss_CorePrinterDriver_driver_version = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_driver_date = -1;
+static gint hf_spoolss_spoolss_SetForm_handle = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_architecture = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_num_error_out_of_paper = -1;
+static gint hf_spoolss_spoolss_DsPrintAction_DSPRINT_PENDING = -1;
+static gint hf_spoolss_spoolss_DeviceMode_reserved1 = -1;
+static gint hf_spoolss_spoolss_GetPrinterData_offered = -1;
+static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_driver_name = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_offered = -1;
+static gint hf_spoolss_spoolss_GetPrinterData_value_name = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE = -1;
+static gint hf_spoolss_spoolss_UserLevel3_processor = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caRedGamma = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_handle = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_job_error = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM = -1;
+static gint hf_spoolss_spoolss_SetPortInfoContainer_level = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Flags = -1;
+static gint hf_spoolss_spoolss_DriverInfo101_driver_version = -1;
+static gint hf_spoolss_spoolss_DeviceMode_defaultsource = -1;
+static gint hf_spoolss_spoolss_FormSize_width = -1;
+static gint hf_spoolss_spoolss_SetPrinter_handle = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caRedGamma = -1;
+static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyString = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_portname = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_data = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_info = -1;
+static gint hf_spoolss_spoolss_DocumentInfoCtr_info = -1;
+static gint hf_spoolss_spoolss_PrinterData_binary = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caRedGreenTint = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_version = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_hardware_id = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_flags = -1;
+static gint hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_comment = -1;
+static gint hf_spoolss_spoolss_PortInfo2_monitor_name = -1;
+static gint hf_spoolss_spoolss_FormInfo2_lang_id = -1;
+static gint hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_processor_type = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_printer_driver_attributes = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_value_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_session_counter = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_job_id = -1;
+static gint hf_spoolss__spoolss_EnumMonitors_buffer = -1;
+static gint hf_spoolss_spoolss_JobInfo2_driver_name = -1;
+static gint hf_spoolss_spoolss_DriverFileInfo_file_version = -1;
+static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_size = -1;
+static gint hf_spoolss_spoolss_DeletePerMachineConnection_printername = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_driver_version = -1;
+static gint hf_spoolss_spoolss_JobInfo2_user_name = -1;
+static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_change_low = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_spooling = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_OFFLINE = -1;
+static gint hf_spoolss_spoolss_EndPagePrinter_handle = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo3__ndr_size_dependent_files = -1;
+static gint hf_spoolss_spoolss_SetForm_form_name = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_level = -1;
+static gint hf_spoolss_spoolss_AddPrintProcessor_path_name = -1;
+static gint hf_spoolss_spoolss_PortData2_port_monitor_mib_index = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_driver_path = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo_info6 = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_help_file = -1;
+static gint hf_spoolss___spoolss_EnumJobs_count = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceWhite = -1;
+static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_driver_count = -1;
+static gint hf_spoolss_spoolss_ReplyOpenPrinter_handle = -1;
+static gint hf_spoolss_spoolss_JobInfo2_time = -1;
+static gint hf_spoolss_spoolss_PrinterInfo1_flags = -1;
+static gint hf_spoolss_spoolss_PortData1_version = -1;
+static gint hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_offered = -1;
+static gint hf_spoolss_spoolss_PortInfo3_status_string = -1;
+static gint hf_spoolss_spoolss_SetPrinterData_data = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4__devmode_ptr = -1;
+static gint hf_spoolss_spoolss_GetJob_level = -1;
+static gint hf_spoolss_spoolss_DeviceMode_ttoption = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_info_ = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_aOptions = -1;
+static gint hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info3 = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wVer = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_iLayout = -1;
+static gint hf_spoolss_spoolss_PortData1_device_type = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_info = -1;
+static gint hf_spoolss_spoolss_DeviceMode_displayflags = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA351_wchEPSFile = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info9 = -1;
+static gint hf_spoolss_spoolss_Time_day_of_week = -1;
+static gint hf_spoolss_spoolss_JobInfo1_text_status = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_servername = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB = -1;
+static gint hf_spoolss_spoolss_SetPrinterData_type = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_processor_type = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo5_transmission_retry_timeout = -1;
+static gint hf_spoolss_spoolss_FormInfo_info2 = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_ERROR = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_needed = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel = -1;
+static gint hf_spoolss_spoolss_GetPrinterDataEx_data = -1;
+static gint hf_spoolss_spoolss_AddPrinter_server = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3 = -1;
+static gint hf_spoolss_spoolss_DeviceMode_pelswidth = -1;
+static gint hf_spoolss_spoolss_DeviceMode_orientation = -1;
+static gint hf_spoolss_spoolss_EnumForms_info = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwChecksum32 = -1;
+static gint hf_spoolss_spoolss_NotifyOptionType_u1 = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceBlack = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_size = -1;
+static gint hf_spoolss_spoolss_AddPrinterEx_server = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_color_profiles = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_count = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_pages_printed = -1;
+static gint hf_spoolss__spoolss_EnumPrinters_offered = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_print_processor = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caBlueGamma = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_until_time = -1;
+static gint hf_spoolss___spoolss_EnumForms_count = -1;
+static gint hf_spoolss_spoolss_DriverInfo_info101 = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER = -1;
+static gint hf_spoolss_spoolss_SetJobInfo_info1 = -1;
+static gint hf_spoolss_spoolss_MonitorInfo2_dll_name = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinter_flags = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_client_minor_version = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwBookletFlags = -1;
+static gint hf_spoolss_spoolss_OpenPrinter_access_mask = -1;
+static gint hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_level = -1;
+static gint hf_spoolss_RPC_BIDI_REQUEST_DATA_data = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_wVer = -1;
+static gint hf_spoolss_spoolss_AddJob_handle = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver_architecture = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_type = -1;
+static gint hf_spoolss_spoolss_DriverInfo8_previous_names = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer = -1;
+static gint hf_spoolss_spoolss_JobInfo2_devmode = -1;
+static gint hf_spoolss_spoolss_JTEXP_dwSize = -1;
+static gint hf_spoolss_spoolss_PortVarContainer_monitor_data_size = -1;
+static gint hf_spoolss_spoolss_EnumJobs_numjobs = -1;
+static gint hf_spoolss__spoolss_EnumJobs_firstjob = -1;
+static gint hf_spoolss_spoolss_XcvData__in_data_length = -1;
+static gint hf_spoolss_spoolss_SetPrinter_info_ctr = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_processor_architecture = -1;
+static gint hf_spoolss_spoolss_ResetPrinter_devmode_ctr = -1;
+static gint hf_spoolss_spoolss_PrinterInfo5_transmission_retry_timeout = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER = -1;
+static gint hf_spoolss_spoolss_OpenPrinterEx_userlevel_ctr = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_dependent_files = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA_dwOptions = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwX = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo0_cjobs = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB = -1;
+static gint hf_spoolss___spoolss_EnumMonitors_count = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcessors_servername = -1;
+static gint hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr = -1;
+static gint hf_spoolss_werror = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_servername = -1;
+static gint hf_spoolss_spoolss_AddJob_level = -1;
+static gint hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_USE = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_data_type = -1;
+static gint hf_spoolss_spoolss_AddMonitorInfo2_environment = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8__ndr_size_previous_names = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverEx_servername = -1;
+static gint hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH = -1;
+static gint hf_spoolss_spoolss_JobInfo4_submitted = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_version = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM = -1;
+static gint hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED = -1;
+static gint hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL = -1;
+static gint hf_spoolss_spoolss_FormInfo2_size = -1;
+static gint hf_spoolss_spoolss_DeletePrintProcessor_architecture = -1;
+static gint hf_spoolss_spoolss_SetJob_job_id = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DUPLEX = -1;
+static gint hf_spoolss_spoolss_EnumPrinterData_value_offered = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_architecture = -1;
+static gint hf_spoolss___spoolss_EnumPrinterDrivers_count = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_driver_attributes = -1;
+static gint hf_spoolss_spoolss_ResetPrinter_data_type = -1;
+static gint hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_aOptions = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_text_status = -1;
+static gint hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties = -1;
+static gint hf_spoolss_spoolss_JTEXP_ModelName = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caFlags = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED = -1;
+static gint hf_spoolss_spoolss_RouterReplyPrinterEx_handle = -1;
+static gint hf_spoolss_spoolss_PrintProcessorInfo_info1 = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version = -1;
+static gint hf_spoolss_spoolss_EnumJobs_offered = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLLATE = -1;
+static gint hf_spoolss_spoolss_EnumMonitors_offered = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_uniblob = -1;
+static gint hf_spoolss_spoolss_WritePrinter_handle = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_dwSignature = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_driver_path = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo5_portname = -1;
+static gint hf_spoolss_spoolss_Field_field = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo_info2 = -1;
+static gint hf_spoolss_spoolss_AddMonitorInfo_info1 = -1;
+static gint hf_spoolss_spoolss_OSVersionEx_major = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_mui_dll = -1;
+static gint hf_spoolss_spoolss_SetPortInfo2_reserved = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4__ndr_size_previous_names = -1;
+static gint hf_spoolss_spoolss_DriverInfo3_dependent_files = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo5_data_file = -1;
+static gint hf_spoolss_spoolss_AddFormInfo2_display_name = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwY = -1;
+static gint hf_spoolss_spoolss_JobInfo4_size_high = -1;
+static gint hf_spoolss_spoolss_Notify_job_id = -1;
+static gint hf_spoolss_spoolss_UserLevelCtr_user_info = -1;
+static gint hf_spoolss_spoolss_JobInfo2_priority = -1;
+static gint hf_spoolss_spoolss_PortInfo2_port_name = -1;
+static gint hf_spoolss_spoolss_JobInfo1_user_name = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_devmode = -1;
+static gint hf_spoolss_spoolss_GetPrinterData_data = -1;
+static gint hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle = -1;
+static gint hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo_info8 = -1;
+static gint hf_spoolss_spoolss_DeviceMode_collate = -1;
+static gint hf_spoolss_spoolss_DeleteForm_form_name = -1;
+static gint hf_spoolss_spoolss_Time_day = -1;
+static gint hf_spoolss_spoolss_DriverDirectoryInfo1_directory_name = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_start_time = -1;
+static gint hf_spoolss_spoolss_PrinterInfo_info6 = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_printprocessor = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwWidthOffset = -1;
+static gint hf_spoolss_spoolss_ReplyOpenPrinter_server_name = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_config_version = -1;
+static gint hf_spoolss_spoolss_OpenPrinterEx_handle = -1;
+static gint hf_spoolss___spoolss_EnumPrintProcessors_count = -1;
+static gint hf_spoolss_spoolss_PortData1_dblspool = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_wSize = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_data_type = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_config_file = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo6_monitor_name = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_TTOPTION = -1;
+static gint hf_spoolss_spoolss_DeletePrinterDriver_architecture = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData = -1;
+static gint hf_spoolss_spoolss_UNIDRVEXTRA500_dwFlags = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE = -1;
+static gint hf_spoolss_spoolss_PrinterInfo1_name = -1;
+static gint hf_spoolss_spoolss_PortData2_portname = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT = -1;
+static gint hf_spoolss_spoolss_OEM_DMEXTRA_dwSize = -1;
+static gint hf_spoolss_spoolss_AddPort_server_name = -1;
+static gint hf_spoolss_propertyBlob_pBuf = -1;
+static gint hf_spoolss_spoolss_EnumPrinters_offered = -1;
+static gint hf_spoolss_spoolss_DriverInfo7_driver_name = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo8_print_processor = -1;
+static gint hf_spoolss_spoolss_PortData1_hardware_address = -1;
+static gint hf_spoolss_UNIVERSAL_FONT_ID_ctr_fonts = -1;
+static gint hf_spoolss_spoolss_NotifyInfo_flags = -1;
+static gint hf_spoolss_spoolss_PrinterInfo4_attributes = -1;
+static gint hf_spoolss_spoolss_SetJobInfo4_submitted = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSWIDTH = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_server_name = -1;
+static gint hf_spoolss_spoolss_DeviceMode_color = -1;
+static gint hf_spoolss_spoolss_ReplyPrinterInfo_info0 = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE = -1;
+static gint hf_spoolss_spoolss_GetPrinterData_needed = -1;
+static gint hf_spoolss_spoolss_EnumPrinterDrivers_info = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq = -1;
+static gint hf_spoolss_spoolss_ReplyOpenPrinter_buffer = -1;
+static gint hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER = -1;
+static gint hf_spoolss_spoolss_JobInfo_info1 = -1;
+static gint hf_spoolss_spoolss_GetPrintProcessorDirectory_environment = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceWhite = -1;
+static gint hf_spoolss_spoolss_MonitorContainer_info = -1;
+static gint hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra400 = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_data_file = -1;
+static gint hf_spoolss_spoolss_JobInfo2_total_pages = -1;
+static gint hf_spoolss_spoolss_SetJobInfo1_priority = -1;
+static gint hf_spoolss_opnum = -1;
+static gint hf_spoolss_spoolss_NotifyOptionType_type = -1;
+static gint hf_spoolss_spoolss_WritePrinter_num_written = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_wCutSheet = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_dwSignature = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_iLayout = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriver2_level = -1;
+static gint hf_spoolss_spoolss_GetPrinterDriverDirectory_info_ = -1;
+static gint hf_spoolss_spoolss_DriverInfo6_version = -1;
+static gint hf_spoolss_spoolss_GetPrinter_offered = -1;
+static gint hf_spoolss_spoolss_JobInfo1_document_name = -1;
+static gint hf_spoolss_spoolss_EnumPrintProcessors_servername = -1;
+static gint hf_spoolss_spoolss_PrinterInfo3_secdesc_ = -1;
+static gint hf_spoolss_spoolss_DeleteForm_handle = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwOptions = -1;
+static gint hf_spoolss_spoolss_NotifyData_time = -1;
+static gint hf_spoolss_spoolss_AddPrinter_devmode_ctr = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_caFlags = -1;
+static gint hf_spoolss_spoolss_DeviceModeFields_DEVMODE_POSITION = -1;
+static gint hf_spoolss_spoolss_NotifyOption_flags = -1;
+static gint hf_spoolss_spoolss_SetJobInfo2_parameters = -1;
+static gint hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ = -1;
+static gint hf_spoolss_spoolss_EnumPorts_info = -1;
+static gint hf_spoolss_spoolss_DeviceMode_paperlength = -1;
+static gint hf_spoolss_spoolss_DriverInfo5_driver_version = -1;
+static gint hf_spoolss_spoolss_PortData2_queue = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER = -1;
+static gint hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180 = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo2_data_file = -1;
+static gint hf_spoolss_spoolss_DeviceMode_specversion = -1;
+static gint hf_spoolss_spoolss_PortInfo_info2 = -1;
+static gint hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1 = -1;
+static gint hf_spoolss_spoolss_WritePrinter__data_size = -1;
+static gint hf_spoolss_RPC_PrintPropertyValueUnion_propertyBlob = -1;
+static gint hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED = -1;
+static gint hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers = -1;
+static gint hf_spoolss_spoolss_UserLevel1_size = -1;
+static gint hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr = -1;
+static gint hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Flags = -1;
+static gint hf_spoolss_spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_needed = -1;
+static gint hf_spoolss_spoolss_AddJob_needed = -1;
+static gint hf_spoolss_spoolss_DriverInfo4_driver_name = -1;
+static gint hf_spoolss_spoolss_AddDriverInfo4_dependent_files = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_num_error_not_ready = -1;
+static gint hf_spoolss_spoolss_SetPrinterInfo2_defaultpriority = -1;
+static gint hf_spoolss_spoolss_PrinterInfo0_printername = -1;
+static gint hf_spoolss__spoolss_EnumPrintProcDataTypes_offered = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA_dwNupDirection = -1;
+static gint hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PRINTING = -1;
+static gint hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA500_caFlags = -1;
+static gint hf_spoolss_spoolss_PrinterInfo2_status = -1;
+static gint hf_spoolss_spoolss_GetForm_info_ = -1;
+static gint hf_spoolss_spoolss_PSDRVEXTRA400_wChecksum = -1;
+static gint hf_spoolss_RPC_PrintNamedProperty_propertyName = -1;
+
+static gint proto_dcerpc_spoolss = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_spoolss = {
+       0x12345678, 0x1234, 0xabcd,
+       { 0xef, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab }
+};
+static guint16 ver_dcerpc_spoolss = 1;
+
+const value_string spoolss_winreg_Type_vals[] = {
+{ 0, NULL }
+};
+static int spoolss_dissect_element_Time_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_day_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_minute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_second(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Time_millisecond(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_TimeCtr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_TimeCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_TimeCtr_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_ProcessorArchitecture_vals[] = {
+       { PROCESSOR_ARCHITECTURE_INTEL, "PROCESSOR_ARCHITECTURE_INTEL" },
+       { PROCESSOR_ARCHITECTURE_ARM, "PROCESSOR_ARCHITECTURE_ARM" },
+       { PROCESSOR_ARCHITECTURE_IA64, "PROCESSOR_ARCHITECTURE_IA64" },
+       { PROCESSOR_ARCHITECTURE_AMD64, "PROCESSOR_ARCHITECTURE_AMD64" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_ProcessorType_vals[] = {
+       { PROCESSOR_ARM, "PROCESSOR_ARM" },
+       { PROCESSOR_INTEL_386, "PROCESSOR_INTEL_386" },
+       { PROCESSOR_INTEL_486, "PROCESSOR_INTEL_486" },
+       { PROCESSOR_INTEL_PENTIUM, "PROCESSOR_INTEL_PENTIUM" },
+       { PROCESSOR_INTEL_IA64, "PROCESSOR_INTEL_IA64" },
+       { PROCESSOR_AMD_X8664, "PROCESSOR_AMD_X8664" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_MajorVersion_vals[] = {
+       { SPOOLSS_MAJOR_VERSION_NT4_95_98_ME, "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME" },
+       { SPOOLSS_MAJOR_VERSION_2000_2003_XP, "SPOOLSS_MAJOR_VERSION_2000_2003_XP" },
+       { SPOOLSS_MAJOR_VERSION_2008_VISTA, "SPOOLSS_MAJOR_VERSION_2008_VISTA" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_MinorVersion_vals[] = {
+       { SPOOLSS_MINOR_VERSION_0, "SPOOLSS_MINOR_VERSION_0" },
+       { SPOOLSS_MINOR_VERSION_XP, "SPOOLSS_MINOR_VERSION_XP" },
+       { SPOOLSS_MINOR_VERSION_2003_XP64, "SPOOLSS_MINOR_VERSION_2003_XP64" },
+       { SPOOLSS_MINOR_VERSION_98, "SPOOLSS_MINOR_VERSION_98" },
+       { SPOOLSS_MINOR_VERSION_ME, "SPOOLSS_MINOR_VERSION_ME" },
+{ 0, NULL }
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAUSED_tfs = {
+   "PRINTER_STATUS_PAUSED is SET",
+   "PRINTER_STATUS_PAUSED is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_ERROR_tfs = {
+   "PRINTER_STATUS_ERROR is SET",
+   "PRINTER_STATUS_ERROR is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION_tfs = {
+   "PRINTER_STATUS_PENDING_DELETION is SET",
+   "PRINTER_STATUS_PENDING_DELETION is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM_tfs = {
+   "PRINTER_STATUS_PAPER_JAM is SET",
+   "PRINTER_STATUS_PAPER_JAM is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT_tfs = {
+   "PRINTER_STATUS_PAPER_OUT is SET",
+   "PRINTER_STATUS_PAPER_OUT is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED_tfs = {
+   "PRINTER_STATUS_MANUAL_FEED is SET",
+   "PRINTER_STATUS_MANUAL_FEED is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM_tfs = {
+   "PRINTER_STATUS_PAPER_PROBLEM is SET",
+   "PRINTER_STATUS_PAPER_PROBLEM is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE_tfs = {
+   "PRINTER_STATUS_OFFLINE is SET",
+   "PRINTER_STATUS_OFFLINE is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE_tfs = {
+   "PRINTER_STATUS_IO_ACTIVE is SET",
+   "PRINTER_STATUS_IO_ACTIVE is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_BUSY_tfs = {
+   "PRINTER_STATUS_BUSY is SET",
+   "PRINTER_STATUS_BUSY is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PRINTING_tfs = {
+   "PRINTER_STATUS_PRINTING is SET",
+   "PRINTER_STATUS_PRINTING is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL_tfs = {
+   "PRINTER_STATUS_OUTPUT_BIN_FULL is SET",
+   "PRINTER_STATUS_OUTPUT_BIN_FULL is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE_tfs = {
+   "PRINTER_STATUS_NOT_AVAILABLE is SET",
+   "PRINTER_STATUS_NOT_AVAILABLE is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_WAITING_tfs = {
+   "PRINTER_STATUS_WAITING is SET",
+   "PRINTER_STATUS_WAITING is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING_tfs = {
+   "PRINTER_STATUS_PROCESSING is SET",
+   "PRINTER_STATUS_PROCESSING is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING_tfs = {
+   "PRINTER_STATUS_INITIALIZING is SET",
+   "PRINTER_STATUS_INITIALIZING is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP_tfs = {
+   "PRINTER_STATUS_WARMING_UP is SET",
+   "PRINTER_STATUS_WARMING_UP is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW_tfs = {
+   "PRINTER_STATUS_TONER_LOW is SET",
+   "PRINTER_STATUS_TONER_LOW is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER_tfs = {
+   "PRINTER_STATUS_NO_TONER is SET",
+   "PRINTER_STATUS_NO_TONER is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT_tfs = {
+   "PRINTER_STATUS_PAGE_PUNT is SET",
+   "PRINTER_STATUS_PAGE_PUNT is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION_tfs = {
+   "PRINTER_STATUS_USER_INTERVENTION is SET",
+   "PRINTER_STATUS_USER_INTERVENTION is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY_tfs = {
+   "PRINTER_STATUS_OUT_OF_MEMORY is SET",
+   "PRINTER_STATUS_OUT_OF_MEMORY is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN_tfs = {
+   "PRINTER_STATUS_DOOR_OPEN is SET",
+   "PRINTER_STATUS_DOOR_OPEN is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN_tfs = {
+   "PRINTER_STATUS_SERVER_UNKNOWN is SET",
+   "PRINTER_STATUS_SERVER_UNKNOWN is NOT SET",
+};
+static const true_false_string spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE_tfs = {
+   "PRINTER_STATUS_POWER_SAVE is SET",
+   "PRINTER_STATUS_POWER_SAVE is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_PAUSED_tfs = {
+   "JOB_STATUS_PAUSED is SET",
+   "JOB_STATUS_PAUSED is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_ERROR_tfs = {
+   "JOB_STATUS_ERROR is SET",
+   "JOB_STATUS_ERROR is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_DELETING_tfs = {
+   "JOB_STATUS_DELETING is SET",
+   "JOB_STATUS_DELETING is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_SPOOLING_tfs = {
+   "JOB_STATUS_SPOOLING is SET",
+   "JOB_STATUS_SPOOLING is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_PRINTING_tfs = {
+   "JOB_STATUS_PRINTING is SET",
+   "JOB_STATUS_PRINTING is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_OFFLINE_tfs = {
+   "JOB_STATUS_OFFLINE is SET",
+   "JOB_STATUS_OFFLINE is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_PAPEROUT_tfs = {
+   "JOB_STATUS_PAPEROUT is SET",
+   "JOB_STATUS_PAPEROUT is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_PRINTED_tfs = {
+   "JOB_STATUS_PRINTED is SET",
+   "JOB_STATUS_PRINTED is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_DELETED_tfs = {
+   "JOB_STATUS_DELETED is SET",
+   "JOB_STATUS_DELETED is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ_tfs = {
+   "JOB_STATUS_BLOCKED_DEVQ is SET",
+   "JOB_STATUS_BLOCKED_DEVQ is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION_tfs = {
+   "JOB_STATUS_USER_INTERVENTION is SET",
+   "JOB_STATUS_USER_INTERVENTION is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_RESTART_tfs = {
+   "JOB_STATUS_RESTART is SET",
+   "JOB_STATUS_RESTART is NOT SET",
+};
+static const true_false_string spoolss_JobStatus_JOB_STATUS_COMPLETE_tfs = {
+   "JOB_STATUS_COMPLETE is SET",
+   "JOB_STATUS_COMPLETE is NOT SET",
+};
+const value_string spoolss_spoolss_Build_vals[] = {
+       { SPOOLSS_DEBUGGING_BUILD, "SPOOLSS_DEBUGGING_BUILD" },
+       { SPOOLSS_RELEASE_BUILD, "SPOOLSS_RELEASE_BUILD" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_PrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_DM_Signature_vals[] = {
+       { SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA, "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA" },
+       { SPOOLSS_DM_SIGNATURE_JTEXP, "SPOOLSS_DM_SIGNATURE_JTEXP" },
+       { SPOOLSS_DM_SIGNATURE_PSEXTRA, "SPOOLSS_DM_SIGNATURE_PSEXTRA" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DM_Layout_vals[] = {
+       { SPOOLSS_DM_LAYOUT_NUP_DISABLED, "SPOOLSS_DM_LAYOUT_NUP_DISABLED" },
+       { SPOOLSS_DM_LAYOUT_NUP_2, "SPOOLSS_DM_LAYOUT_NUP_2" },
+       { SPOOLSS_DM_LAYOUT_NUP_4, "SPOOLSS_DM_LAYOUT_NUP_4" },
+       { SPOOLSS_DM_LAYOUT_NUP_6, "SPOOLSS_DM_LAYOUT_NUP_6" },
+       { SPOOLSS_DM_LAYOUT_NUP_9, "SPOOLSS_DM_LAYOUT_NUP_9" },
+       { SPOOLSS_DM_LAYOUT_NUP_16, "SPOOLSS_DM_LAYOUT_NUP_16" },
+       { SPOOLSS_DM_LAYOUT_BOOKLET, "SPOOLSS_DM_LAYOUT_BOOKLET" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DM_NupDirection_vals[] = {
+       { SPOOLSS_DM_NUP_DIRECTION_L2R_T2B, "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B" },
+       { SPOOLSS_DM_NUP_DIRECTION_T2B_L2R, "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R" },
+       { SPOOLSS_DM_NUP_DIRECTION_R2L_T2B, "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B" },
+       { SPOOLSS_DM_NUP_DIRECTION_T2B_R2L, "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DM_NupBorderFlags_vals[] = {
+       { SPOOLSS_DM_NUP_BORDER_PRINT, "SPOOLSS_DM_NUP_BORDER_PRINT" },
+       { SPOOLSS_DM_NUP_BORDER_NONE, "SPOOLSS_DM_NUP_BORDER_NONE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DM_BookletFlags_vals[] = {
+       { SPOOLSS_DM_BOOKLET_LEFT_FLIP, "SPOOLSS_DM_BOOKLET_LEFT_FLIP" },
+       { SPOOLSS_DM_BOOKLET_RIGHT_FLIP, "SPOOLSS_DM_BOOKLET_RIGHT_FLIP" },
+{ 0, NULL }
+};
+static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER_tfs = {
+   "SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER is SET",
+   "SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER is NOT SET",
+};
+static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR_tfs = {
+   "SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR is SET",
+   "SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR is NOT SET",
+};
+static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE_tfs = {
+   "SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE is SET",
+   "SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE is NOT SET",
+};
+static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP_tfs = {
+   "SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP is SET",
+   "SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP is NOT SET",
+};
+static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180_tfs = {
+   "SPOOLSS_DM_PS_FLAGS_ROTATE_180 is SET",
+   "SPOOLSS_DM_PS_FLAGS_ROTATE_180 is NOT SET",
+};
+static const true_false_string spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL_tfs = {
+   "SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL is SET",
+   "SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL is NOT SET",
+};
+static int spoolss_dissect_element_PSDRVEXTRA351_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA351_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_wChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_DMPS_Dialect_vals[] = {
+       { SPOOLSS_DM_PS_OPTIMIZE_SPEED, "SPOOLSS_DM_PS_OPTIMIZE_SPEED" },
+       { SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY, "SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY" },
+       { SPOOLSS_DM_PS_OPTIMIZE_EPS, "SPOOLSS_DM_PS_OPTIMIZE_EPS" },
+       { SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL, "SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DMPS_TTDLFmt_vals[] = {
+       { SPOOLSS_DM_PS_TTDLFMT_DEFAULT, "SPOOLSS_DM_PS_TTDLFMT_DEFAULT" },
+       { SPOOLSS_DM_PS_TTDLFMT_TYPE_1, "SPOOLSS_DM_PS_TTDLFMT_TYPE_1" },
+       { SPOOLSS_DM_PS_TTDLFMT_TYPE_3, "SPOOLSS_DM_PS_TTDLFMT_TYPE_3" },
+       { SPOOLSS_DM_PS_TTDLFMT_TYPE_42, "SPOOLSS_DM_PS_TTDLFMT_TYPE_42" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DMPS_PSLevel_vals[] = {
+       { SPOOLSS_DM_PS_PSLEVEL_1, "SPOOLSS_DM_PS_PSLEVEL_1" },
+       { SPOOLSS_DM_PS_PSLEVEL_2, "SPOOLSS_DM_PS_PSLEVEL_2" },
+       { SPOOLSS_DM_PS_PSLEVEL_3, "SPOOLSS_DM_PS_PSLEVEL_3" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DMPS_FeedDirection_vals[] = {
+       { SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST, "SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST" },
+       { SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST, "SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST" },
+       { SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN, "SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN" },
+       { SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN, "SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_PSDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PSDRVEXTRA_dwPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_DMUNI_Quality_vals[] = {
+       { SPOOLSS_DM_UNI_QUALITY_BEST, "SPOOLSS_DM_UNI_QUALITY_BEST" },
+       { SPOOLSS_DM_UNI_QUALITY_MEDIUM, "SPOOLSS_DM_UNI_QUALITY_MEDIUM" },
+       { SPOOLSS_DM_UNI_QUALITY_DRAFT, "SPOOLSS_DM_UNI_QUALITY_DRAFT" },
+{ 0, NULL }
+};
+static const true_false_string spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS_tfs = {
+   "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS is SET",
+   "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS is NOT SET",
+};
+static const true_false_string spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL_tfs = {
+   "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL is SET",
+   "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL is NOT SET",
+};
+static const true_false_string spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING_tfs = {
+   "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING is SET",
+   "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING is NOT SET",
+};
+static int spoolss_dissect_element_UNIDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_sPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_wJTHdrSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_wCoreMFOSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_ModelName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JTEXP_FeatureOptionPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OEM_DMEXTRA_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OEM_DMEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OEM_DMEXTRA_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OEM_DMEXTRA_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra351(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra400(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataPostScript_psblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra3_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeExtraDataUniDriver_uniblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_ORIENTATION_tfs = {
+   "DEVMODE_ORIENTATION is SET",
+   "DEVMODE_ORIENTATION is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PAPERSIZE_tfs = {
+   "DEVMODE_PAPERSIZE is SET",
+   "DEVMODE_PAPERSIZE is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH_tfs = {
+   "DEVMODE_PAPERLENGTH is SET",
+   "DEVMODE_PAPERLENGTH is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH_tfs = {
+   "DEVMODE_PAPERWIDTH is SET",
+   "DEVMODE_PAPERWIDTH is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_SCALE_tfs = {
+   "DEVMODE_SCALE is SET",
+   "DEVMODE_SCALE is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_POSITION_tfs = {
+   "DEVMODE_POSITION is SET",
+   "DEVMODE_POSITION is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_NUP_tfs = {
+   "DEVMODE_NUP is SET",
+   "DEVMODE_NUP is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_COPIES_tfs = {
+   "DEVMODE_COPIES is SET",
+   "DEVMODE_COPIES is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE_tfs = {
+   "DEVMODE_DEFAULTSOURCE is SET",
+   "DEVMODE_DEFAULTSOURCE is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY_tfs = {
+   "DEVMODE_PRINTQUALITY is SET",
+   "DEVMODE_PRINTQUALITY is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_COLOR_tfs = {
+   "DEVMODE_COLOR is SET",
+   "DEVMODE_COLOR is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_DUPLEX_tfs = {
+   "DEVMODE_DUPLEX is SET",
+   "DEVMODE_DUPLEX is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_YRESOLUTION_tfs = {
+   "DEVMODE_YRESOLUTION is SET",
+   "DEVMODE_YRESOLUTION is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_TTOPTION_tfs = {
+   "DEVMODE_TTOPTION is SET",
+   "DEVMODE_TTOPTION is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_COLLATE_tfs = {
+   "DEVMODE_COLLATE is SET",
+   "DEVMODE_COLLATE is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_FORMNAME_tfs = {
+   "DEVMODE_FORMNAME is SET",
+   "DEVMODE_FORMNAME is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_LOGPIXELS_tfs = {
+   "DEVMODE_LOGPIXELS is SET",
+   "DEVMODE_LOGPIXELS is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_BITSPERPEL_tfs = {
+   "DEVMODE_BITSPERPEL is SET",
+   "DEVMODE_BITSPERPEL is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PELSWIDTH_tfs = {
+   "DEVMODE_PELSWIDTH is SET",
+   "DEVMODE_PELSWIDTH is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT_tfs = {
+   "DEVMODE_PELSHEIGHT is SET",
+   "DEVMODE_PELSHEIGHT is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS_tfs = {
+   "DEVMODE_DISPLAYFLAGS is SET",
+   "DEVMODE_DISPLAYFLAGS is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY_tfs = {
+   "DEVMODE_DISPLAYFREQUENCY is SET",
+   "DEVMODE_DISPLAYFREQUENCY is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_ICMMETHOD_tfs = {
+   "DEVMODE_ICMMETHOD is SET",
+   "DEVMODE_ICMMETHOD is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_ICMINTENT_tfs = {
+   "DEVMODE_ICMINTENT is SET",
+   "DEVMODE_ICMINTENT is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_MEDIATYPE_tfs = {
+   "DEVMODE_MEDIATYPE is SET",
+   "DEVMODE_MEDIATYPE is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_DITHERTYPE_tfs = {
+   "DEVMODE_DITHERTYPE is SET",
+   "DEVMODE_DITHERTYPE is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH_tfs = {
+   "DEVMODE_PANNINGWIDTH is SET",
+   "DEVMODE_PANNINGWIDTH is NOT SET",
+};
+static const true_false_string spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT_tfs = {
+   "DEVMODE_PANNINGHEIGHT is SET",
+   "DEVMODE_PANNINGHEIGHT is NOT SET",
+};
+const value_string spoolss_spoolss_DeviceModeSpecVersion_vals[] = {
+       { DMSPEC_NT3, "DMSPEC_NT3" },
+       { DMSPEC_WIN95_98_ME, "DMSPEC_WIN95_98_ME" },
+       { DMSPEC_NT4_AND_ABOVE, "DMSPEC_NT4_AND_ABOVE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeOrientation_vals[] = {
+       { DMORIENT_PORTRAIT, "DMORIENT_PORTRAIT" },
+       { DMORIENT_LANDSCAPE, "DMORIENT_LANDSCAPE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModePaperSize_vals[] = {
+       { DMPAPER_LETTER, "DMPAPER_LETTER" },
+       { DMPAPER_LETTERSMALL, "DMPAPER_LETTERSMALL" },
+       { DMPAPER_TABLOID, "DMPAPER_TABLOID" },
+       { DMPAPER_LEDGER, "DMPAPER_LEDGER" },
+       { DMPAPER_LEGAL, "DMPAPER_LEGAL" },
+       { DMPAPER_STATEMENT, "DMPAPER_STATEMENT" },
+       { DMPAPER_EXECUTIVE, "DMPAPER_EXECUTIVE" },
+       { DMPAPER_A3, "DMPAPER_A3" },
+       { DMPAPER_A4, "DMPAPER_A4" },
+       { DMPAPER_A4SMALL, "DMPAPER_A4SMALL" },
+       { DMPAPER_A5, "DMPAPER_A5" },
+       { DMPAPER_B4, "DMPAPER_B4" },
+       { DMPAPER_B5, "DMPAPER_B5" },
+       { DMPAPER_FOLIO, "DMPAPER_FOLIO" },
+       { DMPAPER_QUARTO, "DMPAPER_QUARTO" },
+       { DMPAPER_10X14, "DMPAPER_10X14" },
+       { DMPAPER_11X17, "DMPAPER_11X17" },
+       { DMPAPER_NOTE, "DMPAPER_NOTE" },
+       { DMPAPER_ENV_9, "DMPAPER_ENV_9" },
+       { DMPAPER_ENV_10, "DMPAPER_ENV_10" },
+       { DMPAPER_ENV_11, "DMPAPER_ENV_11" },
+       { DMPAPER_ENV_12, "DMPAPER_ENV_12" },
+       { DMPAPER_ENV_14, "DMPAPER_ENV_14" },
+       { DMPAPER_CSHEET, "DMPAPER_CSHEET" },
+       { DMPAPER_DSHEET, "DMPAPER_DSHEET" },
+       { DMPAPER_ESHEET, "DMPAPER_ESHEET" },
+       { DMPAPER_ENV_DL, "DMPAPER_ENV_DL" },
+       { DMPAPER_ENV_C5, "DMPAPER_ENV_C5" },
+       { DMPAPER_ENV_C3, "DMPAPER_ENV_C3" },
+       { DMPAPER_ENV_C4, "DMPAPER_ENV_C4" },
+       { DMPAPER_ENV_C6, "DMPAPER_ENV_C6" },
+       { DMPAPER_ENV_C65, "DMPAPER_ENV_C65" },
+       { DMPAPER_ENV_B4, "DMPAPER_ENV_B4" },
+       { DMPAPER_ENV_B5, "DMPAPER_ENV_B5" },
+       { DMPAPER_ENV_B6, "DMPAPER_ENV_B6" },
+       { DMPAPER_ENV_ITALY, "DMPAPER_ENV_ITALY" },
+       { DMPAPER_ENV_MONARCH, "DMPAPER_ENV_MONARCH" },
+       { DMPAPER_ENV_PERSONAL, "DMPAPER_ENV_PERSONAL" },
+       { DMPAPER_FANFOLD_US, "DMPAPER_FANFOLD_US" },
+       { DMPAPER_FANFOLD_STD_GERMAN, "DMPAPER_FANFOLD_STD_GERMAN" },
+       { DMPAPER_FANFOLD_LGL_GERMAN, "DMPAPER_FANFOLD_LGL_GERMAN" },
+       { DMPAPER_DBL_JAPANESE_POSTCARD, "DMPAPER_DBL_JAPANESE_POSTCARD" },
+       { DMPAPER_A6, "DMPAPER_A6" },
+       { DMPAPER_JENV_KAKU2, "DMPAPER_JENV_KAKU2" },
+       { DMPAPER_JENV_KAKU3, "DMPAPER_JENV_KAKU3" },
+       { DMPAPER_JENV_CHOU3, "DMPAPER_JENV_CHOU3" },
+       { DMPAPER_JENV_CHOU4, "DMPAPER_JENV_CHOU4" },
+       { DMPAPER_LETTER_ROTATED, "DMPAPER_LETTER_ROTATED" },
+       { DMPAPER_A3_ROTATED, "DMPAPER_A3_ROTATED" },
+       { DMPAPER_A4_ROTATED, "DMPAPER_A4_ROTATED" },
+       { DMPAPER_A5_ROTATED, "DMPAPER_A5_ROTATED" },
+       { DMPAPER_B4_JIS_ROTATED, "DMPAPER_B4_JIS_ROTATED" },
+       { DMPAPER_B5_JIS_ROTATED, "DMPAPER_B5_JIS_ROTATED" },
+       { DMPAPER_JAPANESE_POSTCARD_ROTATED, "DMPAPER_JAPANESE_POSTCARD_ROTATED" },
+       { DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED, "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED" },
+       { DMPAPER_A6_ROTATED, "DMPAPER_A6_ROTATED" },
+       { DMPAPER_JENV_KAKU2_ROTATED, "DMPAPER_JENV_KAKU2_ROTATED" },
+       { DMPAPER_JENV_KAKU3_ROTATED, "DMPAPER_JENV_KAKU3_ROTATED" },
+       { DMPAPER_JENV_CHOU3_ROTATED, "DMPAPER_JENV_CHOU3_ROTATED" },
+       { DMPAPER_JENV_CHOU4_ROTATED, "DMPAPER_JENV_CHOU4_ROTATED" },
+       { DMPAPER_B6_JIS, "DMPAPER_B6_JIS" },
+       { DMPAPER_B6_JIS_ROTATED, "DMPAPER_B6_JIS_ROTATED" },
+       { DMPAPER_12X11, "DMPAPER_12X11" },
+       { DMPAPER_JENV_YOU4, "DMPAPER_JENV_YOU4" },
+       { DMPAPER_JENV_YOU4_ROTATED, "DMPAPER_JENV_YOU4_ROTATED" },
+       { DMPAPER_P16K, "DMPAPER_P16K" },
+       { DMPAPER_P32K, "DMPAPER_P32K" },
+       { DMPAPER_P32KBIG, "DMPAPER_P32KBIG" },
+       { DMPAPER_PENV_1, "DMPAPER_PENV_1" },
+       { DMPAPER_PENV_2, "DMPAPER_PENV_2" },
+       { DMPAPER_PENV_3, "DMPAPER_PENV_3" },
+       { DMPAPER_PENV_4, "DMPAPER_PENV_4" },
+       { DMPAPER_PENV_5, "DMPAPER_PENV_5" },
+       { DMPAPER_PENV_6, "DMPAPER_PENV_6" },
+       { DMPAPER_PENV_7, "DMPAPER_PENV_7" },
+       { DMPAPER_PENV_8, "DMPAPER_PENV_8" },
+       { DMPAPER_PENV_9, "DMPAPER_PENV_9" },
+       { DMPAPER_PENV_10, "DMPAPER_PENV_10" },
+       { DMPAPER_P16K_ROTATED, "DMPAPER_P16K_ROTATED" },
+       { DMPAPER_P32K_ROTATED, "DMPAPER_P32K_ROTATED" },
+       { DMPAPER_P32KBIG_ROTATED, "DMPAPER_P32KBIG_ROTATED" },
+       { DMPAPER_PENV_1_ROTATED, "DMPAPER_PENV_1_ROTATED" },
+       { DMPAPER_PENV_2_ROTATED, "DMPAPER_PENV_2_ROTATED" },
+       { DMPAPER_PENV_3_ROTATED, "DMPAPER_PENV_3_ROTATED" },
+       { DMPAPER_PENV_4_ROTATED, "DMPAPER_PENV_4_ROTATED" },
+       { DMPAPER_PENV_5_ROTATED, "DMPAPER_PENV_5_ROTATED" },
+       { DMPAPER_PENV_6_ROTATED, "DMPAPER_PENV_6_ROTATED" },
+       { DMPAPER_PENV_7_ROTATED, "DMPAPER_PENV_7_ROTATED" },
+       { DMPAPER_PENV_8_ROTATED, "DMPAPER_PENV_8_ROTATED" },
+       { DMPAPER_PENV_9_ROTATED, "DMPAPER_PENV_9_ROTATED" },
+       { DMPAPER_PENV_10_ROTATED, "DMPAPER_PENV_10_ROTATED" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeDefaultSource_vals[] = {
+       { DMBIN_UPPER, "DMBIN_UPPER" },
+       { DMBIN_LOWER, "DMBIN_LOWER" },
+       { DMBIN_MIDDLE, "DMBIN_MIDDLE" },
+       { DMBIN_MANUAL, "DMBIN_MANUAL" },
+       { DMBIN_ENVELOPE, "DMBIN_ENVELOPE" },
+       { DMBIN_ENVMANUAL, "DMBIN_ENVMANUAL" },
+       { DMBIN_AUTO, "DMBIN_AUTO" },
+       { DMBIN_TRACTOR, "DMBIN_TRACTOR" },
+       { DMBIN_SMALLFMT, "DMBIN_SMALLFMT" },
+       { DMBIN_LARGEFMT, "DMBIN_LARGEFMT" },
+       { DMBIN_LARGECAPACITY, "DMBIN_LARGECAPACITY" },
+       { DMBIN_CASSETTE, "DMBIN_CASSETTE" },
+       { DMBIN_FORMSOURCE, "DMBIN_FORMSOURCE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModePrintQuality_vals[] = {
+       { DMRES_HIGH, "DMRES_HIGH" },
+       { DMRES_MEDIUM, "DMRES_MEDIUM" },
+       { DMRES_LOW, "DMRES_LOW" },
+       { DMRES_DRAFT, "DMRES_DRAFT" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeColor_vals[] = {
+       { DMRES_MONOCHROME, "DMRES_MONOCHROME" },
+       { DMRES_COLOR, "DMRES_COLOR" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeDuplex_vals[] = {
+       { DMDUP_SIMPLEX, "DMDUP_SIMPLEX" },
+       { DMDUP_VERTICAL, "DMDUP_VERTICAL" },
+       { DMDUP_HORIZONTAL, "DMDUP_HORIZONTAL" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeTTOption_vals[] = {
+       { DMTT_BITMAP, "DMTT_BITMAP" },
+       { DMTT_DOWNLOAD, "DMTT_DOWNLOAD" },
+       { DMTT_SUBDEV, "DMTT_SUBDEV" },
+       { DMTT_DOWNLOAD_OUTLINE, "DMTT_DOWNLOAD_OUTLINE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeCollate_vals[] = {
+       { DMCOLLATE_FALSE, "DMCOLLATE_FALSE" },
+       { DMCOLLATE_TRUE, "DMCOLLATE_TRUE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeNUp_vals[] = {
+       { DMNUP_SYSTEM, "DMNUP_SYSTEM" },
+       { DMNUP_ONEUP, "DMNUP_ONEUP" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeICMMethod_vals[] = {
+       { DMICMMETHOD_NONE, "DMICMMETHOD_NONE" },
+       { DMICMMETHOD_SYSTEM, "DMICMMETHOD_SYSTEM" },
+       { DMICMMETHOD_DRIVER, "DMICMMETHOD_DRIVER" },
+       { DMICMMETHOD_DEVICE, "DMICMMETHOD_DEVICE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeICMIntent_vals[] = {
+       { DMICM_SATURATE, "DMICM_SATURATE" },
+       { DMICM_CONTRAST, "DMICM_CONTRAST" },
+       { DMICM_COLORIMETRIC, "DMICM_COLORIMETRIC" },
+       { DMICM_ABS_COLORIMETRIC, "DMICM_ABS_COLORIMETRIC" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeMediaType_vals[] = {
+       { DMMEDIA_STANDARD, "DMMEDIA_STANDARD" },
+       { DMMEDIA_TRANSPARENCY, "DMMEDIA_TRANSPARENCY" },
+       { DMMEDIA_GLOSSY, "DMMEDIA_GLOSSY" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_DeviceModeDitherType_vals[] = {
+       { DMDITHER_NONE, "DMDITHER_NONE" },
+       { DMDITHER_COARSE, "DMDITHER_COARSE" },
+       { DMDITHER_FINE, "DMDITHER_FINE" },
+       { DMDITHER_LINEART, "DMDITHER_LINEART" },
+       { DMDITHER_ERRORDIFFUSION, "DMDITHER_ERRORDIFFUSION" },
+       { DMDITHER_RESERVED6, "DMDITHER_RESERVED6" },
+       { DMDITHER_RESERVED7, "DMDITHER_RESERVED7" },
+       { DMDITHER_RESERVED8, "DMDITHER_RESERVED8" },
+       { DMDITHER_RESERVED9, "DMDITHER_RESERVED9" },
+       { DMDITHER_GRAYSCALE, "DMDITHER_GRAYSCALE" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_DeviceMode_devicename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_devicename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_specversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_driverversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode___driverextra_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_orientation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_papersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_paperlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_paperwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_scale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_copies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_defaultsource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_printquality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_duplex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_yresolution(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_ttoption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_collate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_logpixels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_bitsperpel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_pelswidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_pelsheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_displayflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_displayfrequency(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_icmmethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_icmintent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_mediatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_dithertype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_panningwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_panningheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_driverextra_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceMode_driverextra_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT_tfs = {
+   "PRINTER_ENUM_DEFAULT is SET",
+   "PRINTER_ENUM_DEFAULT is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL_tfs = {
+   "PRINTER_ENUM_LOCAL is SET",
+   "PRINTER_ENUM_LOCAL is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS_tfs = {
+   "PRINTER_ENUM_CONNECTIONS is SET",
+   "PRINTER_ENUM_CONNECTIONS is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE_tfs = {
+   "PRINTER_ENUM_FAVORITE is SET",
+   "PRINTER_ENUM_FAVORITE is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME_tfs = {
+   "PRINTER_ENUM_NAME is SET",
+   "PRINTER_ENUM_NAME is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE_tfs = {
+   "PRINTER_ENUM_REMOTE is SET",
+   "PRINTER_ENUM_REMOTE is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED_tfs = {
+   "PRINTER_ENUM_SHARED is SET",
+   "PRINTER_ENUM_SHARED is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK_tfs = {
+   "PRINTER_ENUM_NETWORK is SET",
+   "PRINTER_ENUM_NETWORK is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND_tfs = {
+   "PRINTER_ENUM_EXPAND is SET",
+   "PRINTER_ENUM_EXPAND is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER_tfs = {
+   "PRINTER_ENUM_CONTAINER is SET",
+   "PRINTER_ENUM_CONTAINER is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1_tfs = {
+   "PRINTER_ENUM_ICON1 is SET",
+   "PRINTER_ENUM_ICON1 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2_tfs = {
+   "PRINTER_ENUM_ICON2 is SET",
+   "PRINTER_ENUM_ICON2 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3_tfs = {
+   "PRINTER_ENUM_ICON3 is SET",
+   "PRINTER_ENUM_ICON3 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4_tfs = {
+   "PRINTER_ENUM_ICON4 is SET",
+   "PRINTER_ENUM_ICON4 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5_tfs = {
+   "PRINTER_ENUM_ICON5 is SET",
+   "PRINTER_ENUM_ICON5 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6_tfs = {
+   "PRINTER_ENUM_ICON6 is SET",
+   "PRINTER_ENUM_ICON6 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7_tfs = {
+   "PRINTER_ENUM_ICON7 is SET",
+   "PRINTER_ENUM_ICON7 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8_tfs = {
+   "PRINTER_ENUM_ICON8 is SET",
+   "PRINTER_ENUM_ICON8 is NOT SET",
+};
+static const true_false_string spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE_tfs = {
+   "PRINTER_ENUM_HIDE is SET",
+   "PRINTER_ENUM_HIDE is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED_tfs = {
+   "PRINTER_ATTRIBUTE_QUEUED is SET",
+   "PRINTER_ATTRIBUTE_QUEUED is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT_tfs = {
+   "PRINTER_ATTRIBUTE_DIRECT is SET",
+   "PRINTER_ATTRIBUTE_DIRECT is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT_tfs = {
+   "PRINTER_ATTRIBUTE_DEFAULT is SET",
+   "PRINTER_ATTRIBUTE_DEFAULT is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED_tfs = {
+   "PRINTER_ATTRIBUTE_SHARED is SET",
+   "PRINTER_ATTRIBUTE_SHARED is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK_tfs = {
+   "PRINTER_ATTRIBUTE_NETWORK is SET",
+   "PRINTER_ATTRIBUTE_NETWORK is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN_tfs = {
+   "PRINTER_ATTRIBUTE_HIDDEN is SET",
+   "PRINTER_ATTRIBUTE_HIDDEN is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL_tfs = {
+   "PRINTER_ATTRIBUTE_LOCAL is SET",
+   "PRINTER_ATTRIBUTE_LOCAL is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ_tfs = {
+   "PRINTER_ATTRIBUTE_ENABLE_DEVQ is SET",
+   "PRINTER_ATTRIBUTE_ENABLE_DEVQ is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS_tfs = {
+   "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS is SET",
+   "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST_tfs = {
+   "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST is SET",
+   "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE_tfs = {
+   "PRINTER_ATTRIBUTE_WORK_OFFLINE is SET",
+   "PRINTER_ATTRIBUTE_WORK_OFFLINE is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI_tfs = {
+   "PRINTER_ATTRIBUTE_ENABLE_BIDI is SET",
+   "PRINTER_ATTRIBUTE_ENABLE_BIDI is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY_tfs = {
+   "PRINTER_ATTRIBUTE_RAW_ONLY is SET",
+   "PRINTER_ATTRIBUTE_RAW_ONLY is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED_tfs = {
+   "PRINTER_ATTRIBUTE_PUBLISHED is SET",
+   "PRINTER_ATTRIBUTE_PUBLISHED is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX_tfs = {
+   "PRINTER_ATTRIBUTE_FAX is SET",
+   "PRINTER_ATTRIBUTE_FAX is NOT SET",
+};
+static const true_false_string spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS_tfs = {
+   "PRINTER_ATTRIBUTE_TS is SET",
+   "PRINTER_ATTRIBUTE_TS is NOT SET",
+};
+static int spoolss_dissect_element_PrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo3_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo3_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo3_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_DsPrintAction_DSPRINT_PUBLISH_tfs = {
+   "DSPRINT_PUBLISH is SET",
+   "DSPRINT_PUBLISH is NOT SET",
+};
+static const true_false_string spoolss_DsPrintAction_DSPRINT_UPDATE_tfs = {
+   "DSPRINT_UPDATE is SET",
+   "DSPRINT_UPDATE is NOT SET",
+};
+static const true_false_string spoolss_DsPrintAction_DSPRINT_UNPUBLISH_tfs = {
+   "DSPRINT_UNPUBLISH is SET",
+   "DSPRINT_UNPUBLISH is NOT SET",
+};
+static const true_false_string spoolss_DsPrintAction_DSPRINT_REPUBLISH_tfs = {
+   "DSPRINT_REPUBLISH is SET",
+   "DSPRINT_REPUBLISH is NOT SET",
+};
+static const true_false_string spoolss_DsPrintAction_DSPRINT_PENDING_tfs = {
+   "DSPRINT_PENDING is SET",
+   "DSPRINT_PENDING is NOT SET",
+};
+static int spoolss_dissect_element_PrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeInfo_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeInfo_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeviceModeInfo_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DevmodeContainer__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DevmodeContainer_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DevmodeContainer_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DevmodeContainer_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo3_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo3_next_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJobInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_JobInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_JobInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+const value_string spoolss_spoolss_JobControl_vals[] = {
+       { SPOOLSS_JOB_CONTROL_PAUSE, "SPOOLSS_JOB_CONTROL_PAUSE" },
+       { SPOOLSS_JOB_CONTROL_RESUME, "SPOOLSS_JOB_CONTROL_RESUME" },
+       { SPOOLSS_JOB_CONTROL_CANCEL, "SPOOLSS_JOB_CONTROL_CANCEL" },
+       { SPOOLSS_JOB_CONTROL_RESTART, "SPOOLSS_JOB_CONTROL_RESTART" },
+       { SPOOLSS_JOB_CONTROL_DELETE, "SPOOLSS_JOB_CONTROL_DELETE" },
+       { SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER, "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER" },
+       { SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED, "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED" },
+       { SPOOLSS_JOB_CONTROL_RETAIN, "SPOOLSS_JOB_CONTROL_RETAIN" },
+       { SPOOLSS_JOB_CONTROL_RELEASE, "SPOOLSS_JOB_CONTROL_RELEASE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_PrinterControl_vals[] = {
+       { SPOOLSS_PRINTER_CONTROL_UNPAUSE, "SPOOLSS_PRINTER_CONTROL_UNPAUSE" },
+       { SPOOLSS_PRINTER_CONTROL_PAUSE, "SPOOLSS_PRINTER_CONTROL_PAUSE" },
+       { SPOOLSS_PRINTER_CONTROL_RESUME, "SPOOLSS_PRINTER_CONTROL_RESUME" },
+       { SPOOLSS_PRINTER_CONTROL_PURGE, "SPOOLSS_PRINTER_CONTROL_PURGE" },
+       { SPOOLSS_PRINTER_CONTROL_SET_STATUS, "SPOOLSS_PRINTER_CONTROL_SET_STATUS" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_SetPrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo8_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo8_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo9_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo9_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfo_info9_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_SetPrinterInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_StringArray__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StringArray_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_DriverOSVersion_vals[] = {
+       { SPOOLSS_DRIVER_VERSION_9X, "SPOOLSS_DRIVER_VERSION_9X" },
+       { SPOOLSS_DRIVER_VERSION_NT35, "SPOOLSS_DRIVER_VERSION_NT35" },
+       { SPOOLSS_DRIVER_VERSION_NT4, "SPOOLSS_DRIVER_VERSION_NT4" },
+       { SPOOLSS_DRIVER_VERSION_200X, "SPOOLSS_DRIVER_VERSION_200X" },
+       { SPOOLSS_DRIVER_VERSION_2012, "SPOOLSS_DRIVER_VERSION_2012" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_AddDriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE_tfs = {
+   "PRINTER_DRIVER_PACKAGE_AWARE is SET",
+   "PRINTER_DRIVER_PACKAGE_AWARE is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_XPS_tfs = {
+   "PRINTER_DRIVER_XPS is SET",
+   "PRINTER_DRIVER_XPS is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED_tfs = {
+   "PRINTER_DRIVER_SANDBOX_ENABLED is SET",
+   "PRINTER_DRIVER_SANDBOX_ENABLED is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CLASS_tfs = {
+   "PRINTER_DRIVER_CLASS is SET",
+   "PRINTER_DRIVER_CLASS is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED_tfs = {
+   "PRINTER_DRIVER_DERIVED is SET",
+   "PRINTER_DRIVER_DERIVED is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE_tfs = {
+   "PRINTER_DRIVER_NOT_SHAREABLE is SET",
+   "PRINTER_DRIVER_NOT_SHAREABLE is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX_tfs = {
+   "PRINTER_DRIVER_CATEGORY_FAX is SET",
+   "PRINTER_DRIVER_CATEGORY_FAX is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE_tfs = {
+   "PRINTER_DRIVER_CATEGORY_FILE is SET",
+   "PRINTER_DRIVER_CATEGORY_FILE is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL_tfs = {
+   "PRINTER_DRIVER_CATEGORY_VIRTUAL is SET",
+   "PRINTER_DRIVER_CATEGORY_VIRTUAL is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE_tfs = {
+   "PRINTER_DRIVER_CATEGORY_SERVICE is SET",
+   "PRINTER_DRIVER_CATEGORY_SERVICE is NOT SET",
+};
+static const true_false_string spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED_tfs = {
+   "PRINTER_DRIVER_SOFT_RESET_REQUIRED is SET",
+   "PRINTER_DRIVER_SOFT_RESET_REQUIRED is NOT SET",
+};
+static int spoolss_dissect_element_AddDriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8__ndr_size_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8__ndr_size_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddDriverInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_AddDriverInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_DriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_inf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_inf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_install_source_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo7_install_source_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_DriverFileType_vals[] = {
+       { SPOOLSS_DRIVER_FILE_TYPE_RENDERING, "SPOOLSS_DRIVER_FILE_TYPE_RENDERING" },
+       { SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION, "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION" },
+       { SPOOLSS_DRIVER_FILE_TYPE_DATA, "SPOOLSS_DRIVER_FILE_TYPE_DATA" },
+       { SPOOLSS_DRIVER_FILE_TYPE_HELP, "SPOOLSS_DRIVER_FILE_TYPE_HELP" },
+       { SPOOLSS_DRIVER_FILE_TYPE_OTHER, "SPOOLSS_DRIVER_FILE_TYPE_OTHER" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_DriverFileInfo_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverFileInfo_file_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverFileInfo_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverFileInfo_file_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_file_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_file_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_file_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo101_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcessorInfo1_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcessorInfo1_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcessorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcessorDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo1_output_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo1_output_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo1_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo1_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DocumentInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_DocumentInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_OSVersion__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersion_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersion_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersion_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersion_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersion_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersion_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_service_pack_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_service_pack_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_suite_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_product_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OSVersionEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterData_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterData_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_FormFlags_vals[] = {
+       { SPOOLSS_FORM_USER, "SPOOLSS_FORM_USER" },
+       { SPOOLSS_FORM_BUILTIN, "SPOOLSS_FORM_BUILTIN" },
+       { SPOOLSS_FORM_PRINTER, "SPOOLSS_FORM_PRINTER" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_FormSize_width(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormSize_height(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormArea_left(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormArea_top(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormArea_right(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormArea_bottom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE_tfs = {
+   "SPOOLSS_FORM_STRING_TYPE_NONE is SET",
+   "SPOOLSS_FORM_STRING_TYPE_NONE is NOT SET",
+};
+static const true_false_string spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL_tfs = {
+   "SPOOLSS_FORM_STRING_TYPE_MUI_DLL is SET",
+   "SPOOLSS_FORM_STRING_TYPE_MUI_DLL is NOT SET",
+};
+static const true_false_string spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR_tfs = {
+   "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR is SET",
+   "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR is NOT SET",
+};
+static int spoolss_dissect_element_FormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo2_unused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddFormInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_AddFormInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_PortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE_tfs = {
+   "SPOOLSS_PORT_TYPE_WRITE is SET",
+   "SPOOLSS_PORT_TYPE_WRITE is NOT SET",
+};
+static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_READ_tfs = {
+   "SPOOLSS_PORT_TYPE_READ is SET",
+   "SPOOLSS_PORT_TYPE_READ is NOT SET",
+};
+static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED_tfs = {
+   "SPOOLSS_PORT_TYPE_REDIRECTED is SET",
+   "SPOOLSS_PORT_TYPE_REDIRECTED is NOT SET",
+};
+static const true_false_string spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED_tfs = {
+   "SPOOLSS_PORT_TYPE_NET_ATTACHED is SET",
+   "SPOOLSS_PORT_TYPE_NET_ATTACHED is NOT SET",
+};
+static int spoolss_dissect_element_PortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_PortStatus_vals[] = {
+       { PORT_STATUS_CLEAR, "PORT_STATUS_CLEAR" },
+       { PORT_STATUS_OFFLINE, "PORT_STATUS_OFFLINE" },
+       { PORT_STATUS_PAPER_JAM, "PORT_STATUS_PAPER_JAM" },
+       { PORT_STATUS_PAPER_OUT, "PORT_STATUS_PAPER_OUT" },
+       { PORT_STATUS_OUTPUT_BIN_FULL, "PORT_STATUS_OUTPUT_BIN_FULL" },
+       { PORT_STATUS_PAPER_PROBLEM, "PORT_STATUS_PAPER_PROBLEM" },
+       { PORT_STATUS_NO_TONER, "PORT_STATUS_NO_TONER" },
+       { PORT_STATUS_DOOR_OPEN, "PORT_STATUS_DOOR_OPEN" },
+       { PORT_STATUS_USER_INTERVENTION, "PORT_STATUS_USER_INTERVENTION" },
+       { PORT_STATUS_OUT_OF_MEMORY, "PORT_STATUS_OUT_OF_MEMORY" },
+       { PORT_STATUS_TONER_LOW, "PORT_STATUS_TONER_LOW" },
+       { PORT_STATUS_WARMING_UP, "PORT_STATUS_WARMING_UP" },
+       { PORT_STATUS_POWER_SAVE, "PORT_STATUS_POWER_SAVE" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_PortSeverity_vals[] = {
+       { PORT_STATUS_TYPE_ERROR, "PORT_STATUS_TYPE_ERROR" },
+       { PORT_STATUS_TYPE_WARNING, "PORT_STATUS_TYPE_WARNING" },
+       { PORT_STATUS_TYPE_INFO, "PORT_STATUS_TYPE_INFO" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_PortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfo_infoFF_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPortInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_SetPortInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_UNIVERSAL_FONT_ID_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIVERSAL_FONT_ID_Index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddMonitorInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_MonitorContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_PrintProcDataTypesInfo1_name_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcDataTypesInfo1_name_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrintProcDataTypesInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_tfs = {
+   "PRINTER_CHANGE_ADD_PRINTER is SET",
+   "PRINTER_CHANGE_ADD_PRINTER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_tfs = {
+   "PRINTER_CHANGE_SET_PRINTER is SET",
+   "PRINTER_CHANGE_SET_PRINTER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_tfs = {
+   "PRINTER_CHANGE_DELETE_PRINTER is SET",
+   "PRINTER_CHANGE_DELETE_PRINTER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER_tfs = {
+   "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER is SET",
+   "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB_tfs = {
+   "PRINTER_CHANGE_ADD_JOB is SET",
+   "PRINTER_CHANGE_ADD_JOB is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB_tfs = {
+   "PRINTER_CHANGE_SET_JOB is SET",
+   "PRINTER_CHANGE_SET_JOB is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB_tfs = {
+   "PRINTER_CHANGE_DELETE_JOB is SET",
+   "PRINTER_CHANGE_DELETE_JOB is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB_tfs = {
+   "PRINTER_CHANGE_WRITE_JOB is SET",
+   "PRINTER_CHANGE_WRITE_JOB is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM_tfs = {
+   "PRINTER_CHANGE_ADD_FORM is SET",
+   "PRINTER_CHANGE_ADD_FORM is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM_tfs = {
+   "PRINTER_CHANGE_SET_FORM is SET",
+   "PRINTER_CHANGE_SET_FORM is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM_tfs = {
+   "PRINTER_CHANGE_DELETE_FORM is SET",
+   "PRINTER_CHANGE_DELETE_FORM is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT_tfs = {
+   "PRINTER_CHANGE_ADD_PORT is SET",
+   "PRINTER_CHANGE_ADD_PORT is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT_tfs = {
+   "PRINTER_CHANGE_CONFIGURE_PORT is SET",
+   "PRINTER_CHANGE_CONFIGURE_PORT is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT_tfs = {
+   "PRINTER_CHANGE_DELETE_PORT is SET",
+   "PRINTER_CHANGE_DELETE_PORT is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR_tfs = {
+   "PRINTER_CHANGE_ADD_PRINT_PROCESSOR is SET",
+   "PRINTER_CHANGE_ADD_PRINT_PROCESSOR is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR_tfs = {
+   "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR is SET",
+   "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER_tfs = {
+   "PRINTER_CHANGE_SERVER is SET",
+   "PRINTER_CHANGE_SERVER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER_tfs = {
+   "PRINTER_CHANGE_ADD_PRINTER_DRIVER is SET",
+   "PRINTER_CHANGE_ADD_PRINTER_DRIVER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER_tfs = {
+   "PRINTER_CHANGE_SET_PRINTER_DRIVER is SET",
+   "PRINTER_CHANGE_SET_PRINTER_DRIVER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER_tfs = {
+   "PRINTER_CHANGE_DELETE_PRINTER_DRIVER is SET",
+   "PRINTER_CHANGE_DELETE_PRINTER_DRIVER is NOT SET",
+};
+static const true_false_string spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT_tfs = {
+   "PRINTER_CHANGE_TIMEOUT is SET",
+   "PRINTER_CHANGE_TIMEOUT is NOT SET",
+};
+static int spoolss_dissect_element_PortVarContainer_monitor_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortVarContainer_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortVarContainer_monitor_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_JobNotifyField_vals[] = {
+       { JOB_NOTIFY_FIELD_PRINTER_NAME, "JOB_NOTIFY_FIELD_PRINTER_NAME" },
+       { JOB_NOTIFY_FIELD_MACHINE_NAME, "JOB_NOTIFY_FIELD_MACHINE_NAME" },
+       { JOB_NOTIFY_FIELD_PORT_NAME, "JOB_NOTIFY_FIELD_PORT_NAME" },
+       { JOB_NOTIFY_FIELD_USER_NAME, "JOB_NOTIFY_FIELD_USER_NAME" },
+       { JOB_NOTIFY_FIELD_NOTIFY_NAME, "JOB_NOTIFY_FIELD_NOTIFY_NAME" },
+       { JOB_NOTIFY_FIELD_DATATYPE, "JOB_NOTIFY_FIELD_DATATYPE" },
+       { JOB_NOTIFY_FIELD_PRINT_PROCESSOR, "JOB_NOTIFY_FIELD_PRINT_PROCESSOR" },
+       { JOB_NOTIFY_FIELD_PARAMETERS, "JOB_NOTIFY_FIELD_PARAMETERS" },
+       { JOB_NOTIFY_FIELD_DRIVER_NAME, "JOB_NOTIFY_FIELD_DRIVER_NAME" },
+       { JOB_NOTIFY_FIELD_DEVMODE, "JOB_NOTIFY_FIELD_DEVMODE" },
+       { JOB_NOTIFY_FIELD_STATUS, "JOB_NOTIFY_FIELD_STATUS" },
+       { JOB_NOTIFY_FIELD_STATUS_STRING, "JOB_NOTIFY_FIELD_STATUS_STRING" },
+       { JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR, "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR" },
+       { JOB_NOTIFY_FIELD_DOCUMENT, "JOB_NOTIFY_FIELD_DOCUMENT" },
+       { JOB_NOTIFY_FIELD_PRIORITY, "JOB_NOTIFY_FIELD_PRIORITY" },
+       { JOB_NOTIFY_FIELD_POSITION, "JOB_NOTIFY_FIELD_POSITION" },
+       { JOB_NOTIFY_FIELD_SUBMITTED, "JOB_NOTIFY_FIELD_SUBMITTED" },
+       { JOB_NOTIFY_FIELD_START_TIME, "JOB_NOTIFY_FIELD_START_TIME" },
+       { JOB_NOTIFY_FIELD_UNTIL_TIME, "JOB_NOTIFY_FIELD_UNTIL_TIME" },
+       { JOB_NOTIFY_FIELD_TIME, "JOB_NOTIFY_FIELD_TIME" },
+       { JOB_NOTIFY_FIELD_TOTAL_PAGES, "JOB_NOTIFY_FIELD_TOTAL_PAGES" },
+       { JOB_NOTIFY_FIELD_PAGES_PRINTED, "JOB_NOTIFY_FIELD_PAGES_PRINTED" },
+       { JOB_NOTIFY_FIELD_TOTAL_BYTES, "JOB_NOTIFY_FIELD_TOTAL_BYTES" },
+       { JOB_NOTIFY_FIELD_BYTES_PRINTED, "JOB_NOTIFY_FIELD_BYTES_PRINTED" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_PrintNotifyField_vals[] = {
+       { PRINTER_NOTIFY_FIELD_SERVER_NAME, "PRINTER_NOTIFY_FIELD_SERVER_NAME" },
+       { PRINTER_NOTIFY_FIELD_PRINTER_NAME, "PRINTER_NOTIFY_FIELD_PRINTER_NAME" },
+       { PRINTER_NOTIFY_FIELD_SHARE_NAME, "PRINTER_NOTIFY_FIELD_SHARE_NAME" },
+       { PRINTER_NOTIFY_FIELD_PORT_NAME, "PRINTER_NOTIFY_FIELD_PORT_NAME" },
+       { PRINTER_NOTIFY_FIELD_DRIVER_NAME, "PRINTER_NOTIFY_FIELD_DRIVER_NAME" },
+       { PRINTER_NOTIFY_FIELD_COMMENT, "PRINTER_NOTIFY_FIELD_COMMENT" },
+       { PRINTER_NOTIFY_FIELD_LOCATION, "PRINTER_NOTIFY_FIELD_LOCATION" },
+       { PRINTER_NOTIFY_FIELD_DEVMODE, "PRINTER_NOTIFY_FIELD_DEVMODE" },
+       { PRINTER_NOTIFY_FIELD_SEPFILE, "PRINTER_NOTIFY_FIELD_SEPFILE" },
+       { PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR, "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR" },
+       { PRINTER_NOTIFY_FIELD_PARAMETERS, "PRINTER_NOTIFY_FIELD_PARAMETERS" },
+       { PRINTER_NOTIFY_FIELD_DATATYPE, "PRINTER_NOTIFY_FIELD_DATATYPE" },
+       { PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR, "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR" },
+       { PRINTER_NOTIFY_FIELD_ATTRIBUTES, "PRINTER_NOTIFY_FIELD_ATTRIBUTES" },
+       { PRINTER_NOTIFY_FIELD_PRIORITY, "PRINTER_NOTIFY_FIELD_PRIORITY" },
+       { PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY, "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY" },
+       { PRINTER_NOTIFY_FIELD_START_TIME, "PRINTER_NOTIFY_FIELD_START_TIME" },
+       { PRINTER_NOTIFY_FIELD_UNTIL_TIME, "PRINTER_NOTIFY_FIELD_UNTIL_TIME" },
+       { PRINTER_NOTIFY_FIELD_STATUS, "PRINTER_NOTIFY_FIELD_STATUS" },
+       { PRINTER_NOTIFY_FIELD_STATUS_STRING, "PRINTER_NOTIFY_FIELD_STATUS_STRING" },
+       { PRINTER_NOTIFY_FIELD_CJOBS, "PRINTER_NOTIFY_FIELD_CJOBS" },
+       { PRINTER_NOTIFY_FIELD_AVERAGE_PPM, "PRINTER_NOTIFY_FIELD_AVERAGE_PPM" },
+       { PRINTER_NOTIFY_FIELD_TOTAL_PAGES, "PRINTER_NOTIFY_FIELD_TOTAL_PAGES" },
+       { PRINTER_NOTIFY_FIELD_PAGES_PRINTED, "PRINTER_NOTIFY_FIELD_PAGES_PRINTED" },
+       { PRINTER_NOTIFY_FIELD_TOTAL_BYTES, "PRINTER_NOTIFY_FIELD_TOTAL_BYTES" },
+       { PRINTER_NOTIFY_FIELD_BYTES_PRINTED, "PRINTER_NOTIFY_FIELD_BYTES_PRINTED" },
+       { PRINTER_NOTIFY_FIELD_OBJECT_GUID, "PRINTER_NOTIFY_FIELD_OBJECT_GUID" },
+       { PRINTER_NOTIFY_FIELD_FRIENDLY_NAME, "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME" },
+{ 0, NULL }
+};
+const value_string spoolss_spoolss_NotifyType_vals[] = {
+       { PRINTER_NOTIFY_TYPE, "PRINTER_NOTIFY_TYPE" },
+       { JOB_NOTIFY_TYPE, "JOB_NOTIFY_TYPE" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOptionType_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
+static int spoolss_dissect_element_NotifyOptionType_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOptionType_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOptionType_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOptionType_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOptionType_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
+static int spoolss_dissect_element_NotifyOptionType_fields_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
+static int spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type);
+static const true_false_string spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH_tfs = {
+   "PRINTER_NOTIFY_OPTIONS_REFRESH is SET",
+   "PRINTER_NOTIFY_OPTIONS_REFRESH is NOT SET",
+};
+static int spoolss_dissect_element_NotifyOption_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOption_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOption_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOption_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOption_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyOption_types__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_spoolss_NotifyTable_vals[] = {
+       { NOTIFY_TABLE_DWORD, "NOTIFY_TABLE_DWORD" },
+       { NOTIFY_TABLE_STRING, "NOTIFY_TABLE_STRING" },
+       { NOTIFY_TABLE_DEVMODE, "NOTIFY_TABLE_DEVMODE" },
+       { NOTIFY_TABLE_TIME, "NOTIFY_TABLE_TIME" },
+       { NOTIFY_TABLE_SECURITYDESCRIPTOR, "NOTIFY_TABLE_SECURITYDESCRIPTOR" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_NotifyData_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyData_integer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyData_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyData_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyData_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Notify_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Notify_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *);
+static int spoolss_dissect_element_Notify_variable_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type);
+static int spoolss_dissect_element_Notify_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_Notify_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type);
+static int spoolss_dissect_element_NotifyInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyInfo_notifies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_NotifyInfo_notifies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED_tfs = {
+   "PRINTER_NOTIFY_INFO_DISCARDED is SET",
+   "PRINTER_NOTIFY_INFO_DISCARDED is NOT SET",
+};
+static const true_false_string spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED_tfs = {
+   "PRINTER_NOTIFY_INFO_DISCARDNOTED is SET",
+   "PRINTER_NOTIFY_INFO_DISCARDNOTED is NOT SET",
+};
+static const true_false_string spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH_tfs = {
+   "PRINTER_NOTIFY_INFO_COLOR_MISMATCH is SET",
+   "PRINTER_NOTIFY_INFO_COLOR_MISMATCH is NOT SET",
+};
+static int spoolss_dissect_element_UserLevel1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel1_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel2_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_size2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel_level1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel_level1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel_level2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel_level2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel_level3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevel_level3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_UserLevelCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int spoolss_dissect_element_UserLevelCtr_user_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static const true_false_string spoolss_AccessRights_SERVER_ACCESS_ADMINISTER_tfs = {
+   "SERVER_ACCESS_ADMINISTER is SET",
+   "SERVER_ACCESS_ADMINISTER is NOT SET",
+};
+static const true_false_string spoolss_AccessRights_SERVER_ACCESS_ENUMERATE_tfs = {
+   "SERVER_ACCESS_ENUMERATE is SET",
+   "SERVER_ACCESS_ENUMERATE is NOT SET",
+};
+static const true_false_string spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER_tfs = {
+   "PRINTER_ACCESS_ADMINISTER is SET",
+   "PRINTER_ACCESS_ADMINISTER is NOT SET",
+};
+static const true_false_string spoolss_AccessRights_PRINTER_ACCESS_USE_tfs = {
+   "PRINTER_ACCESS_USE is SET",
+   "PRINTER_ACCESS_USE is NOT SET",
+};
+static const true_false_string spoolss_AccessRights_JOB_ACCESS_ADMINISTER_tfs = {
+   "JOB_ACCESS_ADMINISTER is SET",
+   "JOB_ACCESS_ADMINISTER is NOT SET",
+};
+static const true_false_string spoolss_AccessRights_JOB_ACCESS_READ_tfs = {
+   "JOB_ACCESS_READ is SET",
+   "JOB_ACCESS_READ is NOT SET",
+};
+static int spoolss_dissect_element_PrinterEnumValues_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_value_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PrinterEnumValues_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_KeyNames_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES_tfs = {
+   "DPD_DELETE_UNUSED_FILES is SET",
+   "DPD_DELETE_UNUSED_FILES is NOT SET",
+};
+static const true_false_string spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION_tfs = {
+   "DPD_DELETE_SPECIFIC_VERSION is SET",
+   "DPD_DELETE_SPECIFIC_VERSION is NOT SET",
+};
+static const true_false_string spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES_tfs = {
+   "DPD_DELETE_ALL_FILES is SET",
+   "DPD_DELETE_ALL_FILES is NOT SET",
+};
+const value_string spoolss_spoolss_PortProtocol_vals[] = {
+       { PROTOCOL_RAWTCP_TYPE, "PROTOCOL_RAWTCP_TYPE" },
+       { PROTOCOL_LPR_TYPE, "PROTOCOL_LPR_TYPE" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_PortData1_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_ip_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_hardware_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_hardware_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData1_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PortData2_port_monitor_mib_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_MonitorUi_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE_tfs = {
+   "APD_STRICT_UPGRADE is SET",
+   "APD_STRICT_UPGRADE is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE_tfs = {
+   "APD_STRICT_DOWNGRADE is SET",
+   "APD_STRICT_DOWNGRADE is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES_tfs = {
+   "APD_COPY_ALL_FILES is SET",
+   "APD_COPY_ALL_FILES is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES_tfs = {
+   "APD_COPY_NEW_FILES is SET",
+   "APD_COPY_NEW_FILES is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY_tfs = {
+   "APD_COPY_FROM_DIRECTORY is SET",
+   "APD_COPY_FROM_DIRECTORY is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER_tfs = {
+   "APD_DONT_COPY_FILES_TO_CLUSTER is SET",
+   "APD_DONT_COPY_FILES_TO_CLUSTER is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS_tfs = {
+   "APD_COPY_TO_ALL_SPOOLERS is SET",
+   "APD_COPY_TO_ALL_SPOOLERS is NOT SET",
+};
+static const true_false_string spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE_tfs = {
+   "APD_RETURN_BLOCKING_STATUS_CODE is SET",
+   "APD_RETURN_BLOCKING_STATUS_CODE is NOT SET",
+};
+const value_string spoolss_BIDI_TYPE_vals[] = {
+       { BIDI_NULL, "BIDI_NULL" },
+       { BIDI_INT, "BIDI_INT" },
+       { BIDI_FLOAT, "BIDI_FLOAT" },
+       { BIDI_BOOL, "BIDI_BOOL" },
+       { BIDI_STRING, "BIDI_STRING" },
+       { BIDI_TEXT, "BIDI_TEXT" },
+       { BIDI_ENUM, "BIDI_ENUM" },
+       { BIDI_BLOB, "BIDI_BLOB" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u_biData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_DATA_dwBidiType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType);
+static int spoolss_dissect_element_RPC_BIDI_DATA_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CorePrinterDriver_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CorePrinterDriver_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CorePrinterDriver_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string spoolss_RPC_EPrintPropertyType_vals[] = {
+       { kRpcPropertyTypeString, "kRpcPropertyTypeString" },
+       { kRpcPropertyTypeInt32, "kRpcPropertyTypeInt32" },
+       { kRpcPropertyTypeInt64, "kRpcPropertyTypeInt64" },
+       { kRpcPropertyTypeByte, "kRpcPropertyTypeByte" },
+       { kRpcPropertyTypeBuffer, "kRpcPropertyTypeBuffer" },
+{ 0, NULL }
+};
+static int spoolss_dissect_element_propertyBlob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_propertyBlob_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_propertyBlob_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyByte(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintPropertyValue_ePropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType);
+static int spoolss_dissect_element_RPC_PrintPropertyValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType);
+static int spoolss_dissect_element_RPC_PrintNamedProperty_propertyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintNamedProperty_propertyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RPC_PrintNamedProperty_propertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJob_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetJob_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinter_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinter_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriver_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriver_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriver_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriver_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriver_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriver_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriver_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrintProcessor_path_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrintProcessorDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartDocPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartDocPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartDocPrinter_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartDocPrinter_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_StartPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_WritePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_WritePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_WritePrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_WritePrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_WritePrinter_num_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_WritePrinter_num_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EndPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EndPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AbortPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AbortPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReadPrinter__data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EndDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EndDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ScheduleJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ScheduleJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ScheduleJob_jobid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeleteForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeleteForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeleteForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetForm_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPort_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPort_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePort_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CreatePrinterIC_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CreatePrinterIC_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CreatePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CreatePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CreatePrinterIC_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_CreatePrinterIC_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrintProcessor_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ResetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ResetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ResetPrinter_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ResetPrinter_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ResetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ResetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_client_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_client_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_server_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_server_major_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_server_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriver2_server_minor_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FindClosePrinterNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_FindClosePrinterNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyOpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_ReplyClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_port_var_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_port_var_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPortEx_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_reply_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_reply_result_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_reply_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterReplyPrinterEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_change_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_OpenPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_userlevel_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPort_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPort_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPort_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPort_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_value_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_value_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_value_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterData_data_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_SetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element__spoolss_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element___spoolss_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey__ndr_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_key_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_key_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_key_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_EnumPrinterKey_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriverEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriverEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriverEx_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriverEx_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriverEx_delete_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePrinterDriverEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_printserver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_printserver_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPerMachineConnection_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_DeletePerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_function_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData__in_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_out_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_status_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_XcvData_status_code_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriverEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriverEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriverEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriverEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_AddPrinterDriverEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_pAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_pAction_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_pReqData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_pReqData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_ppRespData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_ppRespData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSendRecvBidiData_ppRespData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_driver_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_language_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_package_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_package_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_required(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_GetPrinterDriverPackagePath_required_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSetJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSetJobNamedProperty_pProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcSetJobNamedProperty_pProperty_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcDeleteJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 year; */
+/* IDL:        uint16 month; */
+/* IDL:        uint16 day_of_week; */
+/* IDL:        uint16 day; */
+/* IDL:        uint16 hour; */
+/* IDL:        uint16 minute; */
+/* IDL:        uint16 second; */
+/* IDL:        uint16 millisecond; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_Time_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_year, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_month, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_day_of_week(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_day_of_week, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_day, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_hour(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_hour, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_minute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_minute, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_second(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_second, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Time_millisecond(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Time_millisecond, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_Time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_Time);
+       }
+       
+       offset = spoolss_dissect_element_Time_year(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_month(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_day_of_week(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_day(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_hour(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_minute(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_second(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Time_millisecond(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_spoolss_Time(time,ndr->flags))] uint32 size; */
+/* IDL:        [unique(1)] spoolss_Time *time; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_TimeCtr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_TimeCtr_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_TimeCtr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_TimeCtr_time_, NDR_POINTER_UNIQUE, "Pointer to Time (spoolss_Time)",hf_spoolss_spoolss_TimeCtr_time);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_TimeCtr_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_TimeCtr_time,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_TimeCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_TimeCtr);
+       }
+       
+       offset = spoolss_dissect_element_TimeCtr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_TimeCtr_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PROCESSOR_ARCHITECTURE_INTEL=0x0000, */
+/* IDL:        PROCESSOR_ARCHITECTURE_ARM=0x0005, */
+/* IDL:        PROCESSOR_ARCHITECTURE_IA64=0x0006, */
+/* IDL:        PROCESSOR_ARCHITECTURE_AMD64=0x0009, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_ProcessorArchitecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PROCESSOR_ARM=0x00000000, */
+/* IDL:        PROCESSOR_INTEL_386=0x00000182, */
+/* IDL:        PROCESSOR_INTEL_486=0x000001E6, */
+/* IDL:        PROCESSOR_INTEL_PENTIUM=0x0000024A, */
+/* IDL:        PROCESSOR_INTEL_IA64=0x00000898, */
+/* IDL:        PROCESSOR_AMD_X8664=0x000022A0, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_ProcessorType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_MAJOR_VERSION_NT4_95_98_ME=0x00000004, */
+/* IDL:        SPOOLSS_MAJOR_VERSION_2000_2003_XP=0x00000005, */
+/* IDL:        SPOOLSS_MAJOR_VERSION_2008_VISTA=0x00000006, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_MINOR_VERSION_0=0x00000000, */
+/* IDL:        SPOOLSS_MINOR_VERSION_XP=0x00000001, */
+/* IDL:        SPOOLSS_MINOR_VERSION_2003_XP64=0x00000002, */
+/* IDL:        SPOOLSS_MINOR_VERSION_98=0x0000000a, */
+/* IDL:        SPOOLSS_MINOR_VERSION_ME=0x0000005a, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_STATUS_PAUSED =  0x00000001 , */
+/* IDL:        PRINTER_STATUS_ERROR =  0x00000002 , */
+/* IDL:        PRINTER_STATUS_PENDING_DELETION =  0x00000004 , */
+/* IDL:        PRINTER_STATUS_PAPER_JAM =  0x00000008 , */
+/* IDL:        PRINTER_STATUS_PAPER_OUT =  0x00000010 , */
+/* IDL:        PRINTER_STATUS_MANUAL_FEED =  0x00000020 , */
+/* IDL:        PRINTER_STATUS_PAPER_PROBLEM =  0x00000040 , */
+/* IDL:        PRINTER_STATUS_OFFLINE =  0x00000080 , */
+/* IDL:        PRINTER_STATUS_IO_ACTIVE =  0x00000100 , */
+/* IDL:        PRINTER_STATUS_BUSY =  0x00000200 , */
+/* IDL:        PRINTER_STATUS_PRINTING =  0x00000400 , */
+/* IDL:        PRINTER_STATUS_OUTPUT_BIN_FULL =  0x00000800 , */
+/* IDL:        PRINTER_STATUS_NOT_AVAILABLE =  0x00001000 , */
+/* IDL:        PRINTER_STATUS_WAITING =  0x00002000 , */
+/* IDL:        PRINTER_STATUS_PROCESSING =  0x00004000 , */
+/* IDL:        PRINTER_STATUS_INITIALIZING =  0x00008000 , */
+/* IDL:        PRINTER_STATUS_WARMING_UP =  0x00010000 , */
+/* IDL:        PRINTER_STATUS_TONER_LOW =  0x00020000 , */
+/* IDL:        PRINTER_STATUS_NO_TONER =  0x00040000 , */
+/* IDL:        PRINTER_STATUS_PAGE_PUNT =  0x00080000 , */
+/* IDL:        PRINTER_STATUS_USER_INTERVENTION =  0x00100000 , */
+/* IDL:        PRINTER_STATUS_OUT_OF_MEMORY =  0x00200000 , */
+/* IDL:        PRINTER_STATUS_DOOR_OPEN =  0x00400000 , */
+/* IDL:        PRINTER_STATUS_SERVER_UNKNOWN =  0x00800000 , */
+/* IDL:        PRINTER_STATUS_POWER_SAVE =  0x01000000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_PrinterStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterStatus);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAUSED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PAUSED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_ERROR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "PRINTER_STATUS_ERROR");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PENDING_DELETION");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PAPER_JAM");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PAPER_OUT");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "PRINTER_STATUS_MANUAL_FEED");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PAPER_PROBLEM");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "PRINTER_STATUS_OFFLINE");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "PRINTER_STATUS_IO_ACTIVE");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_BUSY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "PRINTER_STATUS_BUSY");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PRINTING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PRINTING");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "PRINTER_STATUS_OUTPUT_BIN_FULL");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_NOT_AVAILABLE");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WAITING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_WAITING");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PROCESSING");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_INITIALIZING");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_WARMING_UP");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_TONER_LOW");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_NO_TONER");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_PAGE_PUNT");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_USER_INTERVENTION");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_OUT_OF_MEMORY");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_DOOR_OPEN");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_SERVER_UNKNOWN");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "PRINTER_STATUS_POWER_SAVE");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        JOB_STATUS_PAUSED =  0x00000001 , */
+/* IDL:        JOB_STATUS_ERROR =  0x00000002 , */
+/* IDL:        JOB_STATUS_DELETING =  0x00000004 , */
+/* IDL:        JOB_STATUS_SPOOLING =  0x00000008 , */
+/* IDL:        JOB_STATUS_PRINTING =  0x00000010 , */
+/* IDL:        JOB_STATUS_OFFLINE =  0x00000020 , */
+/* IDL:        JOB_STATUS_PAPEROUT =  0x00000040 , */
+/* IDL:        JOB_STATUS_PRINTED =  0x00000080 , */
+/* IDL:        JOB_STATUS_DELETED =  0x00000100 , */
+/* IDL:        JOB_STATUS_BLOCKED_DEVQ =  0x00000200 , */
+/* IDL:        JOB_STATUS_USER_INTERVENTION =  0x00000400 , */
+/* IDL:        JOB_STATUS_RESTART =  0x00000800 , */
+/* IDL:        JOB_STATUS_COMPLETE =  0x00001000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_JobStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_JobStatus);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAUSED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "JOB_STATUS_PAUSED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_ERROR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "JOB_STATUS_ERROR");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "JOB_STATUS_DELETING");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_SPOOLING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "JOB_STATUS_SPOOLING");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "JOB_STATUS_PRINTING");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_OFFLINE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "JOB_STATUS_OFFLINE");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAPEROUT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "JOB_STATUS_PAPEROUT");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "JOB_STATUS_PRINTED");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "JOB_STATUS_DELETED");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "JOB_STATUS_BLOCKED_DEVQ");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "JOB_STATUS_USER_INTERVENTION");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_RESTART, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "JOB_STATUS_RESTART");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "JOB_STATUS_COMPLETE");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DEBUGGING_BUILD=0x00000000, */
+/* IDL:        SPOOLSS_RELEASE_BUILD=0x00000001, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_Build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *servername; */
+/* IDL:        uint32 cjobs; */
+/* IDL:        uint32 total_jobs; */
+/* IDL:        uint32 total_bytes; */
+/* IDL:        spoolss_Time time; */
+/* IDL:        uint32 global_counter; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 version; */
+/* IDL:        spoolss_Build free_build; */
+/* IDL:        uint32 spooling; */
+/* IDL:        uint32 max_spooling; */
+/* IDL:        uint32 session_counter; */
+/* IDL:        uint32 num_error_out_of_paper; */
+/* IDL:        uint32 num_error_not_ready; */
+/* IDL:        spoolss_JobStatus job_error; */
+/* IDL:        uint32 number_of_processors; */
+/* IDL:        spoolss_ProcessorType processor_type; */
+/* IDL:        uint32 high_part_total_bytes; */
+/* IDL:        uint32 change_id; */
+/* IDL:        WERROR last_error; */
+/* IDL:        spoolss_PrinterStatus status; */
+/* IDL:        uint32 enumerate_network_printers; */
+/* IDL:        uint32 c_setprinter; */
+/* IDL:        spoolss_ProcessorArchitecture processor_architecture; */
+/* IDL:        uint16 processor_level; */
+/* IDL:        uint32 ref_ic; */
+/* IDL:        uint32 reserved2; */
+/* IDL:        uint32 reserved3; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo0_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo0_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_printername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo0_servername_, , "Pointer to Servername (string)",hf_spoolss_spoolss_PrinterInfo0_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_servername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_cjobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_total_jobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_total_bytes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo0_time,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_global_counter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_Build(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_free_build, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_spooling, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_max_spooling, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_session_counter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_num_error_out_of_paper, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_num_error_not_ready, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_job_error, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_number_of_processors, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_ProcessorType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_processor_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_high_part_total_bytes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_change_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_last_error, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_enumerate_network_printers, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_c_setprinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_processor_architecture, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_processor_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_ref_ic, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_reserved2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo0_reserved3, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo0);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo0_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_servername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_cjobs(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_total_jobs(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_total_bytes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_global_counter(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_free_build(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_spooling(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_max_spooling(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_session_counter(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_num_error_out_of_paper(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_num_error_not_ready(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_job_error(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_number_of_processors(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_processor_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_high_part_total_bytes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_change_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_last_error(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_enumerate_network_printers(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_c_setprinter(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_processor_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_processor_level(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_ref_ic(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo0_reserved3(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA=0x554e4944, */
+/* IDL:        SPOOLSS_DM_SIGNATURE_JTEXP=0x4a544d53, */
+/* IDL:        SPOOLSS_DM_SIGNATURE_PSEXTRA=0x50524956, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DM_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_LAYOUT_NUP_DISABLED=0x00000000, */
+/* IDL:        SPOOLSS_DM_LAYOUT_NUP_2=0x00000001, */
+/* IDL:        SPOOLSS_DM_LAYOUT_NUP_4=0x00000002, */
+/* IDL:        SPOOLSS_DM_LAYOUT_NUP_6=0x00000003, */
+/* IDL:        SPOOLSS_DM_LAYOUT_NUP_9=0x00000004, */
+/* IDL:        SPOOLSS_DM_LAYOUT_NUP_16=0x00000005, */
+/* IDL:        SPOOLSS_DM_LAYOUT_BOOKLET=0x00000006, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DM_Layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_NUP_DIRECTION_L2R_T2B=0x00000001, */
+/* IDL:        SPOOLSS_DM_NUP_DIRECTION_T2B_L2R=0x00000002, */
+/* IDL:        SPOOLSS_DM_NUP_DIRECTION_R2L_T2B=0x00000004, */
+/* IDL:        SPOOLSS_DM_NUP_DIRECTION_T2B_R2L=0x00000008, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DM_NupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_NUP_BORDER_PRINT=0x00000000, */
+/* IDL:        SPOOLSS_DM_NUP_BORDER_NONE=0x00000001, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DM_NupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_BOOKLET_LEFT_FLIP=0x00000000, */
+/* IDL:        SPOOLSS_DM_BOOKLET_RIGHT_FLIP=0x00000001, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DM_BookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER =  0x00000002 , */
+/* IDL:        SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR =  0x00000004 , */
+/* IDL:        SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE =  0x00000010 , */
+/* IDL:        SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP =  0x00000040 , */
+/* IDL:        SPOOLSS_DM_PS_FLAGS_ROTATE_180 =  0x00000200 , */
+/* IDL:        SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL =  0x00002000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_DMPS_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DMPS_Flags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_ROTATE_180");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
+/* IDL:        spoolss_DMPS_Flags dwFlags; */
+/* IDL:        uint32 wchEPSFile[12]; */
+/* IDL:        [value(24)] uint16 caSize; */
+/* IDL:        uint16 caFlags; */
+/* IDL:        uint16 caIlluminantIndex; */
+/* IDL:        uint16 caRedGamma; */
+/* IDL:        uint16 caGreenGamma; */
+/* IDL:        uint16 caBlueGamma; */
+/* IDL:        uint16 caReferenceBlack; */
+/* IDL:        uint16 caReferenceWhite; */
+/* IDL:        uint16 caContrast; */
+/* IDL:        uint16 caBrightness; */
+/* IDL:        uint16 caColorfulness; */
+/* IDL:        uint16 caRedGreenTint; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 12; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_wchEPSFile, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caIlluminantIndex, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caRedGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caGreenGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caBlueGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceBlack, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceWhite, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caContrast, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caBrightness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caColorfulness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA351_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA351_caRedGreenTint, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PSDRVEXTRA351(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA351);
+       }
+       
+       offset = spoolss_dissect_element_PSDRVEXTRA351_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_wchEPSFile(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caRedGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caGreenGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caBlueGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caReferenceBlack(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caReferenceWhite(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caContrast(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caBrightness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caColorfulness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA351_caRedGreenTint(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
+/* IDL:        spoolss_DMPS_Flags dwFlags; */
+/* IDL:        uint32 wchEPSFile[12]; */
+/* IDL:        [value(24)] uint16 caSize; */
+/* IDL:        uint16 caFlags; */
+/* IDL:        uint16 caIlluminantIndex; */
+/* IDL:        uint16 caRedGamma; */
+/* IDL:        uint16 caGreenGamma; */
+/* IDL:        uint16 caBlueGamma; */
+/* IDL:        uint16 caReferenceBlack; */
+/* IDL:        uint16 caReferenceWhite; */
+/* IDL:        uint16 caContrast; */
+/* IDL:        uint16 caBrightness; */
+/* IDL:        uint16 caColorfulness; */
+/* IDL:        uint16 caRedGreenTint; */
+/* IDL:        uint16 wChecksum; */
+/* IDL:        uint16 wOptions; */
+/* IDL:        uint32 aubOptions[8]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 12; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_wchEPSFile, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caIlluminantIndex, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caRedGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caGreenGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caBlueGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceBlack, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceWhite, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caContrast, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caBrightness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caColorfulness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_caRedGreenTint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_wChecksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_wChecksum, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_wOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 8; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA400_aubOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA400_aubOptions, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PSDRVEXTRA400(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA400);
+       }
+       
+       offset = spoolss_dissect_element_PSDRVEXTRA400_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_wchEPSFile(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caRedGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caGreenGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caBlueGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caReferenceBlack(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caReferenceWhite(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caContrast(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caBrightness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caColorfulness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_caRedGreenTint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_wChecksum(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_wOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA400_aubOptions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_PS_OPTIMIZE_SPEED=0x00000000, */
+/* IDL:        SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY=0x00000001, */
+/* IDL:        SPOOLSS_DM_PS_OPTIMIZE_EPS=0x00000002, */
+/* IDL:        SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL=0x00000003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DMPS_Dialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_PS_TTDLFMT_DEFAULT=0x00000000, */
+/* IDL:        SPOOLSS_DM_PS_TTDLFMT_TYPE_1=0x00000001, */
+/* IDL:        SPOOLSS_DM_PS_TTDLFMT_TYPE_3=0x00000002, */
+/* IDL:        SPOOLSS_DM_PS_TTDLFMT_TYPE_42=0x00000003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DMPS_TTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_PS_PSLEVEL_1=0x00000001, */
+/* IDL:        SPOOLSS_DM_PS_PSLEVEL_2=0x00000002, */
+/* IDL:        SPOOLSS_DM_PS_PSLEVEL_3=0x00000003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DMPS_PSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST=0x0000, */
+/* IDL:        SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST=0x0001, */
+/* IDL:        SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN=0x0002, */
+/* IDL:        SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN=0x0003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DMPS_FeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
+/* IDL:        spoolss_DMPS_Flags dwFlags; */
+/* IDL:        uint32 wchEPSFile[12]; */
+/* IDL:        [value(24)] uint16 caSize; */
+/* IDL:        uint16 caFlags; */
+/* IDL:        uint16 caIlluminantIndex; */
+/* IDL:        uint16 caRedGamma; */
+/* IDL:        uint16 caGreenGamma; */
+/* IDL:        uint16 caBlueGamma; */
+/* IDL:        uint16 caReferenceBlack; */
+/* IDL:        uint16 caReferenceWhite; */
+/* IDL:        uint16 caContrast; */
+/* IDL:        uint16 caBrightness; */
+/* IDL:        uint16 caColorfulness; */
+/* IDL:        uint16 caRedGreenTint; */
+/* IDL:        uint16 wReserved1; */
+/* IDL:        uint16 wSize; */
+/* IDL:        uint32 fxScrFreq; */
+/* IDL:        uint32 fxScrAngle; */
+/* IDL:        spoolss_DMPS_Dialect iDialect; */
+/* IDL:        spoolss_DMPS_TTDLFmt iTTDLFmt; */
+/* IDL:        uint32 bReversePrint; */
+/* IDL:        spoolss_DM_Layout iLayout; */
+/* IDL:        spoolss_DMPS_PSLevel iPSLevel; */
+/* IDL:        uint32 dwReserved2; */
+/* IDL:        uint16 wOEMExtra; */
+/* IDL:        [value(0x0010)] uint16 wVer; */
+/* IDL:        uint32 dwX; */
+/* IDL:        uint32 dwY; */
+/* IDL:        uint32 dwWidthOffset; */
+/* IDL:        uint32 dwHeightOffset; */
+/* IDL:        spoolss_DMPS_FeedDirection wFeedDirection; */
+/* IDL:        uint16 wCutSheet; */
+/* IDL:        uint32 dwReserved3[4]; */
+/* IDL:        uint32 dwChecksum32; */
+/* IDL:        uint32 dwOptions; */
+/* IDL:        uint32 aOptions[128]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 12; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wchEPSFile, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caIlluminantIndex, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caRedGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caGreenGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caBlueGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceBlack, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceWhite, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caContrast, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caBrightness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caColorfulness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_caRedGreenTint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wReserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wReserved1, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_fxScrAngle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_Dialect(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iDialect, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_TTDLFmt(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iTTDLFmt, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_bReversePrint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iLayout, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_PSLevel(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_iPSLevel, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wOEMExtra, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wVer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwX, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwY, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwWidthOffset, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwHeightOffset, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_FeedDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wFeedDirection, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_wCutSheet, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved3, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwChecksum32, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_dwOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 128; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA500_aOptions, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PSDRVEXTRA500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA500);
+       }
+       
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wchEPSFile(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caRedGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caGreenGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caBlueGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caReferenceBlack(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caReferenceWhite(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caContrast(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caBrightness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caColorfulness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_caRedGreenTint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wReserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_fxScrFreq(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_fxScrAngle(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_iDialect(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_iTTDLFmt(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_bReversePrint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_iLayout(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_iPSLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wOEMExtra(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wVer(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwX(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwY(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwWidthOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwHeightOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wFeedDirection(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_wCutSheet(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwChecksum32(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_dwOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA500_aOptions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_PSEXTRA)] spoolss_DM_Signature dwSignature; */
+/* IDL:        spoolss_DMPS_Flags dwFlags; */
+/* IDL:        uint32 wchEPSFile[12]; */
+/* IDL:        [value(24)] uint16 caSize; */
+/* IDL:        uint16 caFlags; */
+/* IDL:        uint16 caIlluminantIndex; */
+/* IDL:        uint16 caRedGamma; */
+/* IDL:        uint16 caGreenGamma; */
+/* IDL:        uint16 caBlueGamma; */
+/* IDL:        uint16 caReferenceBlack; */
+/* IDL:        uint16 caReferenceWhite; */
+/* IDL:        uint16 caContrast; */
+/* IDL:        uint16 caBrightness; */
+/* IDL:        uint16 caColorfulness; */
+/* IDL:        uint16 caRedGreenTint; */
+/* IDL:        uint16 wCoreJTExpSize; */
+/* IDL:        [value(ndr_size_spoolss_PSDRVEXTRA(r,ndr->flags)+wCoreJTExpSize)] uint16 wCoreFullSize; */
+/* IDL:        uint32 fxScrFreq; */
+/* IDL:        uint32 fxScrAngle; */
+/* IDL:        spoolss_DMPS_Dialect iDialect; */
+/* IDL:        spoolss_DMPS_TTDLFmt iTTDLFmt; */
+/* IDL:        uint32 bReversePrint; */
+/* IDL:        spoolss_DM_Layout iLayout; */
+/* IDL:        spoolss_DMPS_PSLevel iPSLevel; */
+/* IDL:        uint32 dwReserved2; */
+/* IDL:        uint16 wOEMExtra; */
+/* IDL:        [value(0x0010)] uint16 wVer; */
+/* IDL:        uint32 dwX; */
+/* IDL:        uint32 dwY; */
+/* IDL:        uint32 dwWidthOffset; */
+/* IDL:        uint32 dwHeightOffset; */
+/* IDL:        spoolss_DMPS_FeedDirection wFeedDirection; */
+/* IDL:        uint16 wCutSheet; */
+/* IDL:        uint32 dwReserved3[4]; */
+/* IDL:        uint32 dwChecksum32; */
+/* IDL:        uint32 dwOptions; */
+/* IDL:        uint32 aOptions[128]; */
+/* IDL:        spoolss_DM_NupDirection dwNupDirection; */
+/* IDL:        spoolss_DM_NupBorderFlags dwNupBorderFlags; */
+/* IDL:        spoolss_DM_BookletFlags dwBookletFlags; */
+/* IDL:        uint32 dwPadding; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DMPS_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 12; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wchEPSFile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wchEPSFile, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caIlluminantIndex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caIlluminantIndex, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caRedGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caRedGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caGreenGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caGreenGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caBlueGamma(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caBlueGamma, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caReferenceBlack(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caReferenceBlack, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caReferenceWhite(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caReferenceWhite, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caContrast(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caContrast, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caBrightness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caBrightness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caColorfulness(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caColorfulness, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_caRedGreenTint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_caRedGreenTint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wCoreJTExpSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wCoreFullSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_fxScrFreq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_fxScrFreq, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_fxScrAngle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_fxScrAngle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_iDialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_Dialect(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iDialect, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_iTTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_TTDLFmt(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iTTDLFmt, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_bReversePrint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iLayout, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_iPSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_PSLevel(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwReserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwReserved2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wOEMExtra, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wVer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwX(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwX, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwY(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwY, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwWidthOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwWidthOffset, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwHeightOffset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwHeightOffset, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wFeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMPS_FeedDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wFeedDirection, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_wCutSheet, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 4; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwReserved3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwReserved3, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwChecksum32, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 128; i++)
+               offset = spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_aOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_NupDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwNupDirection, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_NupBorderFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwNupBorderFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_BookletFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwBookletFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PSDRVEXTRA_dwPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PSDRVEXTRA_dwPadding, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PSDRVEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PSDRVEXTRA);
+       }
+       
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wchEPSFile(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caIlluminantIndex(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caRedGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caGreenGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caBlueGamma(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caReferenceBlack(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caReferenceWhite(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caContrast(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caBrightness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caColorfulness(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_caRedGreenTint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wCoreJTExpSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wCoreFullSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_fxScrFreq(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_fxScrAngle(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_iDialect(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_iTTDLFmt(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_bReversePrint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_iLayout(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_iPSLevel(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wOEMExtra(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wVer(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwX(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwY(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwWidthOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwHeightOffset(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wFeedDirection(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_wCutSheet(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwReserved3(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwChecksum32(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_aOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwNupDirection(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwNupBorderFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwBookletFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PSDRVEXTRA_dwPadding(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 wReserved[56]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 56; i++)
+               offset = spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA3_4_wReserved, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UNIDRVEXTRA3_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_2_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UNIDRVEXTRA3_4);
+       }
+       
+       offset = spoolss_dissect_element_UNIDRVEXTRA3_4_wReserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_2_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DM_UNI_QUALITY_BEST=0x00000000, */
+/* IDL:        SPOOLSS_DM_UNI_QUALITY_MEDIUM=0x00000001, */
+/* IDL:        SPOOLSS_DM_UNI_QUALITY_DRAFT=0x00000002, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DMUNI_Quality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS =  0x00000002 , */
+/* IDL:        SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL =  0x00000010 , */
+/* IDL:        SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING =  0x00000080 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_DMUNI_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DMUNI_Flags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] spoolss_DM_Signature dwSignature; */
+/* IDL:        [value(0x0022)] uint16 wVer; */
+/* IDL:        uint16 sPadding; */
+/* IDL:        uint16 wSize; */
+/* IDL:        uint16 wOEMExtra; */
+/* IDL:        uint32 dwChecksum32; */
+/* IDL:        spoolss_DMUNI_Flags dwFlags; */
+/* IDL:        uint32 bReversePrint; */
+/* IDL:        spoolss_DM_Layout iLayout; */
+/* IDL:        spoolss_DMUNI_Quality iQuality; */
+/* IDL:        uint16 wReserved[6]; */
+/* IDL:        uint32 dwOptions; */
+/* IDL:        uint32 aOptions[128]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wVer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_sPadding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_sPadding, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_wSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wOEMExtra, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DMUNI_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_bReversePrint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_iLayout, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMUNI_Quality(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_iQuality, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_wReserved, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_dwOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 128; i++)
+               offset = spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA500_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA500_aOptions, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UNIDRVEXTRA500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UNIDRVEXTRA500);
+       }
+       
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_wVer(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_sPadding(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_wSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_wOEMExtra(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_dwChecksum32(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_bReversePrint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_iLayout(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_iQuality(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_wReserved(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_dwOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA500_aOptions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA)] spoolss_DM_Signature dwSignature; */
+/* IDL:        [value(0x0022)] uint16 wVer; */
+/* IDL:        uint16 wCoreJTExpSize; */
+/* IDL:        [value(ndr_size_spoolss_UNIDRVEXTRA(r,ndr->flags)+wCoreJTExpSize)] uint16 wCoreFullSize; */
+/* IDL:        uint16 wOEMExtra; */
+/* IDL:        uint32 dwChecksum32; */
+/* IDL:        spoolss_DMUNI_Flags dwFlags; */
+/* IDL:        uint32 bReversePrint; */
+/* IDL:        spoolss_DM_Layout iLayout; */
+/* IDL:        spoolss_DMUNI_Quality iQuality; */
+/* IDL:        uint16 wReserved[6]; */
+/* IDL:        uint32 dwOptions; */
+/* IDL:        uint32 aOptions[128]; */
+/* IDL:        spoolss_DM_NupDirection dwNupDirection; */
+/* IDL:        spoolss_DM_NupBorderFlags dwNupBorderFlags; */
+/* IDL:        spoolss_DM_BookletFlags dwBookletFlags; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_wVer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wVer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_wCoreJTExpSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wCoreJTExpSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_wCoreFullSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wCoreFullSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_wOEMExtra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wOEMExtra, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwChecksum32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwChecksum32, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DMUNI_Flags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_bReversePrint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_bReversePrint, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_iLayout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Layout(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_iLayout, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DMUNI_Quality(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_iQuality, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 6; i++)
+               offset = spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_wReserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_wReserved, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 128; i++)
+               offset = spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_aOptions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_aOptions, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwNupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_NupDirection(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwNupDirection, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwNupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_NupBorderFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwNupBorderFlags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIDRVEXTRA_dwBookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_BookletFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UNIDRVEXTRA_dwBookletFlags, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UNIDRVEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UNIDRVEXTRA);
+       }
+       
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_wVer(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_wCoreJTExpSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_wCoreFullSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_wOEMExtra(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwChecksum32(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_bReversePrint(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_iLayout(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_iQuality(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_wReserved(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_aOptions(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwNupDirection(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwNupBorderFlags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIDRVEXTRA_dwBookletFlags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwSize; */
+/* IDL:        [value(SPOOLSS_DM_SIGNATURE_JTEXP)] spoolss_DM_Signature dwSignature; */
+/* IDL:        [value(0)] uint32 dwVersion; */
+/* IDL:        [value(16)] uint16 wJTHdrSize; */
+/* IDL:        uint16 wCoreMFOSize; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string ModelName; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_REMAINING)] string_array FeatureOptionPairs; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JTEXP_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_dwSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JTEXP_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JTEXP_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_dwVersion, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JTEXP_wJTHdrSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_wJTHdrSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JTEXP_wCoreMFOSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_wCoreMFOSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JTEXP_ModelName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JTEXP_ModelName , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JTEXP_FeatureOptionPairs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JTEXP_FeatureOptionPairs,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_JTEXP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JTEXP);
+       }
+       
+       offset = spoolss_dissect_element_JTEXP_dwSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JTEXP_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JTEXP_dwVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JTEXP_wJTHdrSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JTEXP_wCoreMFOSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JTEXP_ModelName(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JTEXP_FeatureOptionPairs(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwSize; */
+/* IDL:        spoolss_DM_Signature dwSignature; */
+/* IDL:        uint32 dwVersion; */
+/* IDL:        [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB Data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_OEM_DMEXTRA_dwSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_dwSize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OEM_DMEXTRA_dwSignature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DM_Signature(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_dwSignature, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OEM_DMEXTRA_dwVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_dwVersion, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OEM_DMEXTRA_Data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OEM_DMEXTRA_Data, 1);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_OEM_DMEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_OEM_DMEXTRA);
+       }
+       
+       offset = spoolss_dissect_element_OEM_DMEXTRA_dwSize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OEM_DMEXTRA_dwSignature(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OEM_DMEXTRA_dwVersion(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OEM_DMEXTRA_Data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(0x0350)] [case(0x0350)] spoolss_PSDRVEXTRA351 psdrvextra351; */
+/* IDL: [case(0x0400)] [case(0x0400)] spoolss_PSDRVEXTRA400 psdrvextra400; */
+/* IDL: [case(0x0501)] [case(0x0501)] spoolss_PSDRVEXTRA500 psdrvextra500; */
+/* IDL: [case(0x0600)] [case(0x0600)] spoolss_PSDRVEXTRA psdrvextra; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra351(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PSDRVEXTRA351(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra351,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra400(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PSDRVEXTRA400(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra400,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PSDRVEXTRA500(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra500,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PSDRVEXTRA(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataPostScript_psblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psblob, 1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeviceModeExtraDataPostScript(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DeviceModeExtraDataPostScript");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceModeExtraDataPostScript);
+       }
+
+       switch(level) {
+               case 0x0350:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra351(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x0400:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra400(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x0501:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra500(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x0600:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psdrvextra(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataPostScript_psblob(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(0x0301)] [case(0x0301)] spoolss_UNIDRVEXTRA3_4 unidrvextra3_4; */
+/* IDL: [case(0x0500)] [case(0x0500)] spoolss_UNIDRVEXTRA500 unidrvextra500; */
+/* IDL: [case(0x0600)] [case(0x0600)] spoolss_UNIDRVEXTRA unidrvextra; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra3_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UNIDRVEXTRA3_4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra3_4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UNIDRVEXTRA500(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra500,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UNIDRVEXTRA(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeExtraDataUniDriver_uniblob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_uniblob, 1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeviceModeExtraDataUniDriver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DeviceModeExtraDataUniDriver");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceModeExtraDataUniDriver);
+       }
+
+       switch(level) {
+               case 0x0301:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra3_4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x0500:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra500(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0x0600:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_unidrvextra(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_DeviceModeExtraDataUniDriver_uniblob(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        DEVMODE_ORIENTATION =  0x00000001 , */
+/* IDL:        DEVMODE_PAPERSIZE =  0x00000002 , */
+/* IDL:        DEVMODE_PAPERLENGTH =  0x00000004 , */
+/* IDL:        DEVMODE_PAPERWIDTH =  0x00000008 , */
+/* IDL:        DEVMODE_SCALE =  0x00000010 , */
+/* IDL:        DEVMODE_POSITION =  0x00000020 , */
+/* IDL:        DEVMODE_NUP =  0x00000040 , */
+/* IDL:        DEVMODE_COPIES =  0x00000100 , */
+/* IDL:        DEVMODE_DEFAULTSOURCE =  0x00000200 , */
+/* IDL:        DEVMODE_PRINTQUALITY =  0x00000400 , */
+/* IDL:        DEVMODE_COLOR =  0x00000800 , */
+/* IDL:        DEVMODE_DUPLEX =  0x00001000 , */
+/* IDL:        DEVMODE_YRESOLUTION =  0x00002000 , */
+/* IDL:        DEVMODE_TTOPTION =  0x00004000 , */
+/* IDL:        DEVMODE_COLLATE =  0x00008000 , */
+/* IDL:        DEVMODE_FORMNAME =  0x00010000 , */
+/* IDL:        DEVMODE_LOGPIXELS =  0x00020000 , */
+/* IDL:        DEVMODE_BITSPERPEL =  0x00040000 , */
+/* IDL:        DEVMODE_PELSWIDTH =  0x00080000 , */
+/* IDL:        DEVMODE_PELSHEIGHT =  0x00100000 , */
+/* IDL:        DEVMODE_DISPLAYFLAGS =  0x00200000 , */
+/* IDL:        DEVMODE_DISPLAYFREQUENCY =  0x00400000 , */
+/* IDL:        DEVMODE_ICMMETHOD =  0x00800000 , */
+/* IDL:        DEVMODE_ICMINTENT =  0x01000000 , */
+/* IDL:        DEVMODE_MEDIATYPE =  0x02000000 , */
+/* IDL:        DEVMODE_DITHERTYPE =  0x04000000 , */
+/* IDL:        DEVMODE_PANNINGWIDTH =  0x08000000 , */
+/* IDL:        DEVMODE_PANNINGHEIGHT =  0x10000000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_DeviceModeFields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DeviceModeFields);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ORIENTATION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DEVMODE_ORIENTATION");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERSIZE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DEVMODE_PAPERSIZE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DEVMODE_PAPERLENGTH");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DEVMODE_PAPERWIDTH");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_SCALE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "DEVMODE_SCALE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_POSITION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "DEVMODE_POSITION");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_NUP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "DEVMODE_NUP");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COPIES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "DEVMODE_COPIES");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "DEVMODE_DEFAULTSOURCE");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "DEVMODE_PRINTQUALITY");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLOR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "DEVMODE_COLOR");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DUPLEX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "DEVMODE_DUPLEX");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_YRESOLUTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "DEVMODE_YRESOLUTION");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_TTOPTION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "DEVMODE_TTOPTION");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLLATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "DEVMODE_COLLATE");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_FORMNAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "DEVMODE_FORMNAME");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_LOGPIXELS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "DEVMODE_LOGPIXELS");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_BITSPERPEL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "DEVMODE_BITSPERPEL");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSWIDTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "DEVMODE_PELSWIDTH");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "DEVMODE_PELSHEIGHT");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "DEVMODE_DISPLAYFLAGS");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "DEVMODE_DISPLAYFREQUENCY");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMMETHOD, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "DEVMODE_ICMMETHOD");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMINTENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "DEVMODE_ICMINTENT");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_MEDIATYPE, tvb, offset-4, 4, flags);
+       if (flags&( 0x02000000 )){
+               proto_item_append_text(item, "DEVMODE_MEDIATYPE");
+               if (flags & (~( 0x02000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x02000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DITHERTYPE, tvb, offset-4, 4, flags);
+       if (flags&( 0x04000000 )){
+               proto_item_append_text(item, "DEVMODE_DITHERTYPE");
+               if (flags & (~( 0x04000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "DEVMODE_PANNINGWIDTH");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "DEVMODE_PANNINGHEIGHT");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMSPEC_NT3=0x320, */
+/* IDL:        DMSPEC_WIN95_98_ME=0x400, */
+/* IDL:        DMSPEC_NT4_AND_ABOVE=0x401, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeSpecVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMORIENT_PORTRAIT=0x0001, */
+/* IDL:        DMORIENT_LANDSCAPE=0x0002, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeOrientation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMPAPER_LETTER=0x0001, */
+/* IDL:        DMPAPER_LETTERSMALL=0x0002, */
+/* IDL:        DMPAPER_TABLOID=0x0003, */
+/* IDL:        DMPAPER_LEDGER=0x0004, */
+/* IDL:        DMPAPER_LEGAL=0x0005, */
+/* IDL:        DMPAPER_STATEMENT=0x0006, */
+/* IDL:        DMPAPER_EXECUTIVE=0x0007, */
+/* IDL:        DMPAPER_A3=0x0008, */
+/* IDL:        DMPAPER_A4=0x0009, */
+/* IDL:        DMPAPER_A4SMALL=0x000A, */
+/* IDL:        DMPAPER_A5=0x000B, */
+/* IDL:        DMPAPER_B4=0x000C, */
+/* IDL:        DMPAPER_B5=0x000D, */
+/* IDL:        DMPAPER_FOLIO=0x000E, */
+/* IDL:        DMPAPER_QUARTO=0x000F, */
+/* IDL:        DMPAPER_10X14=0x0010, */
+/* IDL:        DMPAPER_11X17=0x0011, */
+/* IDL:        DMPAPER_NOTE=0x0012, */
+/* IDL:        DMPAPER_ENV_9=0x0013, */
+/* IDL:        DMPAPER_ENV_10=0x0014, */
+/* IDL:        DMPAPER_ENV_11=0x0015, */
+/* IDL:        DMPAPER_ENV_12=0x0016, */
+/* IDL:        DMPAPER_ENV_14=0x0017, */
+/* IDL:        DMPAPER_CSHEET=0x0018, */
+/* IDL:        DMPAPER_DSHEET=0x0019, */
+/* IDL:        DMPAPER_ESHEET=0x001A, */
+/* IDL:        DMPAPER_ENV_DL=0x001B, */
+/* IDL:        DMPAPER_ENV_C5=0x001C, */
+/* IDL:        DMPAPER_ENV_C3=0x001D, */
+/* IDL:        DMPAPER_ENV_C4=0x001E, */
+/* IDL:        DMPAPER_ENV_C6=0x001F, */
+/* IDL:        DMPAPER_ENV_C65=0x0020, */
+/* IDL:        DMPAPER_ENV_B4=0x0021, */
+/* IDL:        DMPAPER_ENV_B5=0x0022, */
+/* IDL:        DMPAPER_ENV_B6=0x0023, */
+/* IDL:        DMPAPER_ENV_ITALY=0x0024, */
+/* IDL:        DMPAPER_ENV_MONARCH=0x0025, */
+/* IDL:        DMPAPER_ENV_PERSONAL=0x0026, */
+/* IDL:        DMPAPER_FANFOLD_US=0x0027, */
+/* IDL:        DMPAPER_FANFOLD_STD_GERMAN=0x0028, */
+/* IDL:        DMPAPER_FANFOLD_LGL_GERMAN=0x0029, */
+/* IDL:        DMPAPER_DBL_JAPANESE_POSTCARD=0x0045, */
+/* IDL:        DMPAPER_A6=0x0046, */
+/* IDL:        DMPAPER_JENV_KAKU2=0x0047, */
+/* IDL:        DMPAPER_JENV_KAKU3=0x0048, */
+/* IDL:        DMPAPER_JENV_CHOU3=0x0049, */
+/* IDL:        DMPAPER_JENV_CHOU4=0x004A, */
+/* IDL:        DMPAPER_LETTER_ROTATED=0x004B, */
+/* IDL:        DMPAPER_A3_ROTATED=0x004C, */
+/* IDL:        DMPAPER_A4_ROTATED=0x004D, */
+/* IDL:        DMPAPER_A5_ROTATED=0x004E, */
+/* IDL:        DMPAPER_B4_JIS_ROTATED=0x004F, */
+/* IDL:        DMPAPER_B5_JIS_ROTATED=0x0050, */
+/* IDL:        DMPAPER_JAPANESE_POSTCARD_ROTATED=0x0051, */
+/* IDL:        DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED=0x0052, */
+/* IDL:        DMPAPER_A6_ROTATED=0x0053, */
+/* IDL:        DMPAPER_JENV_KAKU2_ROTATED=0x0054, */
+/* IDL:        DMPAPER_JENV_KAKU3_ROTATED=0x0055, */
+/* IDL:        DMPAPER_JENV_CHOU3_ROTATED=0x0056, */
+/* IDL:        DMPAPER_JENV_CHOU4_ROTATED=0x0057, */
+/* IDL:        DMPAPER_B6_JIS=0x0058, */
+/* IDL:        DMPAPER_B6_JIS_ROTATED=0x0059, */
+/* IDL:        DMPAPER_12X11=0x005A, */
+/* IDL:        DMPAPER_JENV_YOU4=0x005B, */
+/* IDL:        DMPAPER_JENV_YOU4_ROTATED=0x005C, */
+/* IDL:        DMPAPER_P16K=0x005D, */
+/* IDL:        DMPAPER_P32K=0x005E, */
+/* IDL:        DMPAPER_P32KBIG=0x005F, */
+/* IDL:        DMPAPER_PENV_1=0x0060, */
+/* IDL:        DMPAPER_PENV_2=0x0061, */
+/* IDL:        DMPAPER_PENV_3=0x0062, */
+/* IDL:        DMPAPER_PENV_4=0x0063, */
+/* IDL:        DMPAPER_PENV_5=0x0064, */
+/* IDL:        DMPAPER_PENV_6=0x0065, */
+/* IDL:        DMPAPER_PENV_7=0x0066, */
+/* IDL:        DMPAPER_PENV_8=0x0067, */
+/* IDL:        DMPAPER_PENV_9=0x0068, */
+/* IDL:        DMPAPER_PENV_10=0x0069, */
+/* IDL:        DMPAPER_P16K_ROTATED=0x006A, */
+/* IDL:        DMPAPER_P32K_ROTATED=0x006B, */
+/* IDL:        DMPAPER_P32KBIG_ROTATED=0x006C, */
+/* IDL:        DMPAPER_PENV_1_ROTATED=0x006D, */
+/* IDL:        DMPAPER_PENV_2_ROTATED=0x006E, */
+/* IDL:        DMPAPER_PENV_3_ROTATED=0x006F, */
+/* IDL:        DMPAPER_PENV_4_ROTATED=0x0070, */
+/* IDL:        DMPAPER_PENV_5_ROTATED=0x0071, */
+/* IDL:        DMPAPER_PENV_6_ROTATED=0x0072, */
+/* IDL:        DMPAPER_PENV_7_ROTATED=0x0073, */
+/* IDL:        DMPAPER_PENV_8_ROTATED=0x0074, */
+/* IDL:        DMPAPER_PENV_9_ROTATED=0x0075, */
+/* IDL:        DMPAPER_PENV_10_ROTATED=0x0076, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModePaperSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMBIN_UPPER=0x0001, */
+/* IDL:        DMBIN_LOWER=0x0002, */
+/* IDL:        DMBIN_MIDDLE=0x0003, */
+/* IDL:        DMBIN_MANUAL=0x0004, */
+/* IDL:        DMBIN_ENVELOPE=0x0005, */
+/* IDL:        DMBIN_ENVMANUAL=0x0006, */
+/* IDL:        DMBIN_AUTO=0x0007, */
+/* IDL:        DMBIN_TRACTOR=0x0008, */
+/* IDL:        DMBIN_SMALLFMT=0x0009, */
+/* IDL:        DMBIN_LARGEFMT=0x000a, */
+/* IDL:        DMBIN_LARGECAPACITY=0x000b, */
+/* IDL:        DMBIN_CASSETTE=0x000e, */
+/* IDL:        DMBIN_FORMSOURCE=0x000f, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeDefaultSource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMRES_HIGH=0xfffc, */
+/* IDL:        DMRES_MEDIUM=0xfffd, */
+/* IDL:        DMRES_LOW=0xfffe, */
+/* IDL:        DMRES_DRAFT=0xffff, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModePrintQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMRES_MONOCHROME=0x0001, */
+/* IDL:        DMRES_COLOR=0x0002, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeColor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMDUP_SIMPLEX=0x0001, */
+/* IDL:        DMDUP_VERTICAL=0x0002, */
+/* IDL:        DMDUP_HORIZONTAL=0x0003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeDuplex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMTT_BITMAP=0x0001, */
+/* IDL:        DMTT_DOWNLOAD=0x0002, */
+/* IDL:        DMTT_SUBDEV=0x0003, */
+/* IDL:        DMTT_DOWNLOAD_OUTLINE=0x0004, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeTTOption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMCOLLATE_FALSE=0x0000, */
+/* IDL:        DMCOLLATE_TRUE=0x0001, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeCollate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMNUP_SYSTEM=0x00000001, */
+/* IDL:        DMNUP_ONEUP=0x00000002, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeNUp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMICMMETHOD_NONE=0x00000001, */
+/* IDL:        DMICMMETHOD_SYSTEM=0x00000002, */
+/* IDL:        DMICMMETHOD_DRIVER=0x00000003, */
+/* IDL:        DMICMMETHOD_DEVICE=0x00000004, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeICMMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMICM_SATURATE=0x00000001, */
+/* IDL:        DMICM_CONTRAST=0x00000002, */
+/* IDL:        DMICM_COLORIMETRIC=0x00000003, */
+/* IDL:        DMICM_ABS_COLORIMETRIC=0x00000004, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeICMIntent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMMEDIA_STANDARD=0x00000001, */
+/* IDL:        DMMEDIA_TRANSPARENCY=0x00000002, */
+/* IDL:        DMMEDIA_GLOSSY=0x00000003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeMediaType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        DMDITHER_NONE=0x00000001, */
+/* IDL:        DMDITHER_COARSE=0x00000002, */
+/* IDL:        DMDITHER_FINE=0x00000003, */
+/* IDL:        DMDITHER_LINEART=0x00000004, */
+/* IDL:        DMDITHER_ERRORDIFFUSION=0x00000005, */
+/* IDL:        DMDITHER_RESERVED6=0x00000006, */
+/* IDL:        DMDITHER_RESERVED7=0x00000007, */
+/* IDL:        DMDITHER_RESERVED8=0x00000008, */
+/* IDL:        DMDITHER_RESERVED9=0x00000009, */
+/* IDL:        DMDITHER_GRAYSCALE=0x0000000A, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DeviceModeDitherType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [to_null(1)] [charset(UTF16)] uint16 devicename[MAXDEVICENAME]; */
+/* IDL:        spoolss_DeviceModeSpecVersion specversion; */
+/* IDL:        uint16 driverversion; */
+/* IDL:        uint16 size; */
+/* IDL:        [value(r->driverextra_data.length)] uint16 __driverextra_length; */
+/* IDL:        spoolss_DeviceModeFields fields; */
+/* IDL:        spoolss_DeviceModeOrientation orientation; */
+/* IDL:        spoolss_DeviceModePaperSize papersize; */
+/* IDL:        uint16 paperlength; */
+/* IDL:        uint16 paperwidth; */
+/* IDL:        uint16 scale; */
+/* IDL:        uint16 copies; */
+/* IDL:        spoolss_DeviceModeDefaultSource defaultsource; */
+/* IDL:        spoolss_DeviceModePrintQuality printquality; */
+/* IDL:        spoolss_DeviceModeColor color; */
+/* IDL:        spoolss_DeviceModeDuplex duplex; */
+/* IDL:        uint16 yresolution; */
+/* IDL:        spoolss_DeviceModeTTOption ttoption; */
+/* IDL:        spoolss_DeviceModeCollate collate; */
+/* IDL:        [to_null(1)] [charset(UTF16)] uint16 formname[MAXDEVICENAME]; */
+/* IDL:        uint16 logpixels; */
+/* IDL:        uint32 bitsperpel; */
+/* IDL:        uint32 pelswidth; */
+/* IDL:        uint32 pelsheight; */
+/* IDL:        spoolss_DeviceModeNUp displayflags; */
+/* IDL:        uint32 displayfrequency; */
+/* IDL:        spoolss_DeviceModeICMMethod icmmethod; */
+/* IDL:        spoolss_DeviceModeICMIntent icmintent; */
+/* IDL:        spoolss_DeviceModeMediaType mediatype; */
+/* IDL:        spoolss_DeviceModeDitherType dithertype; */
+/* IDL:        uint32 reserved1; */
+/* IDL:        uint32 reserved2; */
+/* IDL:        uint32 panningwidth; */
+/* IDL:        uint32 panningheight; */
+/* IDL:        [subcontext_size(__driverextra_length)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING)] DATA_BLOB driverextra_data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DeviceMode_devicename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_devicename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_devicename, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_specversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeSpecVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_specversion, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_driverversion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_driverversion, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode___driverextra_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode___driverextra_length, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DeviceModeFields(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_fields, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_orientation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeOrientation(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_orientation, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_papersize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModePaperSize(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_papersize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_paperlength(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_paperlength, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_paperwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_paperwidth, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_scale(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_scale, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_copies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_copies, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_defaultsource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeDefaultSource(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_defaultsource, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_printquality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModePrintQuality(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_printquality, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeColor(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_color, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_duplex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeDuplex(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_duplex, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_yresolution(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_yresolution, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_ttoption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeTTOption(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_ttoption, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_collate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeCollate(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_collate, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_formname, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_logpixels(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_logpixels, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_bitsperpel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_bitsperpel, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_pelswidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_pelswidth, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_pelsheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_pelsheight, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_displayflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeNUp(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_displayflags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_displayfrequency(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_displayfrequency, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_icmmethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeICMMethod(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_icmmethod, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_icmintent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeICMIntent(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_icmintent, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_mediatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeMediaType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_mediatype, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_dithertype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DeviceModeDitherType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_dithertype, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_reserved1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_reserved1, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_reserved2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_panningwidth(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_panningwidth, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_panningheight(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_panningheight, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_driverextra_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_driverextra_data_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_DeviceMode_driverextra_data_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceMode_driverextra_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceMode_driverextra_data, 1);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DeviceMode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceMode);
+       }
+       
+       offset = spoolss_dissect_element_DeviceMode_devicename(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_specversion(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_driverversion(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode___driverextra_length(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_fields(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_orientation(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_papersize(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_paperlength(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_paperwidth(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_scale(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_copies(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_defaultsource(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_printquality(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_color(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_duplex(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_yresolution(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_ttoption(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_collate(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_formname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_logpixels(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_bitsperpel(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_pelswidth(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_pelsheight(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_displayflags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_displayfrequency(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_icmmethod(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_icmintent(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_mediatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_dithertype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_reserved1(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_panningwidth(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_panningheight(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DeviceMode_driverextra_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_ENUM_DEFAULT =  0x00000001 , */
+/* IDL:        PRINTER_ENUM_LOCAL =  0x00000002 , */
+/* IDL:        PRINTER_ENUM_CONNECTIONS =  0x00000004 , */
+/* IDL:        PRINTER_ENUM_FAVORITE =  0x00000004 , */
+/* IDL:        PRINTER_ENUM_NAME =  0x00000008 , */
+/* IDL:        PRINTER_ENUM_REMOTE =  0x00000010 , */
+/* IDL:        PRINTER_ENUM_SHARED =  0x00000020 , */
+/* IDL:        PRINTER_ENUM_NETWORK =  0x00000040 , */
+/* IDL:        PRINTER_ENUM_EXPAND =  0x00004000 , */
+/* IDL:        PRINTER_ENUM_CONTAINER =  0x00008000 , */
+/* IDL:        PRINTER_ENUM_ICON1 =  0x00010000 , */
+/* IDL:        PRINTER_ENUM_ICON2 =  0x00020000 , */
+/* IDL:        PRINTER_ENUM_ICON3 =  0x00040000 , */
+/* IDL:        PRINTER_ENUM_ICON4 =  0x00080000 , */
+/* IDL:        PRINTER_ENUM_ICON5 =  0x00100000 , */
+/* IDL:        PRINTER_ENUM_ICON6 =  0x00200000 , */
+/* IDL:        PRINTER_ENUM_ICON7 =  0x00400000 , */
+/* IDL:        PRINTER_ENUM_ICON8 =  0x00800000 , */
+/* IDL:        PRINTER_ENUM_HIDE =  0x01000000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_EnumPrinterFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_EnumPrinterFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_ENUM_DEFAULT");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "PRINTER_ENUM_LOCAL");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_ENUM_CONNECTIONS");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_ENUM_FAVORITE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "PRINTER_ENUM_NAME");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "PRINTER_ENUM_REMOTE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "PRINTER_ENUM_SHARED");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "PRINTER_ENUM_NETWORK");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_EXPAND");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_CONTAINER");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON1");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON2");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON3");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON4");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON5");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON6");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON7");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8, tvb, offset-4, 4, flags);
+       if (flags&( 0x00800000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_ICON8");
+               if (flags & (~( 0x00800000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00800000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "PRINTER_ENUM_HIDE");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_ATTRIBUTE_QUEUED =  0x00000001 , */
+/* IDL:        PRINTER_ATTRIBUTE_DIRECT =  0x00000002 , */
+/* IDL:        PRINTER_ATTRIBUTE_DEFAULT =  0x00000004 , */
+/* IDL:        PRINTER_ATTRIBUTE_SHARED =  0x00000008 , */
+/* IDL:        PRINTER_ATTRIBUTE_NETWORK =  0x00000010 , */
+/* IDL:        PRINTER_ATTRIBUTE_HIDDEN =  0x00000020 , */
+/* IDL:        PRINTER_ATTRIBUTE_LOCAL =  0x00000040 , */
+/* IDL:        PRINTER_ATTRIBUTE_ENABLE_DEVQ =  0x00000080 , */
+/* IDL:        PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS =  0x00000100 , */
+/* IDL:        PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST =  0x00000200 , */
+/* IDL:        PRINTER_ATTRIBUTE_WORK_OFFLINE =  0x00000400 , */
+/* IDL:        PRINTER_ATTRIBUTE_ENABLE_BIDI =  0x00000800 , */
+/* IDL:        PRINTER_ATTRIBUTE_RAW_ONLY =  0x00001000 , */
+/* IDL:        PRINTER_ATTRIBUTE_PUBLISHED =  0x00002000 , */
+/* IDL:        PRINTER_ATTRIBUTE_FAX =  0x00004000 , */
+/* IDL:        PRINTER_ATTRIBUTE_TS =  0x00008000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_PrinterAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterAttributes);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_QUEUED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_DIRECT");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_DEFAULT");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_SHARED");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_NETWORK");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_HIDDEN");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_LOCAL");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_ENABLE_DEVQ");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_WORK_OFFLINE");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_ENABLE_BIDI");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_RAW_ONLY");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_PUBLISHED");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_FAX");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "PRINTER_ATTRIBUTE_TS");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_EnumPrinterFlags flags; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *description; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *comment; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_EnumPrinterFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo1_description_, , "Pointer to Description (string)",hf_spoolss_spoolss_PrinterInfo1_description);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_description , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo1_name_, , "Pointer to Name (string)",hf_spoolss_spoolss_PrinterInfo1_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo1_comment_, , "Pointer to Comment (string)",hf_spoolss_spoolss_PrinterInfo1_comment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo1_comment , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo1);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo1_description(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo1_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo1_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *servername; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *sharename; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *portname; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *drivername; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *comment; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *location; */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *sepfile; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printprocessor; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *datatype; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *parameters; */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
+/* IDL:        spoolss_PrinterAttributes attributes; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 defaultpriority; */
+/* IDL:        uint32 starttime; */
+/* IDL:        uint32 untiltime; */
+/* IDL:        spoolss_PrinterStatus status; */
+/* IDL:        uint32 cjobs; */
+/* IDL:        uint32 averageppm; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_servername_, , "Pointer to Servername (string)",hf_spoolss_spoolss_PrinterInfo2_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_servername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo2_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_printername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_sharename_, , "Pointer to Sharename (string)",hf_spoolss_spoolss_PrinterInfo2_sharename);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_sharename , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_portname_, , "Pointer to Portname (string)",hf_spoolss_spoolss_PrinterInfo2_portname);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_portname , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_drivername_, , "Pointer to Drivername (string)",hf_spoolss_spoolss_PrinterInfo2_drivername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_drivername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_comment_, , "Pointer to Comment (string)",hf_spoolss_spoolss_PrinterInfo2_comment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_comment , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_location_, , "Pointer to Location (string)",hf_spoolss_spoolss_PrinterInfo2_location);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_location , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_PrinterInfo2_devmode);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_devmode_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_PrinterInfo2_devmode__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo2_devmode,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_sepfile_, , "Pointer to Sepfile (string)",hf_spoolss_spoolss_PrinterInfo2_sepfile);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_sepfile , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_printprocessor_, , "Pointer to Printprocessor (string)",hf_spoolss_spoolss_PrinterInfo2_printprocessor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_printprocessor , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_datatype_, , "Pointer to Datatype (string)",hf_spoolss_spoolss_PrinterInfo2_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_datatype , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_parameters_, , "Pointer to Parameters (string)",hf_spoolss_spoolss_PrinterInfo2_parameters);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_parameters , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo2_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_PrinterInfo2_secdesc);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_secdesc_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_PrinterInfo2_secdesc__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo2_secdesc,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_defaultpriority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_starttime, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_untiltime, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_cjobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo2_averageppm, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo2);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo2_servername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_sharename(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_portname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_drivername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_location(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_devmode(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_sepfile(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_printprocessor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_secdesc(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_defaultpriority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_starttime(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_untiltime(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_cjobs(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo2_averageppm(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo3_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo3_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_PrinterInfo3_secdesc);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo3_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo3_secdesc_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_PrinterInfo3_secdesc__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo3_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo3_secdesc,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo3);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo3_secdesc(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *servername; */
+/* IDL:        spoolss_PrinterAttributes attributes; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo4_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo4_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo4_printername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo4_servername_, , "Pointer to Servername (string)",hf_spoolss_spoolss_PrinterInfo4_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo4_servername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo4_attributes, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo4);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo4_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo4_servername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo4_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printername; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *portname; */
+/* IDL:        spoolss_PrinterAttributes attributes; */
+/* IDL:        uint32 device_not_selected_timeout; */
+/* IDL:        uint32 transmission_retry_timeout; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo5_printername_, , "Pointer to Printername (string)",hf_spoolss_spoolss_PrinterInfo5_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_printername , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo5_portname_, , "Pointer to Portname (string)",hf_spoolss_spoolss_PrinterInfo5_portname);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_portname , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_device_not_selected_timeout, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo5_transmission_retry_timeout, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo5);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo5_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo5_portname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo5_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo5_device_not_selected_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo5_transmission_retry_timeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_PrinterStatus status; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo6_status, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo6);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo6_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        DSPRINT_PUBLISH =  0x00000001 , */
+/* IDL:        DSPRINT_UPDATE =  0x00000002 , */
+/* IDL:        DSPRINT_UNPUBLISH =  0x00000004 , */
+/* IDL:        DSPRINT_REPUBLISH =  0x00000008 , */
+/* IDL:        DSPRINT_PENDING =  0x80000000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_DsPrintAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DsPrintAction);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_PUBLISH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DSPRINT_PUBLISH");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_UPDATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DSPRINT_UPDATE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_UNPUBLISH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DSPRINT_UNPUBLISH");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_REPUBLISH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "DSPRINT_REPUBLISH");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DsPrintAction_DSPRINT_PENDING, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "DSPRINT_PENDING");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *guid; */
+/* IDL:        spoolss_DsPrintAction action; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterInfo7_guid_, , "Pointer to Guid (string)",hf_spoolss_spoolss_PrinterInfo7_guid);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo7_guid , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DsPrintAction(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterInfo7_action, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo7);
+       }
+       
+       offset = spoolss_dissect_element_PrinterInfo7_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterInfo7_action(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DeviceModeInfo_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeviceModeInfo_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_DeviceModeInfo_devmode);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeInfo_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeviceModeInfo_devmode_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_DeviceModeInfo_devmode__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeviceModeInfo_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DeviceModeInfo_devmode,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DeviceModeInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DeviceModeInfo);
+       }
+       
+       offset = spoolss_dissect_element_DeviceModeInfo_devmode(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(0)] [case(0)] spoolss_PrinterInfo0 info0; */
+/* IDL: [case(1)] [case(1)] spoolss_PrinterInfo1 info1; */
+/* IDL: [case(2)] [case(2)] spoolss_PrinterInfo2 info2; */
+/* IDL: [case(3)] [case(3)] spoolss_PrinterInfo3 info3; */
+/* IDL: [case(4)] [case(4)] spoolss_PrinterInfo4 info4; */
+/* IDL: [case(5)] [case(5)] spoolss_PrinterInfo5 info5; */
+/* IDL: [case(6)] [case(6)] spoolss_PrinterInfo6 info6; */
+/* IDL: [case(7)] [case(7)] spoolss_PrinterInfo7 info7; */
+/* IDL: [case(8)] [case(8)] spoolss_DeviceModeInfo info8; */
+/* IDL: [case(9)] [case(9)] spoolss_DeviceModeInfo info9; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo0(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info0,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo5(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info5,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info6,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterInfo7(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info7,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceModeInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info8,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceModeInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterInfo_info9,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PrinterInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrinterInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterInfo);
+       }
+
+       switch(level) {
+               case 0:
+                       offset = spoolss_dissect_element_PrinterInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = spoolss_dissect_element_PrinterInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_PrinterInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_PrinterInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_PrinterInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = spoolss_dissect_element_PrinterInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = spoolss_dissect_element_PrinterInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = spoolss_dissect_element_PrinterInfo_info7(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = spoolss_dissect_element_PrinterInfo_info8(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 9:
+                       offset = spoolss_dissect_element_PrinterInfo_info9(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(_ndr_size_spoolss_DeviceMode(devmode,ndr->flags))] uint32 _ndr_size; */
+/* IDL:        [unique(1)] [subcontext_size(_ndr_size)] [subcontext(4)] spoolss_DeviceMode *devmode; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DevmodeContainer__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DevmodeContainer__ndr_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DevmodeContainer_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DevmodeContainer_devmode_, NDR_POINTER_UNIQUE, "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_DevmodeContainer_devmode);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DevmodeContainer_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DevmodeContainer_devmode_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_DevmodeContainer_devmode__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DevmodeContainer_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DevmodeContainer_devmode,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DevmodeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DevmodeContainer);
+       }
+       
+       offset = spoolss_dissect_element_DevmodeContainer__ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DevmodeContainer_devmode(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printer_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *server_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *user_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *document_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_type; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *text_status; */
+/* IDL:        spoolss_JobStatus status; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 position; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 pages_printed; */
+/* IDL:        spoolss_Time submitted; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_printer_name_, , "Pointer to Printer Name (string)",hf_spoolss_spoolss_JobInfo1_printer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_printer_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_server_name_, , "Pointer to Server Name (string)",hf_spoolss_spoolss_JobInfo1_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_server_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_user_name_, , "Pointer to User Name (string)",hf_spoolss_spoolss_JobInfo1_user_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_user_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_document_name_, , "Pointer to Document Name (string)",hf_spoolss_spoolss_JobInfo1_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_document_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_data_type_, , "Pointer to Data Type (string)",hf_spoolss_spoolss_JobInfo1_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_data_type , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo1_text_status_, , "Pointer to Text Status (string)",hf_spoolss_spoolss_JobInfo1_text_status);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_text_status , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_position, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo1_pages_printed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo1_submitted,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_JobInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo1);
+       }
+       
+       offset = spoolss_dissect_element_JobInfo1_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_printer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_data_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_text_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_position(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_pages_printed(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo1_submitted(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printer_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *server_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *user_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *document_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *notify_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_type; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *parameters; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *text_status; */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
+/* IDL:        spoolss_JobStatus status; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 position; */
+/* IDL:        uint32 start_time; */
+/* IDL:        uint32 until_time; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 size; */
+/* IDL:        spoolss_Time submitted; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 pages_printed; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_printer_name_, , "Pointer to Printer Name (string)",hf_spoolss_spoolss_JobInfo2_printer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_printer_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_server_name_, , "Pointer to Server Name (string)",hf_spoolss_spoolss_JobInfo2_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_server_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_user_name_, , "Pointer to User Name (string)",hf_spoolss_spoolss_JobInfo2_user_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_user_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_document_name_, , "Pointer to Document Name (string)",hf_spoolss_spoolss_JobInfo2_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_document_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_notify_name_, , "Pointer to Notify Name (string)",hf_spoolss_spoolss_JobInfo2_notify_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_notify_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_data_type_, , "Pointer to Data Type (string)",hf_spoolss_spoolss_JobInfo2_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_data_type , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_print_processor_, , "Pointer to Print Processor (string)",hf_spoolss_spoolss_JobInfo2_print_processor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_print_processor , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_parameters_, , "Pointer to Parameters (string)",hf_spoolss_spoolss_JobInfo2_parameters);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_parameters , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_JobInfo2_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_JobInfo2_devmode);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_devmode_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_JobInfo2_devmode__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo2_devmode,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_text_status_, , "Pointer to Text Status (string)",hf_spoolss_spoolss_JobInfo2_text_status);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_text_status , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo2_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_JobInfo2_secdesc);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_secdesc_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_JobInfo2_secdesc__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo2_secdesc,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_position, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_start_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_until_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo2_submitted,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo2_pages_printed, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_JobInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo2);
+       }
+       
+       offset = spoolss_dissect_element_JobInfo2_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_printer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_notify_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_data_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_print_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_devmode(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_text_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_secdesc(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_position(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_start_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_until_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_submitted(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo2_pages_printed(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        uint32 next_job_id; */
+/* IDL:        uint32 reserved; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JobInfo3_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo3_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo3_next_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo3_next_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo3_reserved, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_JobInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo3);
+       }
+       
+       offset = spoolss_dissect_element_JobInfo3_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo3_next_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo3_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *printer_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *server_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *user_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *document_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *notify_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_type; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *parameters; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_DeviceMode *devmode; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *text_status; */
+/* IDL:        [relative(1)] [subcontext(0)] [flag(LIBNDR_FLAG_ALIGN4)] spoolss_security_descriptor *secdesc; */
+/* IDL:        spoolss_JobStatus status; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 position; */
+/* IDL:        uint32 start_time; */
+/* IDL:        uint32 until_time; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 size; */
+/* IDL:        spoolss_Time submitted; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 pages_printed; */
+/* IDL:        uint32 size_high; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_printer_name_, , "Pointer to Printer Name (string)",hf_spoolss_spoolss_JobInfo4_printer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_printer_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_server_name_, , "Pointer to Server Name (string)",hf_spoolss_spoolss_JobInfo4_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_server_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_user_name_, , "Pointer to User Name (string)",hf_spoolss_spoolss_JobInfo4_user_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_user_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_document_name_, , "Pointer to Document Name (string)",hf_spoolss_spoolss_JobInfo4_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_document_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_notify_name_, , "Pointer to Notify Name (string)",hf_spoolss_spoolss_JobInfo4_notify_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_notify_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_data_type_, , "Pointer to Data Type (string)",hf_spoolss_spoolss_JobInfo4_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_data_type , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_print_processor_, , "Pointer to Print Processor (string)",hf_spoolss_spoolss_JobInfo4_print_processor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_print_processor , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_parameters_, , "Pointer to Parameters (string)",hf_spoolss_spoolss_JobInfo4_parameters);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_parameters , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_JobInfo4_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_devmode_, , "Pointer to Devmode (spoolss_DeviceMode)",hf_spoolss_spoolss_JobInfo4_devmode);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_devmode_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_devmode_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_JobInfo4_devmode__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_devmode__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DeviceMode(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo4_devmode,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_text_status_, , "Pointer to Text Status (string)",hf_spoolss_spoolss_JobInfo4_text_status);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_text_status , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_JobInfo4_secdesc_, , "Pointer to Secdesc (spoolss_security_descriptor)",hf_spoolss_spoolss_JobInfo4_secdesc);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_secdesc_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_JobInfo4_secdesc__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_secdesc__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_spoolss_security_descriptor(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo4_secdesc,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_position, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_start_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_until_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo4_submitted,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_pages_printed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfo4_size_high, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_JobInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo4);
+       }
+       
+       offset = spoolss_dissect_element_JobInfo4_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_printer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_notify_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_data_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_print_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_devmode(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_text_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_secdesc(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_position(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_start_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_until_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_submitted(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_pages_printed(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_JobInfo4_size_high(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_JobInfo1 info1; */
+/* IDL: [case(2)] [case(2)] spoolss_JobInfo2 info2; */
+/* IDL: [case(3)] [case(3)] spoolss_JobInfo3 info3; */
+/* IDL: [case(4)] [case(4)] spoolss_JobInfo4 info4; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_JobInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_JobInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_JobInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_JobInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_JobInfo_info4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_JobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_JobInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_JobInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_JobInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_JobInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_JobInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printer_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *document_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *text_status; */
+/* IDL:        spoolss_JobStatus status; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 position; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 pages_printed; */
+/* IDL:        spoolss_Time submitted; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetJobInfo1_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_printer_name_, NDR_POINTER_UNIQUE, "Pointer to Printer Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_printer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_printer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_user_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_user_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_SetJobInfo1_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_document_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_SetJobInfo1_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_data_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo1_text_status_, NDR_POINTER_UNIQUE, "Pointer to Text Status (uint16)",hf_spoolss_spoolss_SetJobInfo1_text_status);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo1_text_status, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_position, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo1_pages_printed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo1_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo1_submitted,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetJobInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo1);
+       }
+       
+       offset = spoolss_dissect_element_SetJobInfo1_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_printer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_data_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_text_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_position(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_pages_printed(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo1_submitted(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printer_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *document_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *notify_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *print_processor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *parameters; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] uint32 *_devmode_ptr; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *text_status; */
+/* IDL:        [unique(1)] uint32 *_secdesc_ptr; */
+/* IDL:        spoolss_JobStatus status; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 position; */
+/* IDL:        uint32 start_time; */
+/* IDL:        uint32 until_time; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 size; */
+/* IDL:        spoolss_Time submitted; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 pages_printed; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetJobInfo2_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_printer_name_, NDR_POINTER_UNIQUE, "Pointer to Printer Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_printer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_printer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_user_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_user_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_document_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_notify_name_, NDR_POINTER_UNIQUE, "Pointer to Notify Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_notify_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_notify_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_SetJobInfo2_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_data_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_print_processor_, NDR_POINTER_UNIQUE, "Pointer to Print Processor (uint16)",hf_spoolss_spoolss_SetJobInfo2_print_processor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_print_processor, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_parameters_, NDR_POINTER_UNIQUE, "Pointer to Parameters (uint16)",hf_spoolss_spoolss_SetJobInfo2_parameters);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_parameters, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_SetJobInfo2_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2__devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Devmode Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo2__devmode_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2__devmode_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2_text_status_, NDR_POINTER_UNIQUE, "Pointer to Text Status (uint16)",hf_spoolss_spoolss_SetJobInfo2_text_status);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo2_text_status, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo2__secdesc_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Secdesc Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_position, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_start_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_until_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo2_submitted,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo2_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo2_pages_printed, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetJobInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo2);
+       }
+       
+       offset = spoolss_dissect_element_SetJobInfo2_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_printer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_notify_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_data_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_print_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2__devmode_ptr(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_text_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2__secdesc_ptr(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_position(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_start_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_until_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_submitted(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo2_pages_printed(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 job_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printer_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *document_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *notify_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *print_processor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *parameters; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] uint32 *_devmode_ptr; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *text_status; */
+/* IDL:        [unique(1)] uint32 *_secdesc_ptr; */
+/* IDL:        spoolss_JobStatus status; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 position; */
+/* IDL:        uint32 start_time; */
+/* IDL:        uint32 until_time; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 size; */
+/* IDL:        spoolss_Time submitted; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 pages_printed; */
+/* IDL:        uint32 size_high; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetJobInfo4_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_printer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_printer_name_, NDR_POINTER_UNIQUE, "Pointer to Printer Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_printer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_printer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_printer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_user_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_user_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_document_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_notify_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_notify_name_, NDR_POINTER_UNIQUE, "Pointer to Notify Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_notify_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_notify_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_notify_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_SetJobInfo4_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_data_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_print_processor_, NDR_POINTER_UNIQUE, "Pointer to Print Processor (uint16)",hf_spoolss_spoolss_SetJobInfo4_print_processor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_print_processor, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_parameters_, NDR_POINTER_UNIQUE, "Pointer to Parameters (uint16)",hf_spoolss_spoolss_SetJobInfo4_parameters);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_parameters, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_SetJobInfo4_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4__devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4__devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Devmode Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo4__devmode_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4__devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4__devmode_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_text_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4_text_status_, NDR_POINTER_UNIQUE, "Pointer to Text Status (uint16)",hf_spoolss_spoolss_SetJobInfo4_text_status);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_text_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetJobInfo4_text_status, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4__secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo4__secdesc_ptr_, NDR_POINTER_UNIQUE, "Pointer to  Secdesc Ptr (uint32)",hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4__secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_position(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_position, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_start_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_start_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_until_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_until_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_submitted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo4_submitted,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_time, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_pages_printed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_pages_printed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo4_size_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJobInfo4_size_high, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetJobInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo4);
+       }
+       
+       offset = spoolss_dissect_element_SetJobInfo4_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_printer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_notify_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_data_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_print_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4__devmode_ptr(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_text_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4__secdesc_ptr(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_position(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_start_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_until_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_submitted(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_pages_printed(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetJobInfo4_size_high(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [public(1)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_SetJobInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_SetJobInfo2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] spoolss_JobInfo3 *info3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] spoolss_SetJobInfo4 *info4; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetJobInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_SetJobInfo1)",hf_spoolss_spoolss_SetJobInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetJobInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_SetJobInfo2)",hf_spoolss_spoolss_SetJobInfo_info2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetJobInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_JobInfo3)",hf_spoolss_spoolss_SetJobInfo_info3);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_JobInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJobInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (spoolss_SetJobInfo4)",hf_spoolss_spoolss_SetJobInfo_info4);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJobInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetJobInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJobInfo_info4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetJobInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_SetJobInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetJobInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_SetJobInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_SetJobInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_SetJobInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_SetJobInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_SetJobInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_JobInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfoContainer_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_JobInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_SetJobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_JobInfoContainer_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_JobInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_JobInfoContainer);
+       }
+       
+       offset = spoolss_dissect_element_JobInfoContainer_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_JobInfoContainer_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_JOB_CONTROL_PAUSE=1, */
+/* IDL:        SPOOLSS_JOB_CONTROL_RESUME=2, */
+/* IDL:        SPOOLSS_JOB_CONTROL_CANCEL=3, */
+/* IDL:        SPOOLSS_JOB_CONTROL_RESTART=4, */
+/* IDL:        SPOOLSS_JOB_CONTROL_DELETE=5, */
+/* IDL:        SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER=6, */
+/* IDL:        SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED=7, */
+/* IDL:        SPOOLSS_JOB_CONTROL_RETAIN=8, */
+/* IDL:        SPOOLSS_JOB_CONTROL_RELEASE=9, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_JobControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_PRINTER_CONTROL_UNPAUSE=0, */
+/* IDL:        SPOOLSS_PRINTER_CONTROL_PAUSE=1, */
+/* IDL:        SPOOLSS_PRINTER_CONTROL_RESUME=2, */
+/* IDL:        SPOOLSS_PRINTER_CONTROL_PURGE=3, */
+/* IDL:        SPOOLSS_PRINTER_CONTROL_SET_STATUS=4, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_PrinterControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *servername; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printername; */
+/* IDL:        uint32 cjobs; */
+/* IDL:        uint32 total_jobs; */
+/* IDL:        uint32 total_bytes; */
+/* IDL:        spoolss_Time time; */
+/* IDL:        uint32 global_counter; */
+/* IDL:        uint32 total_pages; */
+/* IDL:        uint32 version; */
+/* IDL:        spoolss_Build free_build; */
+/* IDL:        uint32 spooling; */
+/* IDL:        uint32 max_spooling; */
+/* IDL:        uint32 session_counter; */
+/* IDL:        uint32 num_error_out_of_paper; */
+/* IDL:        uint32 num_error_not_ready; */
+/* IDL:        spoolss_JobStatus job_error; */
+/* IDL:        uint32 number_of_processors; */
+/* IDL:        spoolss_ProcessorType processor_type; */
+/* IDL:        uint32 high_part_total_bytes; */
+/* IDL:        uint32 change_id; */
+/* IDL:        WERROR last_error; */
+/* IDL:        spoolss_PrinterStatus status; */
+/* IDL:        uint32 enumerate_network_printers; */
+/* IDL:        uint32 c_setprinter; */
+/* IDL:        spoolss_ProcessorArchitecture processor_architecture; */
+/* IDL:        uint16 processor_level; */
+/* IDL:        uint32 ref_ic; */
+/* IDL:        uint32 reserved2; */
+/* IDL:        uint32 reserved3; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo0_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPrinterInfo0_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo0_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo0_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo0_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo0_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_cjobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_total_jobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_total_jobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_total_bytes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Time(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo0_time,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_global_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_global_counter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_total_pages(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_total_pages, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_free_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_Build(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_free_build, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_spooling, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_max_spooling(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_max_spooling, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_session_counter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_session_counter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_num_error_out_of_paper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_num_error_out_of_paper, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_num_error_not_ready(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_num_error_not_ready, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_job_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_JobStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_job_error, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_number_of_processors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_number_of_processors, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_processor_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_ProcessorType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_processor_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_high_part_total_bytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_high_part_total_bytes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_change_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_change_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_last_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_last_error, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_enumerate_network_printers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_enumerate_network_printers, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_c_setprinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_c_setprinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_processor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_processor_architecture, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_processor_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_processor_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_ref_ic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_ref_ic, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_reserved2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_reserved2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo0_reserved3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo0_reserved3, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo0);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo0_servername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_cjobs(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_total_jobs(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_total_bytes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_time(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_global_counter(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_total_pages(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_free_build(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_spooling(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_max_spooling(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_session_counter(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_num_error_out_of_paper(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_num_error_not_ready(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_job_error(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_number_of_processors(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_processor_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_high_part_total_bytes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_change_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_last_error(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_enumerate_network_printers(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_c_setprinter(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_processor_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_processor_level(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_ref_ic(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_reserved2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo0_reserved3(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_PrinterAttributes flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *description; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo1_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo1_description_, NDR_POINTER_UNIQUE, "Pointer to Description (uint16)",hf_spoolss_spoolss_SetPrinterInfo1_description);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo1_description, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo1_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_spoolss_spoolss_SetPrinterInfo1_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo1_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo1_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_spoolss_spoolss_SetPrinterInfo1_comment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo1_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo1);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo1_description(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo1_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo1_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *servername; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printername; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *sharename; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *portname; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *drivername; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *location; */
+/* IDL:        [unique(1)] uint32 *devmode_ptr; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *sepfile; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printprocessor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *datatype; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *parameters; */
+/* IDL:        [unique(1)] uint32 *secdesc_ptr; */
+/* IDL:        spoolss_PrinterAttributes attributes; */
+/* IDL:        [range(0,99)] uint32 priority; */
+/* IDL:        uint32 defaultpriority; */
+/* IDL:        uint32 starttime; */
+/* IDL:        uint32 untiltime; */
+/* IDL:        spoolss_PrinterStatus status; */
+/* IDL:        uint32 cjobs; */
+/* IDL:        uint32 averageppm; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_sharename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_sharename_, NDR_POINTER_UNIQUE, "Pointer to Sharename (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_sharename);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_sharename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_sharename, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_portname_, NDR_POINTER_UNIQUE, "Pointer to Portname (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_portname);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_portname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_drivername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_drivername_, NDR_POINTER_UNIQUE, "Pointer to Drivername (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_drivername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_drivername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_drivername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_comment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_location(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_location_, NDR_POINTER_UNIQUE, "Pointer to Location (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_location);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_location_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_location, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to Devmode Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_sepfile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_sepfile_, NDR_POINTER_UNIQUE, "Pointer to Sepfile (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_sepfile);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_sepfile_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_sepfile, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_printprocessor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_printprocessor_, NDR_POINTER_UNIQUE, "Pointer to Printprocessor (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_printprocessor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_printprocessor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_printprocessor, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_parameters(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_parameters_, NDR_POINTER_UNIQUE, "Pointer to Parameters (uint16)",hf_spoolss_spoolss_SetPrinterInfo2_parameters);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_parameters_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo2_parameters, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr_, NDR_POINTER_UNIQUE, "Pointer to Secdesc Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_priority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_defaultpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_defaultpriority, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_starttime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_starttime, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_untiltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_untiltime, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_cjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_cjobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo2_averageppm(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo2_averageppm, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo2);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo2_servername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_sharename(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_portname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_drivername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_location(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_devmode_ptr(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_sepfile(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_printprocessor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_parameters(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_secdesc_ptr(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_defaultpriority(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_starttime(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_untiltime(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_cjobs(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo2_averageppm(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] uint32 *sec_desc_ptr; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr_, NDR_POINTER_UNIQUE, "Pointer to Sec Desc Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo3);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo3_sec_desc_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printername; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *servername; */
+/* IDL:        spoolss_PrinterAttributes attributes; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo4_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo4_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo4_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo4_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo4_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo4_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo4_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPrinterInfo4_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo4_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo4_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo4_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo4_attributes, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo4);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo4_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo4_servername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo4_attributes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *printername; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *portname; */
+/* IDL:        spoolss_PrinterAttributes attributes; */
+/* IDL:        uint32 device_not_selected_timeout; */
+/* IDL:        uint32 transmission_retry_timeout; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo5_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_SetPrinterInfo5_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo5_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo5_portname_, NDR_POINTER_UNIQUE, "Pointer to Portname (uint16)",hf_spoolss_spoolss_SetPrinterInfo5_portname);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo5_portname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo5_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_device_not_selected_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo5_device_not_selected_timeout, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo5_transmission_retry_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo5_transmission_retry_timeout, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo5);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo5_printername(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo5_portname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo5_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo5_device_not_selected_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo5_transmission_retry_timeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_PrinterStatus status; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo6_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo6_status, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo6);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo6_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *guid; */
+/* IDL:        spoolss_DsPrintAction action; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo7_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo7_guid_, NDR_POINTER_UNIQUE, "Pointer to Guid (uint16)",hf_spoolss_spoolss_SetPrinterInfo7_guid);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo7_guid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterInfo7_guid, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo7_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DsPrintAction(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo7_action, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo7);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo7_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPrinterInfo7_action(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] uint32 *devmode_ptr; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo8_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo8_devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to Devmode Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo8_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo8);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo8_devmode_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] uint32 *devmode_ptr; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo9_devmode_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo9_devmode_ptr_, NDR_POINTER_UNIQUE, "Pointer to Devmode Ptr (uint32)",hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo9_devmode_ptr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo9);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfo9_devmode_ptr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] spoolss_SetPrinterInfo0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_SetPrinterInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_SetPrinterInfo2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] spoolss_SetPrinterInfo3 *info3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] spoolss_SetPrinterInfo4 *info4; */
+/* IDL: [case(5)] [unique(1)] [case(5)] spoolss_SetPrinterInfo5 *info5; */
+/* IDL: [case(6)] [unique(1)] [case(6)] spoolss_SetPrinterInfo6 *info6; */
+/* IDL: [case(7)] [unique(1)] [case(7)] spoolss_SetPrinterInfo7 *info7; */
+/* IDL: [case(8)] [unique(1)] [case(8)] spoolss_SetPrinterInfo8 *info8; */
+/* IDL: [case(9)] [unique(1)] [case(9)] spoolss_SetPrinterInfo9 *info9; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (spoolss_SetPrinterInfo0)",hf_spoolss_spoolss_SetPrinterInfo_info0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo0(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info0,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_SetPrinterInfo1)",hf_spoolss_spoolss_SetPrinterInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_SetPrinterInfo2)",hf_spoolss_spoolss_SetPrinterInfo_info2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_SetPrinterInfo3)",hf_spoolss_spoolss_SetPrinterInfo_info3);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (spoolss_SetPrinterInfo4)",hf_spoolss_spoolss_SetPrinterInfo_info4);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info5_, NDR_POINTER_UNIQUE, "Pointer to Info5 (spoolss_SetPrinterInfo5)",hf_spoolss_spoolss_SetPrinterInfo_info5);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info5_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo5(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info5,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (spoolss_SetPrinterInfo6)",hf_spoolss_spoolss_SetPrinterInfo_info6);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info6,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info7_, NDR_POINTER_UNIQUE, "Pointer to Info7 (spoolss_SetPrinterInfo7)",hf_spoolss_spoolss_SetPrinterInfo_info7);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info7_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo7(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info7,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info8_, NDR_POINTER_UNIQUE, "Pointer to Info8 (spoolss_SetPrinterInfo8)",hf_spoolss_spoolss_SetPrinterInfo_info8);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo8(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info8,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterInfo_info9_, NDR_POINTER_UNIQUE, "Pointer to Info9 (spoolss_SetPrinterInfo9)",hf_spoolss_spoolss_SetPrinterInfo_info9);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfo_info9_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfo9(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinterInfo_info9,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetPrinterInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_SetPrinterInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info7(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info8(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 9:
+                       offset = spoolss_dissect_element_SetPrinterInfo_info9(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_SetPrinterInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPrinterInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_SetPrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterInfoCtr_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPrinterInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPrinterInfoCtr);
+       }
+       
+       offset = spoolss_dissect_element_SetPrinterInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_SetPrinterInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value((ndr_size_spoolss_StringArray(r,ndr->flags)-4)/2)] uint32 _ndr_size; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array string; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_StringArray__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StringArray__ndr_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StringArray_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_StringArray_string,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_StringArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_StringArray);
+       }
+       
+       offset = spoolss_dissect_element_StringArray__ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_StringArray_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo1_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo1_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo1_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo1);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo1_driver_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DRIVER_VERSION_9X=0, */
+/* IDL:        SPOOLSS_DRIVER_VERSION_NT35=1, */
+/* IDL:        SPOOLSS_DRIVER_VERSION_NT4=2, */
+/* IDL:        SPOOLSS_DRIVER_VERSION_200X=3, */
+/* IDL:        SPOOLSS_DRIVER_VERSION_2012=4, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DriverOSVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *architecture; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *config_file; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo2_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo2_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo2_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo2_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_driver_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo2_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_data_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo2_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo2_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo2_config_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo2);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo2_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo2_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo2_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo2_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo2_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo2_config_file(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *architecture; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *config_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *help_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
+/* IDL:        [unique(1)] spoolss_StringArray *dependent_files; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo3_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo3_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo3_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo3_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_driver_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo3_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_data_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo3_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_config_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo3_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_help_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo3_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo3_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo3_default_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo3__ndr_size_dependent_files, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo3_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo3_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo3_dependent_files,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo3);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo3_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo3_dependent_files(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *architecture; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *config_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *help_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
+/* IDL:        [unique(1)] spoolss_StringArray *dependent_files; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] uint32 _ndr_size_previous_names; */
+/* IDL:        [unique(1)] spoolss_StringArray *previous_names; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo4_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo4_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo4_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo4_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_driver_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo4_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_data_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo4_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_config_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo4_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_help_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo4_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo4_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo4_default_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo4__ndr_size_dependent_files, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo4_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo4_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo4__ndr_size_previous_names, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo4_previous_names_, NDR_POINTER_UNIQUE, "Pointer to Previous Names (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo4_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo4_previous_names,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo4);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo4_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4__ndr_size_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo4_previous_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_DRIVER_PACKAGE_AWARE =  0x00000001 , */
+/* IDL:        PRINTER_DRIVER_XPS =  0x00000002 , */
+/* IDL:        PRINTER_DRIVER_SANDBOX_ENABLED =  0x00000004 , */
+/* IDL:        PRINTER_DRIVER_CLASS =  0x00000008 , */
+/* IDL:        PRINTER_DRIVER_DERIVED =  0x00000010 , */
+/* IDL:        PRINTER_DRIVER_NOT_SHAREABLE =  0x00000020 , */
+/* IDL:        PRINTER_DRIVER_CATEGORY_FAX =  0x00000040 , */
+/* IDL:        PRINTER_DRIVER_CATEGORY_FILE =  0x00000080 , */
+/* IDL:        PRINTER_DRIVER_CATEGORY_VIRTUAL =  0x00000100 , */
+/* IDL:        PRINTER_DRIVER_CATEGORY_SERVICE =  0x00000200 , */
+/* IDL:        PRINTER_DRIVER_SOFT_RESET_REQUIRED =  0x00000400 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_DriverAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DriverAttributes);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_PACKAGE_AWARE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_XPS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_XPS");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_SANDBOX_ENABLED");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CLASS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_CLASS");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_DERIVED");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_NOT_SHAREABLE");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_FAX");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_FILE");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_VIRTUAL");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_CATEGORY_SERVICE");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "PRINTER_DRIVER_SOFT_RESET_REQUIRED");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *architecture; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *config_file; */
+/* IDL:        spoolss_DriverAttributes driver_attributes; */
+/* IDL:        uint32 config_version; */
+/* IDL:        uint32 driver_version; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo5_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo5_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo5_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_driver_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo5_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_data_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo5_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo5_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo5_config_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_driver_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_config_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo5_driver_version, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo5);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo5_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_driver_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_config_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo5_driver_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *architecture; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *config_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *help_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
+/* IDL:        [unique(1)] spoolss_StringArray *dependent_files; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] uint32 _ndr_size_previous_names; */
+/* IDL:        [unique(1)] spoolss_StringArray *previous_names; */
+/* IDL:        NTTIME driver_date; */
+/* IDL:        hyper driver_version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *manufacturer_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *manufacturer_url; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *hardware_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *provider; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo6_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo6_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo6_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_driver_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo6_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_data_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo6_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_config_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo6_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_help_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo6_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo6_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_default_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6__ndr_size_dependent_files, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo6_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo6_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6__ndr_size_previous_names, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_previous_names_, NDR_POINTER_UNIQUE, "Pointer to Previous Names (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo6_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo6_previous_names,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6_driver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo6_driver_version, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_manufacturer_name_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Name (uint16)",hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_manufacturer_url_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Url (uint16)",hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_hardware_id_, NDR_POINTER_UNIQUE, "Pointer to Hardware Id (uint16)",hf_spoolss_spoolss_AddDriverInfo6_hardware_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_hardware_id, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo6_provider_, NDR_POINTER_UNIQUE, "Pointer to Provider (uint16)",hf_spoolss_spoolss_AddDriverInfo6_provider);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo6_provider, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo6);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo6_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6__ndr_size_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_driver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_driver_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_manufacturer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_manufacturer_url(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_hardware_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo6_provider(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *architecture; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *driver_path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *data_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *config_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *help_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *default_datatype; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(dependent_files,ndr->flags)-4)/2))] uint32 _ndr_size_dependent_files; */
+/* IDL:        [unique(1)] spoolss_StringArray *dependent_files; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(previous_names,ndr->flags)-4)/2))] uint32 _ndr_size_previous_names; */
+/* IDL:        [unique(1)] spoolss_StringArray *previous_names; */
+/* IDL:        NTTIME driver_date; */
+/* IDL:        hyper driver_version; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *manufacturer_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *manufacturer_url; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *hardware_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *provider; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *print_processor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *vendor_setup; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(color_profiles,ndr->flags)-4)/2))] uint32 _ndr_size_color_profiles; */
+/* IDL:        [unique(1)] spoolss_StringArray *color_profiles; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *inf_path; */
+/* IDL:        spoolss_DriverAttributes printer_driver_attributes; */
+/* IDL:        [value(((ndr_size_spoolss_StringArray(core_driver_dependencies,ndr->flags)-4)/2))] uint32 _ndr_size_core_driver_dependencies; */
+/* IDL:        [unique(1)] spoolss_StringArray *core_driver_dependencies; */
+/* IDL:        NTTIME min_inbox_driver_ver_date; */
+/* IDL:        hyper min_inbox_driver_ver_version; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_driver_name_, NDR_POINTER_UNIQUE, "Pointer to Driver Name (uint16)",hf_spoolss_spoolss_AddDriverInfo8_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_driver_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_AddDriverInfo8_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_driver_path_, NDR_POINTER_UNIQUE, "Pointer to Driver Path (uint16)",hf_spoolss_spoolss_AddDriverInfo8_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_driver_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_data_file_, NDR_POINTER_UNIQUE, "Pointer to Data File (uint16)",hf_spoolss_spoolss_AddDriverInfo8_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_data_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_config_file_, NDR_POINTER_UNIQUE, "Pointer to Config File (uint16)",hf_spoolss_spoolss_AddDriverInfo8_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_config_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_help_file_, NDR_POINTER_UNIQUE, "Pointer to Help File (uint16)",hf_spoolss_spoolss_AddDriverInfo8_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_help_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddDriverInfo8_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_default_datatype_, NDR_POINTER_UNIQUE, "Pointer to Default Datatype (uint16)",hf_spoolss_spoolss_AddDriverInfo8_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_default_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8__ndr_size_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_dependent_files, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_dependent_files_, NDR_POINTER_UNIQUE, "Pointer to Dependent Files (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8__ndr_size_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_previous_names, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_previous_names_, NDR_POINTER_UNIQUE, "Pointer to Previous Names (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_previous_names,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_driver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_driver_version, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_manufacturer_name_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Name (uint16)",hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_manufacturer_url_, NDR_POINTER_UNIQUE, "Pointer to Manufacturer Url (uint16)",hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_hardware_id_, NDR_POINTER_UNIQUE, "Pointer to Hardware Id (uint16)",hf_spoolss_spoolss_AddDriverInfo8_hardware_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_hardware_id, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_provider_, NDR_POINTER_UNIQUE, "Pointer to Provider (uint16)",hf_spoolss_spoolss_AddDriverInfo8_provider);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_provider, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_print_processor_, NDR_POINTER_UNIQUE, "Pointer to Print Processor (uint16)",hf_spoolss_spoolss_AddDriverInfo8_print_processor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_print_processor, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_vendor_setup_, NDR_POINTER_UNIQUE, "Pointer to Vendor Setup (uint16)",hf_spoolss_spoolss_AddDriverInfo8_vendor_setup);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_vendor_setup, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8__ndr_size_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_color_profiles, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_color_profiles_, NDR_POINTER_UNIQUE, "Pointer to Color Profiles (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_color_profiles);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_color_profiles,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_inf_path_, NDR_POINTER_UNIQUE, "Pointer to Inf Path (uint16)",hf_spoolss_spoolss_AddDriverInfo8_inf_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddDriverInfo8_inf_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_printer_driver_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8__ndr_size_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8__ndr_size_core_driver_dependencies, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Core Driver Dependencies (spoolss_StringArray)",hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_StringArray(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_version, NULL);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo8);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfo8_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_driver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_driver_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_manufacturer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_manufacturer_url(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_hardware_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_provider(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_print_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_vendor_setup(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_color_profiles(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_color_profiles(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_inf_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_printer_driver_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8__ndr_size_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddDriverInfo8_min_inbox_driver_ver_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_AddDriverInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_AddDriverInfo2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] spoolss_AddDriverInfo3 *info3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] spoolss_AddDriverInfo4 *info4; */
+/* IDL: [case(6)] [unique(1)] [case(6)] spoolss_AddDriverInfo6 *info6; */
+/* IDL: [case(8)] [unique(1)] [case(8)] spoolss_AddDriverInfo8 *info8; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_AddDriverInfo1)",hf_spoolss_spoolss_AddDriverInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_AddDriverInfo2)",hf_spoolss_spoolss_AddDriverInfo_info2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_AddDriverInfo3)",hf_spoolss_spoolss_AddDriverInfo_info3);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info4_, NDR_POINTER_UNIQUE, "Pointer to Info4 (spoolss_AddDriverInfo4)",hf_spoolss_spoolss_AddDriverInfo_info4);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info6_, NDR_POINTER_UNIQUE, "Pointer to Info6 (spoolss_AddDriverInfo6)",hf_spoolss_spoolss_AddDriverInfo_info6);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info6_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info6,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddDriverInfo_info8_, NDR_POINTER_UNIQUE, "Pointer to Info8 (spoolss_AddDriverInfo8)",hf_spoolss_spoolss_AddDriverInfo_info8);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfo_info8_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfo8(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddDriverInfo_info8,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddDriverInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_AddDriverInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_AddDriverInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_AddDriverInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_AddDriverInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_AddDriverInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = spoolss_dissect_element_AddDriverInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = spoolss_dissect_element_AddDriverInfo_info8(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_AddDriverInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddDriverInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddDriverInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_AddDriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddDriverInfoCtr_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddDriverInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddDriverInfoCtr);
+       }
+       
+       offset = spoolss_dissect_element_AddDriverInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_AddDriverInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo1_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo1_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo1_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo1_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo1_driver_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo1);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo1_driver_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo2_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo2_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo2_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_driver_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo2_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_data_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo2_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo2_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo2_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo2_config_file , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo2);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo2_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo2_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo2_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo2_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo2_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo2_config_file(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo3_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo3_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo3_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo3_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_driver_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo3_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_data_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo3_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_config_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo3_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_help_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo3_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo3_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo3_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo3_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo3_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo3_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo3_default_datatype , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo3);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo3_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo3_default_datatype(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo4_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo4_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo4_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo4_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_driver_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo4_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_data_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo4_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_config_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo4_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_help_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo4_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo4_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo4_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo4_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo4_default_datatype , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo4_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo4_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo4_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo4_previous_names,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo4);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo4_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo4_previous_names(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
+/* IDL:        spoolss_DriverAttributes driver_attributes; */
+/* IDL:        uint32 config_version; */
+/* IDL:        uint32 driver_version; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo5_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo5_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo5_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo5_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo5_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_data_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo5_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo5_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_config_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_config_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_config_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo5_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo5_driver_version, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo5);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo5_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_driver_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_config_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo5_driver_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
+/* IDL:        NTTIME driver_date; */
+/* IDL:        hyper driver_version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_url; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *hardware_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *provider; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo6_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo6_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo6_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo6_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo6_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_data_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo6_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_config_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo6_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_help_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo6_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo6_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo6_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo6_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_default_datatype , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo6_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo6_previous_names,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_driver_version, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_manufacturer_name_, , "Pointer to Manufacturer Name (string)",hf_spoolss_spoolss_DriverInfo6_manufacturer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_manufacturer_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_manufacturer_url_, , "Pointer to Manufacturer Url (string)",hf_spoolss_spoolss_DriverInfo6_manufacturer_url);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_manufacturer_url , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_hardware_id_, , "Pointer to Hardware Id (string)",hf_spoolss_spoolss_DriverInfo6_hardware_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_hardware_id , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo6_provider_, , "Pointer to Provider (string)",hf_spoolss_spoolss_DriverInfo6_provider);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo6_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo6_provider , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo6);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo6_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_driver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_driver_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_manufacturer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_manufacturer_url(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_hardware_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo6_provider(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *inf_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *install_source_root; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo7_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo7_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo7_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_inf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo7_inf_name_, , "Pointer to Inf Name (string)",hf_spoolss_spoolss_DriverInfo7_inf_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_inf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_inf_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_install_source_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo7_install_source_root_, , "Pointer to Install Source Root (string)",hf_spoolss_spoolss_DriverInfo7_install_source_root);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo7_install_source_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo7_install_source_root , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo7);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo7_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo7_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo7_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo7_inf_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo7_install_source_root(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_path; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *data_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *config_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *help_file; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *dependent_files; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
+/* IDL:        NTTIME driver_date; */
+/* IDL:        hyper driver_version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_url; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *hardware_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *provider; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *vendor_setup; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *color_profiles; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *inf_path; */
+/* IDL:        spoolss_DriverAttributes printer_driver_attributes; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *core_driver_dependencies; */
+/* IDL:        NTTIME min_inbox_driver_ver_date; */
+/* IDL:        hyper min_inbox_driver_ver_version; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo8_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo8_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo8_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_driver_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_driver_path_, , "Pointer to Driver Path (string)",hf_spoolss_spoolss_DriverInfo8_driver_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_driver_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_data_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_data_file_, , "Pointer to Data File (string)",hf_spoolss_spoolss_DriverInfo8_data_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_data_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_data_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_config_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_config_file_, , "Pointer to Config File (string)",hf_spoolss_spoolss_DriverInfo8_config_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_config_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_config_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_help_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_help_file_, , "Pointer to Help File (string)",hf_spoolss_spoolss_DriverInfo8_help_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_help_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_help_file , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_dependent_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_dependent_files_, , "Pointer to Dependent Files (string_array)",hf_spoolss_spoolss_DriverInfo8_dependent_files);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_dependent_files_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_dependent_files,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo8_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo8_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_default_datatype , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo8_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_previous_names,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_driver_version, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_manufacturer_name_, , "Pointer to Manufacturer Name (string)",hf_spoolss_spoolss_DriverInfo8_manufacturer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_manufacturer_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_manufacturer_url_, , "Pointer to Manufacturer Url (string)",hf_spoolss_spoolss_DriverInfo8_manufacturer_url);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_manufacturer_url , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_hardware_id_, , "Pointer to Hardware Id (string)",hf_spoolss_spoolss_DriverInfo8_hardware_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_hardware_id , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_provider_, , "Pointer to Provider (string)",hf_spoolss_spoolss_DriverInfo8_provider);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_provider , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_print_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_print_processor_, , "Pointer to Print Processor (string)",hf_spoolss_spoolss_DriverInfo8_print_processor);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_print_processor_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_print_processor , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_vendor_setup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_vendor_setup_, , "Pointer to Vendor Setup (string)",hf_spoolss_spoolss_DriverInfo8_vendor_setup);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_vendor_setup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_vendor_setup , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_color_profiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_color_profiles_, , "Pointer to Color Profiles (string_array)",hf_spoolss_spoolss_DriverInfo8_color_profiles);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_color_profiles_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_color_profiles,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_inf_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_inf_path_, , "Pointer to Inf Path (string)",hf_spoolss_spoolss_DriverInfo8_inf_path);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_inf_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_inf_path , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_printer_driver_attributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DriverAttributes(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_printer_driver_attributes, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo8_core_driver_dependencies_, , "Pointer to Core Driver Dependencies (string_array)",hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_version, NULL);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo8);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo8_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_driver_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_data_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_config_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_help_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_dependent_files(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_driver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_driver_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_manufacturer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_manufacturer_url(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_hardware_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_provider(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_print_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_vendor_setup(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_color_profiles(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_inf_path(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_printer_driver_attributes(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo8_min_inbox_driver_ver_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_DRIVER_FILE_TYPE_RENDERING=0x00000000, */
+/* IDL:        SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION=0x00000001, */
+/* IDL:        SPOOLSS_DRIVER_FILE_TYPE_DATA=0x00000002, */
+/* IDL:        SPOOLSS_DRIVER_FILE_TYPE_HELP=0x00000003, */
+/* IDL:        SPOOLSS_DRIVER_FILE_TYPE_OTHER=0x00000004, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_DriverFileType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *file_name; */
+/* IDL:        spoolss_DriverFileType file_type; */
+/* IDL:        uint32 file_version; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverFileInfo_file_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverFileInfo_file_name_, , "Pointer to File Name (string)",hf_spoolss_spoolss_DriverFileInfo_file_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverFileInfo_file_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverFileInfo_file_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverFileInfo_file_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverFileType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverFileInfo_file_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverFileInfo_file_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverFileInfo_file_version, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverFileInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverFileInfo);
+       }
+       
+       offset = spoolss_dissect_element_DriverFileInfo_file_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverFileInfo_file_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverFileInfo_file_version(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_DriverOSVersion version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *driver_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *architecture; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_ALIGN4)] [size_is(file_count)] spoolss_DriverFileInfo *file_info; */
+/* IDL:        uint32 file_count; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *default_datatype; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string_array *previous_names; */
+/* IDL:        NTTIME driver_date; */
+/* IDL:        hyper driver_version; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *manufacturer_url; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *hardware_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *provider; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo101_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_DriverOSVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_driver_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_driver_name_, , "Pointer to Driver Name (string)",hf_spoolss_spoolss_DriverInfo101_driver_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_driver_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_driver_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_architecture_, , "Pointer to Architecture (string)",hf_spoolss_spoolss_DriverInfo101_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_architecture , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_file_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_file_info_, , "Pointer to File Info (spoolss_DriverFileInfo)",hf_spoolss_spoolss_DriverInfo101_file_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_file_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_file_info__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_file_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverFileInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo101_file_info,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_file_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_file_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_DriverInfo101_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_default_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_default_datatype_, , "Pointer to Default Datatype (string)",hf_spoolss_spoolss_DriverInfo101_default_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_default_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_default_datatype , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_previous_names(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_previous_names_, , "Pointer to Previous Names (string_array)",hf_spoolss_spoolss_DriverInfo101_previous_names);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_previous_names_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo101_previous_names,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_driver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_driver_version, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_manufacturer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_manufacturer_name_, , "Pointer to Manufacturer Name (string)",hf_spoolss_spoolss_DriverInfo101_manufacturer_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_manufacturer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_manufacturer_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_manufacturer_url(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_manufacturer_url_, , "Pointer to Manufacturer Url (string)",hf_spoolss_spoolss_DriverInfo101_manufacturer_url);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_manufacturer_url_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_manufacturer_url , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_hardware_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_hardware_id_, , "Pointer to Hardware Id (string)",hf_spoolss_spoolss_DriverInfo101_hardware_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_hardware_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_hardware_id , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DriverInfo101_provider_, , "Pointer to Provider (string)",hf_spoolss_spoolss_DriverInfo101_provider);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo101_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverInfo101_provider , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverInfo101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo101);
+       }
+       
+       offset = spoolss_dissect_element_DriverInfo101_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_driver_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_architecture(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_file_info(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_file_count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_default_datatype(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_previous_names(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_driver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_driver_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_manufacturer_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_manufacturer_url(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_hardware_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DriverInfo101_provider(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_DriverInfo1 info1; */
+/* IDL: [case(2)] [case(2)] spoolss_DriverInfo2 info2; */
+/* IDL: [case(3)] [case(3)] spoolss_DriverInfo3 info3; */
+/* IDL: [case(4)] [case(4)] spoolss_DriverInfo4 info4; */
+/* IDL: [case(5)] [case(5)] spoolss_DriverInfo5 info5; */
+/* IDL: [case(6)] [case(6)] spoolss_DriverInfo6 info6; */
+/* IDL: [case(7)] [case(7)] spoolss_DriverInfo7 info7; */
+/* IDL: [case(8)] [case(8)] spoolss_DriverInfo8 info8; */
+/* IDL: [case(101)] [case(101)] spoolss_DriverInfo101 info101; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo4(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info4,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo5(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info5,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo6(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info6,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo7(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info7,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo8(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info8,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverInfo101(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverInfo_info101,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DriverInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DriverInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_DriverInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_DriverInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_DriverInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_DriverInfo_info4(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = spoolss_dissect_element_DriverInfo_info5(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 6:
+                       offset = spoolss_dissect_element_DriverInfo_info6(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 7:
+                       offset = spoolss_dissect_element_DriverInfo_info7(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 8:
+                       offset = spoolss_dissect_element_DriverInfo_info8(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 101:
+                       offset = spoolss_dissect_element_DriverInfo_info101(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string directory_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DriverDirectoryInfo1_directory_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DriverDirectoryInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverDirectoryInfo1);
+       }
+       
+       offset = spoolss_dissect_element_DriverDirectoryInfo1_directory_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_DriverDirectoryInfo1 info1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverDirectoryInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DriverDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DriverDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DriverDirectoryInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DriverDirectoryInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DriverDirectoryInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DriverDirectoryInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_DriverDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_DriverDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *print_processor_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrintProcessorInfo1_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrintProcessorInfo1_print_processor_name_, , "Pointer to Print Processor Name (string)",hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrintProcessorInfo1_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrintProcessorInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorInfo1);
+       }
+       
+       offset = spoolss_dissect_element_PrintProcessorInfo1_print_processor_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_PrintProcessorInfo1 info1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrintProcessorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrintProcessorInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcessorInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PrintProcessorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrintProcessorInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_PrintProcessorInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string directory_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrintProcessorDirectoryInfo1_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrintProcessorDirectoryInfo1_directory_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrintProcessorDirectoryInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorDirectoryInfo1);
+       }
+       
+       offset = spoolss_dissect_element_PrintProcessorDirectoryInfo1_directory_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_PrintProcessorDirectoryInfo1 info1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrintProcessorDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrintProcessorDirectoryInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PrintProcessorDirectoryInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrintProcessorDirectoryInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcessorDirectoryInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_PrintProcessorDirectoryInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *document_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *output_file; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *datatype; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DocumentInfo1_document_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo1_document_name_, NDR_POINTER_UNIQUE, "Pointer to Document Name (uint16)",hf_spoolss_spoolss_DocumentInfo1_document_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfo1_document_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DocumentInfo1_document_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfo1_output_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo1_output_file_, NDR_POINTER_UNIQUE, "Pointer to Output File (uint16)",hf_spoolss_spoolss_DocumentInfo1_output_file);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfo1_output_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DocumentInfo1_output_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfo1_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo1_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_DocumentInfo1_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfo1_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DocumentInfo1_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DocumentInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DocumentInfo1);
+       }
+       
+       offset = spoolss_dissect_element_DocumentInfo1_document_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DocumentInfo1_output_file(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_DocumentInfo1_datatype(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_DocumentInfo1 *info1; */
+/* IDL: [case(2)] [case(2)] EMPTY ; */
+/* IDL: [case(3)] [case(3)] EMPTY ; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DocumentInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DocumentInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_DocumentInfo1)",hf_spoolss_spoolss_DocumentInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DocumentInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_DocumentInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DocumentInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_DocumentInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DocumentInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_DocumentInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+               break;
+
+               case 3:
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_DocumentInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_DocumentInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DocumentInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DocumentInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_DocumentInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DocumentInfoCtr_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_DocumentInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_DocumentInfoCtr);
+       }
+       
+       offset = spoolss_dissect_element_DocumentInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_DocumentInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_spoolss_OSVersion(r,ndr->flags))] uint32 _ndr_size; */
+/* IDL:        uint32 major; */
+/* IDL:        uint32 minor; */
+/* IDL:        uint32 build; */
+/* IDL:        [value(2)] uint32 platform_id; */
+/* IDL:        [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string extra_string; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_OSVersion__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion__ndr_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersion_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_major, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersion_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_minor, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersion_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_build, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersion_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_platform_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersion_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_extra_string_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_OSVersion_extra_string_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersion_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersion_extra_string , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_OSVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_OSVersion);
+       }
+       
+       offset = spoolss_dissect_element_OSVersion__ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersion_major(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersion_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersion_build(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersion_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersion_extra_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(ndr_size_spoolss_OSVersionEx(r,ndr->flags))] uint32 _ndr_size; */
+/* IDL:        uint32 major; */
+/* IDL:        uint32 minor; */
+/* IDL:        uint32 build; */
+/* IDL:        [value(2)] uint32 platform_id; */
+/* IDL:        [subcontext_size(256)] [subcontext(0)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string extra_string; */
+/* IDL:        uint16 service_pack_major; */
+/* IDL:        uint16 service_pack_minor; */
+/* IDL:        uint16 suite_mask; */
+/* IDL:        uint8 product_type; */
+/* IDL:        uint8 reserved; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_OSVersionEx__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx__ndr_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_major, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_minor, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_build, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_platform_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_extra_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_extra_string_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_OSVersionEx_extra_string_(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_extra_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_extra_string , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_service_pack_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_service_pack_major, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_service_pack_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_service_pack_minor, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_suite_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_suite_mask, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_product_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_product_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OSVersionEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OSVersionEx_reserved, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_OSVersionEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_OSVersionEx);
+       }
+       
+       offset = spoolss_dissect_element_OSVersionEx__ndr_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_major(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_build(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_extra_string(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_service_pack_major(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_service_pack_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_suite_mask(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_product_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_OSVersionEx_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] [public(1)] union { */
+/* IDL: [case(REG_NONE)] [case(REG_NONE)] EMPTY ; */
+/* IDL: [case(REG_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_SZ)] string string; */
+/* IDL: [case(REG_BINARY)] [flag(LIBNDR_FLAG_REMAINING)] [case(REG_BINARY)] DATA_BLOB binary; */
+/* IDL: [case(REG_DWORD)] [case(REG_DWORD)] uint32 value; */
+/* IDL: [case(REG_MULTI_SZ)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] [case(REG_MULTI_SZ)] string_array string_array; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_string , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterData_binary(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_binary, 1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterData_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_value, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterData_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrinterData_string_array,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterData_data, 1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PrinterData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrinterData");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterData);
+       }
+
+       switch(level) {
+               case REG_NONE:
+               break;
+
+               case REG_SZ:
+                       offset = spoolss_dissect_element_PrinterData_string(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_BINARY:
+                       offset = spoolss_dissect_element_PrinterData_binary(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_DWORD:
+                       offset = spoolss_dissect_element_PrinterData_value(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case REG_MULTI_SZ:
+                       offset = spoolss_dissect_element_PrinterData_string_array(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_PrinterData_data(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: enum { */
+/* IDL:        SPOOLSS_FORM_USER=0, */
+/* IDL:        SPOOLSS_FORM_BUILTIN=1, */
+/* IDL:        SPOOLSS_FORM_PRINTER=2, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_FormFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 width; */
+/* IDL:        uint32 height; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_FormSize_width(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormSize_width, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormSize_height(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormSize_height, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_FormSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormSize);
+       }
+       
+       offset = spoolss_dissect_element_FormSize_width(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormSize_height(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 left; */
+/* IDL:        uint32 top; */
+/* IDL:        uint32 right; */
+/* IDL:        uint32 bottom; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_FormArea_left(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_left, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormArea_top(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_top, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormArea_right(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_right, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormArea_bottom(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormArea_bottom, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_FormArea(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormArea);
+       }
+       
+       offset = spoolss_dissect_element_FormArea_left(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormArea_top(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormArea_right(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormArea_bottom(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_FormFlags flags; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *form_name; */
+/* IDL:        spoolss_FormSize size; */
+/* IDL:        spoolss_FormArea area; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_FormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo1_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo1_form_name_, , "Pointer to Form Name (string)",hf_spoolss_spoolss_FormInfo1_form_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo1_form_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo1_size,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo1_area,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_FormInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormInfo1);
+       }
+       
+       offset = spoolss_dissect_element_FormInfo1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo1_form_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo1_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo1_area(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SPOOLSS_FORM_STRING_TYPE_NONE =  0x00000001 , */
+/* IDL:        SPOOLSS_FORM_STRING_TYPE_MUI_DLL =  0x00000002 , */
+/* IDL:        SPOOLSS_FORM_STRING_TYPE_LANG_PAIR =  0x00000004 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_FormStringType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_FormStringType);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SPOOLSS_FORM_STRING_TYPE_NONE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SPOOLSS_FORM_STRING_TYPE_MUI_DLL");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_FormFlags flags; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *form_name; */
+/* IDL:        spoolss_FormSize size; */
+/* IDL:        spoolss_FormArea area; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string *keyword; */
+/* IDL:        spoolss_FormStringType string_type; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *mui_dll; */
+/* IDL:        uint32 ressource_id; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *display_name; */
+/* IDL:        uint16 lang_id; */
+/* IDL:        uint16 unused; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_FormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_form_name_, , "Pointer to Form Name (string)",hf_spoolss_spoolss_FormInfo2_form_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_form_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo2_size,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo2_area,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_keyword_, , "Pointer to Keyword (string)",hf_spoolss_spoolss_FormInfo2_keyword);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_keyword , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_FormStringType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_string_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_mui_dll_, , "Pointer to Mui Dll (string)",hf_spoolss_spoolss_FormInfo2_mui_dll);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_mui_dll , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_ressource_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FormInfo2_display_name_, , "Pointer to Display Name (string)",hf_spoolss_spoolss_FormInfo2_display_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_display_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_lang_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo2_unused(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FormInfo2_unused, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_FormInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormInfo2);
+       }
+       
+       offset = spoolss_dissect_element_FormInfo2_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_form_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_area(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_keyword(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_string_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_mui_dll(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_ressource_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_display_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_lang_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_FormInfo2_unused(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [gensize(1)] [relative_base(1)] [nodiscriminant(1)] [public(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_FormInfo1 info1; */
+/* IDL: [case(2)] [case(2)] spoolss_FormInfo2 info2; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_FormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_FormInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_FormInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_FormInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_FormInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_FormInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_FormInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        spoolss_FormFlags flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *form_name; */
+/* IDL:        spoolss_FormSize size; */
+/* IDL:        spoolss_FormArea area; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddFormInfo1_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo1_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo1_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo1_form_name_, NDR_POINTER_UNIQUE, "Pointer to Form Name (uint16)",hf_spoolss_spoolss_AddFormInfo1_form_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo1_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo1_form_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo1_size,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo1_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo1_area,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddFormInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfo1);
+       }
+       
+       offset = spoolss_dissect_element_AddFormInfo1_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo1_form_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo1_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo1_area(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_FormFlags flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *form_name; */
+/* IDL:        spoolss_FormSize size; */
+/* IDL:        spoolss_FormArea area; */
+/* IDL:        [unique(1)] [charset(DOS)] uint8 *keyword; */
+/* IDL:        spoolss_FormStringType string_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *mui_dll; */
+/* IDL:        uint32 ressource_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *display_name; */
+/* IDL:        uint32 lang_id; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddFormInfo2_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_FormFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_form_name_, NDR_POINTER_UNIQUE, "Pointer to Form Name (uint16)",hf_spoolss_spoolss_AddFormInfo2_form_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_form_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo2_form_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormSize(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo2_size,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_area(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_FormArea(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo2_area,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_keyword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_keyword_, NDR_POINTER_UNIQUE, "Pointer to Keyword (uint8)",hf_spoolss_spoolss_AddFormInfo2_keyword);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_keyword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_spoolss_spoolss_AddFormInfo2_keyword, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_string_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_FormStringType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_string_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_mui_dll(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_mui_dll_, NDR_POINTER_UNIQUE, "Pointer to Mui Dll (uint16)",hf_spoolss_spoolss_AddFormInfo2_mui_dll);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_mui_dll_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo2_mui_dll, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_ressource_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_ressource_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo2_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_spoolss_spoolss_AddFormInfo2_display_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddFormInfo2_display_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo2_lang_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfo2_lang_id, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddFormInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfo2);
+       }
+       
+       offset = spoolss_dissect_element_AddFormInfo2_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_form_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_area(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_keyword(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_string_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_mui_dll(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_ressource_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_display_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddFormInfo2_lang_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_AddFormInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_AddFormInfo2 *info2; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddFormInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_AddFormInfo1)",hf_spoolss_spoolss_AddFormInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddFormInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddFormInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_AddFormInfo2)",hf_spoolss_spoolss_AddFormInfo_info2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddFormInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddFormInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddFormInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_AddFormInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_AddFormInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_AddFormInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_AddFormInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddFormInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddFormInfoCtr_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_AddFormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddFormInfoCtr_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddFormInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddFormInfoCtr);
+       }
+       
+       offset = spoolss_dissect_element_AddFormInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_AddFormInfoCtr_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *port_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo1_port_name_, , "Pointer to Port Name (string)",hf_spoolss_spoolss_PortInfo1_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo1_port_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo1);
+       }
+       
+       offset = spoolss_dissect_element_PortInfo1_port_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SPOOLSS_PORT_TYPE_WRITE =  0x00000001 , */
+/* IDL:        SPOOLSS_PORT_TYPE_READ =  0x00000002 , */
+/* IDL:        SPOOLSS_PORT_TYPE_REDIRECTED =  0x00000004 , */
+/* IDL:        SPOOLSS_PORT_TYPE_NET_ATTACHED =  0x00000008 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_PortType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PortType);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SPOOLSS_PORT_TYPE_WRITE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_READ, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SPOOLSS_PORT_TYPE_READ");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SPOOLSS_PORT_TYPE_REDIRECTED");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SPOOLSS_PORT_TYPE_NET_ATTACHED");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *port_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *description; */
+/* IDL:        spoolss_PortType port_type; */
+/* IDL:        uint32 reserved; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo2_port_name_, , "Pointer to Port Name (string)",hf_spoolss_spoolss_PortInfo2_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_port_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo2_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_PortInfo2_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo2_description_, , "Pointer to Description (string)",hf_spoolss_spoolss_PortInfo2_description);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_description , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PortType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_port_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo2_reserved, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo2);
+       }
+       
+       offset = spoolss_dissect_element_PortInfo2_port_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfo2_description(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfo2_port_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfo2_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PORT_STATUS_CLEAR=0x00000000, */
+/* IDL:        PORT_STATUS_OFFLINE=0x00000001, */
+/* IDL:        PORT_STATUS_PAPER_JAM=0x00000002, */
+/* IDL:        PORT_STATUS_PAPER_OUT=0x00000003, */
+/* IDL:        PORT_STATUS_OUTPUT_BIN_FULL=0x00000004, */
+/* IDL:        PORT_STATUS_PAPER_PROBLEM=0x00000005, */
+/* IDL:        PORT_STATUS_NO_TONER=0x00000006, */
+/* IDL:        PORT_STATUS_DOOR_OPEN=0x00000007, */
+/* IDL:        PORT_STATUS_USER_INTERVENTION=0x00000008, */
+/* IDL:        PORT_STATUS_OUT_OF_MEMORY=0x00000009, */
+/* IDL:        PORT_STATUS_TONER_LOW=0x0000000A, */
+/* IDL:        PORT_STATUS_WARMING_UP=0x0000000B, */
+/* IDL:        PORT_STATUS_POWER_SAVE=0x0000000C, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_PortStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PORT_STATUS_TYPE_ERROR=0x00000001, */
+/* IDL:        PORT_STATUS_TYPE_WARNING=0x00000002, */
+/* IDL:        PORT_STATUS_TYPE_INFO=0x00000003, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_PortSeverity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_PortStatus status; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *status_string; */
+/* IDL:        spoolss_PortSeverity severity; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PortStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo3_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfo3_status_string_, , "Pointer to Status String (string)",hf_spoolss_spoolss_PortInfo3_status_string);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo3_status_string , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PortSeverity(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfo3_severity, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo3);
+       }
+       
+       offset = spoolss_dissect_element_PortInfo3_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfo3_status_string(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfo3_severity(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *port_name; */
+/* IDL:        DATA_BLOB monitor_data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortInfoFF_port_name_, , "Pointer to Port Name (string)",hf_spoolss_spoolss_PortInfoFF_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfoFF_port_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortInfoFF_monitor_data, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortInfoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfoFF);
+       }
+       
+       offset = spoolss_dissect_element_PortInfoFF_port_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortInfoFF_monitor_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_PortInfo1 info1; */
+/* IDL: [case(2)] [case(2)] spoolss_PortInfo2 info2; */
+/* IDL: [case(3)] [case(3)] spoolss_PortInfo3 info3; */
+/* IDL: [case(0xff)] [case(0xff)] spoolss_PortInfoFF infoFF; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PortInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PortInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PortInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PortInfoFF(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PortInfo_infoFF,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PortInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PortInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_PortInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_PortInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_PortInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xff:
+                       offset = spoolss_dissect_element_PortInfo_infoFF(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_MonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo1_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_MonitorInfo1_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo1_monitor_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_MonitorInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorInfo1);
+       }
+       
+       offset = spoolss_dissect_element_MonitorInfo1_monitor_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *monitor_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *environment; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *dll_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_MonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo2_monitor_name_, , "Pointer to Monitor Name (string)",hf_spoolss_spoolss_MonitorInfo2_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo2_monitor_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo2_environment_, , "Pointer to Environment (string)",hf_spoolss_spoolss_MonitorInfo2_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo2_environment , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_MonitorInfo2_dll_name_, , "Pointer to Dll Name (string)",hf_spoolss_spoolss_MonitorInfo2_dll_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorInfo2_dll_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_MonitorInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorInfo2);
+       }
+       
+       offset = spoolss_dissect_element_MonitorInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_MonitorInfo2_environment(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_MonitorInfo2_dll_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_MonitorInfo1 info1; */
+/* IDL: [case(2)] [case(2)] spoolss_MonitorInfo2 info2; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_MonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_MonitorInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_MonitorInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_MonitorInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_MonitorInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_MonitorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_MonitorInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_MonitorInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_MonitorInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *port_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPortInfo1_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo1_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPortInfo1_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo1_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo1_port_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPortInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo1);
+       }
+       
+       offset = spoolss_dissect_element_SetPortInfo1_port_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *port_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *monitor_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *description; */
+/* IDL:        spoolss_PortType port_type; */
+/* IDL:        uint32 reserved; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPortInfo2_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo2_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPortInfo2_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo2_port_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo2_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_SetPortInfo2_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo2_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo2_description_, NDR_POINTER_UNIQUE, "Pointer to Description (uint16)",hf_spoolss_spoolss_SetPortInfo2_description);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo2_description, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_port_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PortType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo2_port_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo2_reserved, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPortInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo2);
+       }
+       
+       offset = spoolss_dissect_element_SetPortInfo2_port_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfo2_description(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfo2_port_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfo2_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        spoolss_PortStatus status; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *status_string; */
+/* IDL:        spoolss_PortSeverity severity; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPortInfo3_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PortStatus(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo3_status, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo3_status_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo3_status_string_, NDR_POINTER_UNIQUE, "Pointer to Status String (uint16)",hf_spoolss_spoolss_SetPortInfo3_status_string);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo3_status_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfo3_status_string, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo3_severity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PortSeverity(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfo3_severity, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPortInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo3);
+       }
+       
+       offset = spoolss_dissect_element_SetPortInfo3_status(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfo3_status_string(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfo3_severity(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *port_name; */
+/* IDL:        DATA_BLOB monitor_data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPortInfoFF_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfoFF_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPortInfoFF_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfoFF_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPortInfoFF_port_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfoFF_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfoFF_monitor_data, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPortInfoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfoFF);
+       }
+       
+       offset = spoolss_dissect_element_SetPortInfoFF_port_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_SetPortInfoFF_monitor_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_SetPortInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_SetPortInfo2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] spoolss_SetPortInfo3 *info3; */
+/* IDL: [case(0xff)] [unique(1)] [case(0xff)] spoolss_SetPortInfoFF *infoFF; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPortInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_SetPortInfo1)",hf_spoolss_spoolss_SetPortInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPortInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_SetPortInfo2)",hf_spoolss_spoolss_SetPortInfo_info2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPortInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (spoolss_SetPortInfo3)",hf_spoolss_spoolss_SetPortInfo_info3);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPortInfo3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_info3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_infoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPortInfo_infoFF_, NDR_POINTER_UNIQUE, "Pointer to Infoff (spoolss_SetPortInfoFF)",hf_spoolss_spoolss_SetPortInfo_infoFF);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfo_infoFF_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPortInfoFF(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPortInfo_infoFF,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetPortInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_SetPortInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_SetPortInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_SetPortInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_SetPortInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 0xff:
+                       offset = spoolss_dissect_element_SetPortInfo_infoFF(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_SetPrinterInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_SetPortInfoContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfoContainer_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPortInfoContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_SetPrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPortInfoContainer_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_SetPortInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_SetPortInfoContainer);
+       }
+       
+       offset = spoolss_dissect_element_SetPortInfoContainer_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_SetPortInfoContainer_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 Checksum; */
+/* IDL:        uint32 Index; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UNIVERSAL_FONT_ID_Checksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_UNIVERSAL_FONT_ID_Checksum, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIVERSAL_FONT_ID_Index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_UNIVERSAL_FONT_ID_Index, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UNIVERSAL_FONT_ID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_UNIVERSAL_FONT_ID);
+       }
+       
+       offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_Checksum(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_Index(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        UNIVERSAL_FONT_ID fonts[count]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_UNIVERSAL_FONT_ID_ctr_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UNIVERSAL_FONT_ID(tvb,offset,pinfo,tree,drep,hf_spoolss_UNIVERSAL_FONT_ID_ctr_fonts,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UNIVERSAL_FONT_ID_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_UNIVERSAL_FONT_ID_ctr);
+       }
+       
+       offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UNIVERSAL_FONT_ID_ctr_fonts(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(URF16)] uint16 *monitor_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddMonitorInfo1_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo1_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddMonitorInfo1_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo1_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo1_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddMonitorInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddMonitorInfo1);
+       }
+       
+       offset = spoolss_dissect_element_AddMonitorInfo1_monitor_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(URF16)] uint16 *monitor_name; */
+/* IDL:        [unique(1)] [charset(URF16)] uint16 *environment; */
+/* IDL:        [unique(1)] [charset(URF16)] uint16 *dll_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddMonitorInfo2_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo2_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddMonitorInfo2_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo2_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo2_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo2_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo2_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_AddMonitorInfo2_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo2_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo2_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo2_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo2_dll_name_, NDR_POINTER_UNIQUE, "Pointer to Dll Name (uint16)",hf_spoolss_spoolss_AddMonitorInfo2_dll_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo2_dll_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddMonitorInfo2_dll_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_AddMonitorInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddMonitorInfo2);
+       }
+       
+       offset = spoolss_dissect_element_AddMonitorInfo2_monitor_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddMonitorInfo2_environment(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_AddMonitorInfo2_dll_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_AddMonitorInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_AddMonitorInfo2 *info2; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_AddMonitorInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (spoolss_AddMonitorInfo1)",hf_spoolss_spoolss_AddMonitorInfo_info1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddMonitorInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddMonitorInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddMonitorInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (spoolss_AddMonitorInfo2)",hf_spoolss_spoolss_AddMonitorInfo_info2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddMonitorInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddMonitorInfo2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddMonitorInfo_info2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddMonitorInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_AddMonitorInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_AddMonitorInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_AddMonitorInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_AddMonitorInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_MonitorInfo info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_MonitorContainer_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorContainer_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_MonitorContainer_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_MonitorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorContainer_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_MonitorContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorContainer);
+       }
+       
+       offset = spoolss_dissect_element_MonitorContainer_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_MonitorContainer_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *name_array; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrintProcDataTypesInfo1_name_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrintProcDataTypesInfo1_name_array_, , "Pointer to Name Array (string)",hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrintProcDataTypesInfo1_name_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrintProcDataTypesInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcDataTypesInfo1);
+       }
+       
+       offset = spoolss_dissect_element_PrintProcDataTypesInfo1_name_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [relative_base(1)] [public(1)] [nodiscriminant(1)] [flag(LIBNDR_FLAG_RELATIVE_REVERSE)] union { */
+/* IDL: [case(1)] [case(1)] spoolss_PrintProcDataTypesInfo1 info1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrintProcDataTypesInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrintProcDataTypesInfo1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_PrintProcDataTypesInfo_info1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PrintProcDataTypesInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_PrintProcDataTypesInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrintProcDataTypesInfo);
+       }
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_PrintProcDataTypesInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_CHANGE_ADD_PRINTER =  0x00000001 , */
+/* IDL:        PRINTER_CHANGE_SET_PRINTER =  0x00000002 , */
+/* IDL:        PRINTER_CHANGE_DELETE_PRINTER =  0x00000004 , */
+/* IDL:        PRINTER_CHANGE_FAILED_CONNECTION_PRINTER =  0x00000008 , */
+/* IDL:        PRINTER_CHANGE_ADD_JOB =  0x00000100 , */
+/* IDL:        PRINTER_CHANGE_SET_JOB =  0x00000200 , */
+/* IDL:        PRINTER_CHANGE_DELETE_JOB =  0x00000400 , */
+/* IDL:        PRINTER_CHANGE_WRITE_JOB =  0x00000800 , */
+/* IDL:        PRINTER_CHANGE_ADD_FORM =  0x00010000 , */
+/* IDL:        PRINTER_CHANGE_SET_FORM =  0x00020000 , */
+/* IDL:        PRINTER_CHANGE_DELETE_FORM =  0x00040000 , */
+/* IDL:        PRINTER_CHANGE_ADD_PORT =  0x00100000 , */
+/* IDL:        PRINTER_CHANGE_CONFIGURE_PORT =  0x00200000 , */
+/* IDL:        PRINTER_CHANGE_DELETE_PORT =  0x00400000 , */
+/* IDL:        PRINTER_CHANGE_ADD_PRINT_PROCESSOR =  0x01000000 , */
+/* IDL:        PRINTER_CHANGE_DELETE_PRINT_PROCESSOR =  0x04000000 , */
+/* IDL:        PRINTER_CHANGE_SERVER =  0x08000000 , */
+/* IDL:        PRINTER_CHANGE_ADD_PRINTER_DRIVER =  0x10000000 , */
+/* IDL:        PRINTER_CHANGE_SET_PRINTER_DRIVER =  0x20000000 , */
+/* IDL:        PRINTER_CHANGE_DELETE_PRINTER_DRIVER =  0x40000000 , */
+/* IDL:        PRINTER_CHANGE_TIMEOUT =  0x80000000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_PrinterChangeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterChangeFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_ADD_PRINTER");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_SET_PRINTER");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PRINTER");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_ADD_JOB");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_SET_JOB");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_DELETE_JOB");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_WRITE_JOB");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_ADD_FORM");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_SET_FORM");
+               if (flags & (~( 0x00020000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00040000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_DELETE_FORM");
+               if (flags & (~( 0x00040000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00040000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_ADD_PORT");
+               if (flags & (~( 0x00100000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_CONFIGURE_PORT");
+               if (flags & (~( 0x00200000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00400000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PORT");
+               if (flags & (~( 0x00400000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00400000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR, tvb, offset-4, 4, flags);
+       if (flags&( 0x01000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_ADD_PRINT_PROCESSOR");
+               if (flags & (~( 0x01000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x01000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, tvb, offset-4, 4, flags);
+       if (flags&( 0x04000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR");
+               if (flags & (~( 0x04000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x04000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x08000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_SERVER");
+               if (flags & (~( 0x08000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x08000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_ADD_PRINTER_DRIVER");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x20000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_SET_PRINTER_DRIVER");
+               if (flags & (~( 0x20000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x20000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER, tvb, offset-4, 4, flags);
+       if (flags&( 0x40000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_DELETE_PRINTER_DRIVER");
+               if (flags & (~( 0x40000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x40000000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT, tvb, offset-4, 4, flags);
+       if (flags&( 0x80000000 )){
+               proto_item_append_text(item, "PRINTER_CHANGE_TIMEOUT");
+               if (flags & (~( 0x80000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x80000000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 monitor_data_size; */
+/* IDL:        [unique(1)] [size_is(monitor_data_size)] uint8 *monitor_data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortVarContainer_monitor_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortVarContainer_monitor_data_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortVarContainer_monitor_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortVarContainer_monitor_data_, NDR_POINTER_UNIQUE, "Pointer to Monitor Data (uint8)",hf_spoolss_spoolss_PortVarContainer_monitor_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortVarContainer_monitor_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PortVarContainer_monitor_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortVarContainer_monitor_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortVarContainer_monitor_data, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortVarContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortVarContainer);
+       }
+       
+       offset = spoolss_dissect_element_PortVarContainer_monitor_data_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortVarContainer_monitor_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        JOB_NOTIFY_FIELD_PRINTER_NAME=0x00, */
+/* IDL:        JOB_NOTIFY_FIELD_MACHINE_NAME=0x01, */
+/* IDL:        JOB_NOTIFY_FIELD_PORT_NAME=0x02, */
+/* IDL:        JOB_NOTIFY_FIELD_USER_NAME=0x03, */
+/* IDL:        JOB_NOTIFY_FIELD_NOTIFY_NAME=0x04, */
+/* IDL:        JOB_NOTIFY_FIELD_DATATYPE=0x05, */
+/* IDL:        JOB_NOTIFY_FIELD_PRINT_PROCESSOR=0x06, */
+/* IDL:        JOB_NOTIFY_FIELD_PARAMETERS=0x07, */
+/* IDL:        JOB_NOTIFY_FIELD_DRIVER_NAME=0x08, */
+/* IDL:        JOB_NOTIFY_FIELD_DEVMODE=0x09, */
+/* IDL:        JOB_NOTIFY_FIELD_STATUS=0x0a, */
+/* IDL:        JOB_NOTIFY_FIELD_STATUS_STRING=0x0b, */
+/* IDL:        JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR=0x0c, */
+/* IDL:        JOB_NOTIFY_FIELD_DOCUMENT=0x0d, */
+/* IDL:        JOB_NOTIFY_FIELD_PRIORITY=0x0e, */
+/* IDL:        JOB_NOTIFY_FIELD_POSITION=0x0f, */
+/* IDL:        JOB_NOTIFY_FIELD_SUBMITTED=0x10, */
+/* IDL:        JOB_NOTIFY_FIELD_START_TIME=0x11, */
+/* IDL:        JOB_NOTIFY_FIELD_UNTIL_TIME=0x12, */
+/* IDL:        JOB_NOTIFY_FIELD_TIME=0x13, */
+/* IDL:        JOB_NOTIFY_FIELD_TOTAL_PAGES=0x14, */
+/* IDL:        JOB_NOTIFY_FIELD_PAGES_PRINTED=0x15, */
+/* IDL:        JOB_NOTIFY_FIELD_TOTAL_BYTES=0x16, */
+/* IDL:        JOB_NOTIFY_FIELD_BYTES_PRINTED=0x17, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_JobNotifyField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PRINTER_NOTIFY_FIELD_SERVER_NAME=0x00, */
+/* IDL:        PRINTER_NOTIFY_FIELD_PRINTER_NAME=0x01, */
+/* IDL:        PRINTER_NOTIFY_FIELD_SHARE_NAME=0x02, */
+/* IDL:        PRINTER_NOTIFY_FIELD_PORT_NAME=0x03, */
+/* IDL:        PRINTER_NOTIFY_FIELD_DRIVER_NAME=0x04, */
+/* IDL:        PRINTER_NOTIFY_FIELD_COMMENT=0x05, */
+/* IDL:        PRINTER_NOTIFY_FIELD_LOCATION=0x06, */
+/* IDL:        PRINTER_NOTIFY_FIELD_DEVMODE=0x07, */
+/* IDL:        PRINTER_NOTIFY_FIELD_SEPFILE=0x08, */
+/* IDL:        PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR=0x09, */
+/* IDL:        PRINTER_NOTIFY_FIELD_PARAMETERS=0x0a, */
+/* IDL:        PRINTER_NOTIFY_FIELD_DATATYPE=0x0b, */
+/* IDL:        PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR=0x0c, */
+/* IDL:        PRINTER_NOTIFY_FIELD_ATTRIBUTES=0x0d, */
+/* IDL:        PRINTER_NOTIFY_FIELD_PRIORITY=0x0e, */
+/* IDL:        PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY=0x0f, */
+/* IDL:        PRINTER_NOTIFY_FIELD_START_TIME=0x10, */
+/* IDL:        PRINTER_NOTIFY_FIELD_UNTIL_TIME=0x11, */
+/* IDL:        PRINTER_NOTIFY_FIELD_STATUS=0x12, */
+/* IDL:        PRINTER_NOTIFY_FIELD_STATUS_STRING=0x13, */
+/* IDL:        PRINTER_NOTIFY_FIELD_CJOBS=0x14, */
+/* IDL:        PRINTER_NOTIFY_FIELD_AVERAGE_PPM=0x15, */
+/* IDL:        PRINTER_NOTIFY_FIELD_TOTAL_PAGES=0x16, */
+/* IDL:        PRINTER_NOTIFY_FIELD_PAGES_PRINTED=0x17, */
+/* IDL:        PRINTER_NOTIFY_FIELD_TOTAL_BYTES=0x18, */
+/* IDL:        PRINTER_NOTIFY_FIELD_BYTES_PRINTED=0x19, */
+/* IDL:        PRINTER_NOTIFY_FIELD_OBJECT_GUID=0x1a, */
+/* IDL:        PRINTER_NOTIFY_FIELD_FRIENDLY_NAME=0x1b, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_PrintNotifyField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PRINTER_NOTIFY_TYPE=0x00, */
+/* IDL:        JOB_NOTIFY_TYPE=0x01, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_NotifyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint16 parameter=0;
+       if(param){
+               parameter=(guint16)*param;
+       }
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [noprint(1)] [nodiscriminant(1)] union { */
+/* IDL: [case(PRINTER_NOTIFY_TYPE)] [case(PRINTER_NOTIFY_TYPE)] uint16 field; */
+/* IDL: [case(JOB_NOTIFY_TYPE)] [case(JOB_NOTIFY_TYPE)] uint16 field; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Field_field, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Field_field, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Field_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Field_field, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_Field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_Field");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_Field);
+       }
+
+       switch(level) {
+               case PRINTER_NOTIFY_TYPE:
+                       offset = spoolss_dissect_element_Field_field(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case JOB_NOTIFY_TYPE:
+                       offset = spoolss_dissect_element_Field_field(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_Field_field(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        spoolss_NotifyType type; */
+/* IDL:        uint16 u1; */
+/* IDL:        uint32 u2; */
+/* IDL:        uint32 u3; */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [switch_is(type)] [size_is(count)] spoolss_Field *fields; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_NotifyOptionType_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
+{
+       offset = spoolss_dissect_enum_NotifyType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_type, type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_u1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_u1, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_u2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_u2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_u3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_u3, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_fields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOptionType_fields_, NDR_POINTER_UNIQUE, "Pointer to Fields (spoolss_Field)",hf_spoolss_spoolss_NotifyOptionType_fields);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_fields_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOptionType_fields__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOptionType_fields__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint16 *type)
+{
+       offset = spoolss_dissect_Field(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOptionType_fields, *type);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_NotifyOptionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint16 type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyOptionType);
+       }
+       
+       offset = spoolss_dissect_element_NotifyOptionType_type(tvb, offset, pinfo, tree, drep, &type);
+
+       offset = spoolss_dissect_element_NotifyOptionType_u1(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOptionType_u2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOptionType_u3(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOptionType_count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOptionType_fields(tvb, offset, pinfo, tree, drep, &type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_NOTIFY_OPTIONS_REFRESH =  0x00000001 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_spoolssNotifyOptionFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolssNotifyOptionFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_NOTIFY_OPTIONS_REFRESH");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2)] uint32 version; */
+/* IDL:        spoolssNotifyOptionFlags flags; */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] spoolss_NotifyOptionType *types; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_NotifyOption_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOption_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOption_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_spoolssNotifyOptionFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOption_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOption_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyOption_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOption_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOption_types_, NDR_POINTER_UNIQUE, "Pointer to Types (spoolss_NotifyOptionType)",hf_spoolss_spoolss_NotifyOption_types);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOption_types_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyOption_types__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyOption_types__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_NotifyOptionType(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyOption_types,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_NotifyOption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyOption);
+       }
+       
+       offset = spoolss_dissect_element_NotifyOption_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOption_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOption_count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyOption_types(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        [unique(1)] [charset(UTF16)] [size_is(size/2)] uint16 *string; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_NotifyString_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyString_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_spoolss_spoolss_NotifyString_string);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyString_string__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyString_string__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyString_string, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_NotifyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyString);
+       }
+       
+       offset = spoolss_dissect_element_NotifyString_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NOTIFY_TABLE_DWORD=0x0001, */
+/* IDL:        NOTIFY_TABLE_STRING=0x0002, */
+/* IDL:        NOTIFY_TABLE_DEVMODE=0x0003, */
+/* IDL:        NOTIFY_TABLE_TIME=0x0004, */
+/* IDL:        NOTIFY_TABLE_SECURITYDESCRIPTOR=0x0005, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_NotifyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [case(1)] uint32 integer[2]; */
+/* IDL: [case(2)] [case(2)] spoolss_NotifyString string; */
+/* IDL: [case(3)] [case(3)] spoolss_DevmodeContainer devmode; */
+/* IDL: [case(4)] [case(4)] spoolss_TimeCtr time; */
+/* IDL: [case(5)] [case(5)] sec_desc_buf sd; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_NotifyData_integer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 2; i++)
+               offset = spoolss_dissect_element_NotifyData_integer_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyData_integer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyData_integer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyData_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_NotifyString(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_string,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyData_devmode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_devmode,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyData_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_TimeCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_time,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyData_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyData_sd,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_NotifyData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_NotifyData");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyData);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_NotifyData_integer(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_NotifyData_string(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_NotifyData_devmode(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = spoolss_dissect_element_NotifyData_time(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 5:
+                       offset = spoolss_dissect_element_NotifyData_sd(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        spoolss_NotifyType type; */
+/* IDL:        [switch_is(type)] spoolss_Field field; */
+/* IDL:        spoolss_NotifyTable variable_type; */
+/* IDL:        uint32 job_id; */
+/* IDL:        [switch_is(variable_type)] spoolss_NotifyData data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_Notify_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_NotifyType(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Notify_field(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_,  *)
+{
+       offset = spoolss_dissect_Field(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_field, *);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Notify_variable_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type)
+{
+       offset = spoolss_dissect_enum_NotifyTable(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_variable_type, variable_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Notify_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_Notify_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint32 *variable_type)
+{
+       offset = spoolss_dissect_NotifyData(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_Notify_data, *variable_type);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_Notify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint32 variable_type;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_Notify);
+       }
+       
+       offset = spoolss_dissect_element_Notify_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Notify_field(tvb, offset, pinfo, tree, drep, &);
+
+       offset = spoolss_dissect_element_Notify_variable_type(tvb, offset, pinfo, tree, drep, &variable_type);
+
+       offset = spoolss_dissect_element_Notify_job_id(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_Notify_data(tvb, offset, pinfo, tree, drep, &variable_type);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(2)] uint32 version; */
+/* IDL:        uint32 flags; */
+/* IDL:        uint32 count; */
+/* IDL:        [size_is(count)] spoolss_Notify notifies[*]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_NotifyInfo_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyInfo_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyInfo_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyInfo_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_NotifyInfo_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyInfo_notifies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_NotifyInfo_notifies_);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_NotifyInfo_notifies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_Notify(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_NotifyInfo_notifies,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_NotifyInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_NotifyInfo);
+       }
+       
+       offset = spoolss_dissect_element_NotifyInfo_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyInfo_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyInfo_count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_NotifyInfo_notifies(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] spoolss_NotifyInfo *info0; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_ReplyPrinterInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyPrinterInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (spoolss_NotifyInfo)",hf_spoolss_spoolss_ReplyPrinterInfo_info0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyPrinterInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_NotifyInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_ReplyPrinterInfo_info0,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ReplyPrinterInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_ReplyPrinterInfo");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_ReplyPrinterInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = spoolss_dissect_element_ReplyPrinterInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        PRINTER_NOTIFY_INFO_DISCARDED =  0x00000001 , */
+/* IDL:        PRINTER_NOTIFY_INFO_DISCARDNOTED =  0x00010000 , */
+/* IDL:        PRINTER_NOTIFY_INFO_COLOR_MISMATCH =  0x00080000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_PrinterNotifyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_PrinterNotifyFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "PRINTER_NOTIFY_INFO_DISCARDED");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "PRINTER_NOTIFY_INFO_DISCARDNOTED");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00080000 )){
+               proto_item_append_text(item, "PRINTER_NOTIFY_INFO_COLOR_MISMATCH");
+               if (flags & (~( 0x00080000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00080000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 build; */
+/* IDL:        spoolss_MajorVersion major; */
+/* IDL:        spoolss_MinorVersion minor; */
+/* IDL:        spoolss_ProcessorArchitecture processor; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UserLevel1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel1_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_spoolss_spoolss_UserLevel1_client);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel1_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel1_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_spoolss_spoolss_UserLevel1_user);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel1_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_build, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_MajorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_major, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_MinorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_minor, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel1_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel1_processor, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UserLevel1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel1);
+       }
+       
+       offset = spoolss_dissect_element_UserLevel1_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel1_client(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel1_user(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel1_build(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel1_major(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel1_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel1_processor(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 not_used; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UserLevel2_not_used(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel2_not_used, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UserLevel2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel2);
+       }
+       
+       offset = spoolss_dissect_element_UserLevel2_not_used(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size; */
+/* IDL:        uint32 flags; */
+/* IDL:        uint32 size2; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 build; */
+/* IDL:        spoolss_MajorVersion major; */
+/* IDL:        spoolss_MinorVersion minor; */
+/* IDL:        spoolss_ProcessorArchitecture processor; */
+/* IDL:        udlong reserved; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UserLevel3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_size2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_size2, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel3_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_spoolss_spoolss_UserLevel3_client);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel3_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel3_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_spoolss_spoolss_UserLevel3_user);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_UserLevel3_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_build, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_MajorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_major, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_MinorVersion(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_minor, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_processor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_ProcessorArchitecture(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_processor, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel3_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevel3_reserved, NULL);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UserLevel3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel3);
+       }
+       
+       offset = spoolss_dissect_element_UserLevel3_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_size2(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_client(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_user(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_build(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_major(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_processor(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_UserLevel3_reserved(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] spoolss_UserLevel1 *level1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] spoolss_UserLevel2 *level2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] spoolss_UserLevel3 *level3; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UserLevel_level1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel_level1_, NDR_POINTER_UNIQUE, "Pointer to Level1 (spoolss_UserLevel1)",hf_spoolss_spoolss_UserLevel_level1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel_level1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UserLevel1(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_UserLevel_level1,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel_level2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel_level2_, NDR_POINTER_UNIQUE, "Pointer to Level2 (spoolss_UserLevel2)",hf_spoolss_spoolss_UserLevel_level2);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel_level2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UserLevel2(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_UserLevel_level2,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel_level3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_UserLevel_level3_, NDR_POINTER_UNIQUE, "Pointer to Level3 (spoolss_UserLevel3)",hf_spoolss_spoolss_UserLevel_level3);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevel_level3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UserLevel3(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_UserLevel_level3,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_UserLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_UserLevel");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevel);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = spoolss_dissect_element_UserLevel_level1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = spoolss_dissect_element_UserLevel_level2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = spoolss_dissect_element_UserLevel_level3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] spoolss_UserLevel user_info; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_UserLevelCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevelCtr_level, level);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_UserLevelCtr_user_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = spoolss_dissect_UserLevel(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_UserLevelCtr_user_info, *level);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_UserLevelCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_UserLevelCtr);
+       }
+       
+       offset = spoolss_dissect_element_UserLevelCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = spoolss_dissect_element_UserLevelCtr_user_info(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SERVER_ACCESS_ADMINISTER =  0x00000001 , */
+/* IDL:        SERVER_ACCESS_ENUMERATE =  0x00000002 , */
+/* IDL:        PRINTER_ACCESS_ADMINISTER =  0x00000004 , */
+/* IDL:        PRINTER_ACCESS_USE =  0x00000008 , */
+/* IDL:        JOB_ACCESS_ADMINISTER =  0x00000010 , */
+/* IDL:        JOB_ACCESS_READ =  0x00000020 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_AccessRights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_AccessRights);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SERVER_ACCESS_ADMINISTER");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ENUMERATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SERVER_ACCESS_ENUMERATE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "PRINTER_ACCESS_ADMINISTER");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_USE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "PRINTER_ACCESS_USE");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_JOB_ACCESS_ADMINISTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "JOB_ACCESS_ADMINISTER");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AccessRights_JOB_ACCESS_READ, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "JOB_ACCESS_READ");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *value_name; */
+/* IDL:        [value(2*strlen_m_term(value_name))] uint32 value_name_len; */
+/* IDL:        winreg_Type type; */
+/* IDL:        [relative(1)] [subcontext_size(data_length)] [subcontext(0)] [flag(LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type))] DATA_BLOB *data; */
+/* IDL:        [value(data?data->length:0)] uint32 data_length; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PrinterEnumValues_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterEnumValues_value_name_, , "Pointer to Value Name (string)",hf_spoolss_spoolss_PrinterEnumValues_value_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_value_name , 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_value_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_value_name_len, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PrinterEnumValues_data_, , "Pointer to Data (DATA_BLOB)",hf_spoolss_spoolss_PrinterEnumValues_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_data_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_PrinterEnumValues_data__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_data, 1);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PrinterEnumValues_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PrinterEnumValues_data_length, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PrinterEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PrinterEnumValues);
+       }
+       
+       offset = spoolss_dissect_element_PrinterEnumValues_value_name(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterEnumValues_value_name_len(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterEnumValues_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterEnumValues_data(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PrinterEnumValues_data_length(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [nodiscriminant(1)] union { */
+/* IDL: [case(0)] [case(0)] EMPTY ; */
+/* IDL: [case(1)] [case(1)] EMPTY ; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_KeyNames_string_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_string_array(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_KeyNames_string_array,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_KeyNames(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level = param;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "spoolss_KeyNames");
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_KeyNames);
+       }
+
+       switch(level) {
+               case 0:
+               break;
+
+               case 1:
+               break;
+
+               default:
+                       offset = spoolss_dissect_element_KeyNames_string_array(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: bitmap { */
+/* IDL:        DPD_DELETE_UNUSED_FILES =  0x00000001 , */
+/* IDL:        DPD_DELETE_SPECIFIC_VERSION =  0x00000002 , */
+/* IDL:        DPD_DELETE_ALL_FILES =  0x00000004 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_DeleteDriverFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_DeleteDriverFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "DPD_DELETE_UNUSED_FILES");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "DPD_DELETE_SPECIFIC_VERSION");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "DPD_DELETE_ALL_FILES");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PROTOCOL_RAWTCP_TYPE=1, */
+/* IDL:        PROTOCOL_LPR_TYPE=2, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_PortProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [charset(UTF16)] uint16 portname[64]; */
+/* IDL:        [value(0x00000001)] uint32 version; */
+/* IDL:        spoolss_PortProtocol protocol; */
+/* IDL:        [value(ndr_size_spoolss_PortData1(r,ndr->flags))] uint32 size; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [charset(UTF16)] uint16 hostaddress[49]; */
+/* IDL:        [charset(UTF16)] uint16 snmpcommunity[33]; */
+/* IDL:        uint32 dblspool; */
+/* IDL:        [charset(UTF16)] uint16 queue[33]; */
+/* IDL:        [charset(UTF16)] uint16 ip_address[16]; */
+/* IDL:        [charset(UTF16)] uint16 hardware_address[13]; */
+/* IDL:        [charset(UTF16)] uint16 device_type[257]; */
+/* IDL:        uint32 port_number; */
+/* IDL:        uint32 snmp_enabled; */
+/* IDL:        uint32 snmp_dev_index; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortData1_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = spoolss_dissect_element_PortData1_portname_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_portname, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PortProtocol(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_protocol, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_reserved, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 49; i++)
+               offset = spoolss_dissect_element_PortData1_hostaddress_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_hostaddress, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 33; i++)
+               offset = spoolss_dissect_element_PortData1_snmpcommunity_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_snmpcommunity, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_dblspool, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 33; i++)
+               offset = spoolss_dissect_element_PortData1_queue_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_queue, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_ip_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = spoolss_dissect_element_PortData1_ip_address_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_ip_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_ip_address, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_hardware_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 13; i++)
+               offset = spoolss_dissect_element_PortData1_hardware_address_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_hardware_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_hardware_address, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 257; i++)
+               offset = spoolss_dissect_element_PortData1_device_type_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_device_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_port_number, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_snmp_enabled, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData1_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData1_snmp_dev_index, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortData1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortData1);
+       }
+       
+       offset = spoolss_dissect_element_PortData1_portname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_protocol(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_hostaddress(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_snmpcommunity(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_dblspool(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_queue(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_ip_address(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_hardware_address(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_device_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_port_number(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_snmp_enabled(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData1_snmp_dev_index(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [charset(UTF16)] uint16 portname[64]; */
+/* IDL:        [value(0x00000002)] uint32 version; */
+/* IDL:        spoolss_PortProtocol protocol; */
+/* IDL:        [value(ndr_size_spoolss_PortData2(r,ndr->flags))] uint32 size; */
+/* IDL:        uint32 reserved; */
+/* IDL:        [charset(UTF16)] uint16 hostaddress[128]; */
+/* IDL:        [charset(UTF16)] uint16 snmpcommunity[33]; */
+/* IDL:        uint32 dblspool; */
+/* IDL:        [charset(UTF16)] uint16 queue[33]; */
+/* IDL:        [charset(UTF16)] uint16 device_type[257]; */
+/* IDL:        uint32 port_number; */
+/* IDL:        uint32 snmp_enabled; */
+/* IDL:        uint32 snmp_dev_index; */
+/* IDL:        uint32 port_monitor_mib_index; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_PortData2_portname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = spoolss_dissect_element_PortData2_portname_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_portname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_portname, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_protocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PortProtocol(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_protocol, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_reserved, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_hostaddress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 128; i++)
+               offset = spoolss_dissect_element_PortData2_hostaddress_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_hostaddress_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_hostaddress, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_snmpcommunity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 33; i++)
+               offset = spoolss_dissect_element_PortData2_snmpcommunity_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_snmpcommunity_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_snmpcommunity, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_dblspool(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_dblspool, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_queue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 33; i++)
+               offset = spoolss_dissect_element_PortData2_queue_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_queue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_queue, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_device_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 257; i++)
+               offset = spoolss_dissect_element_PortData2_device_type_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_device_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_device_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_port_number(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_port_number, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_snmp_enabled(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_snmp_enabled, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_snmp_dev_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_snmp_dev_index, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PortData2_port_monitor_mib_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PortData2_port_monitor_mib_index, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_PortData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_PortData2);
+       }
+       
+       offset = spoolss_dissect_element_PortData2_portname(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_protocol(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_size(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_hostaddress(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_snmpcommunity(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_dblspool(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_queue(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_device_type(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_port_number(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_snmp_enabled(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_snmp_dev_index(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_PortData2_port_monitor_mib_index(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string dll_name; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_MonitorUi_dll_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_MonitorUi_dll_name , 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_MonitorUi(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_MonitorUi);
+       }
+       
+       offset = spoolss_dissect_element_MonitorUi_dll_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        APD_STRICT_UPGRADE =  0x00000001 , */
+/* IDL:        APD_STRICT_DOWNGRADE =  0x00000002 , */
+/* IDL:        APD_COPY_ALL_FILES =  0x00000004 , */
+/* IDL:        APD_COPY_NEW_FILES =  0x00000008 , */
+/* IDL:        APD_COPY_FROM_DIRECTORY =  0x00000010 , */
+/* IDL:        APD_DONT_COPY_FILES_TO_CLUSTER =  0x00001000 , */
+/* IDL:        APD_COPY_TO_ALL_SPOOLERS =  0x00002000 , */
+/* IDL:        APD_RETURN_BLOCKING_STATUS_CODE =  0x00010000 , */
+/* IDL: } */
+
+int
+spoolss_dissect_bitmap_AddPrinterDriverExFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_spoolss_spoolss_AddPrinterDriverExFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "APD_STRICT_UPGRADE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "APD_STRICT_DOWNGRADE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "APD_COPY_ALL_FILES");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "APD_COPY_NEW_FILES");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "APD_COPY_FROM_DIRECTORY");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "APD_DONT_COPY_FILES_TO_CLUSTER");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "APD_COPY_TO_ALL_SPOOLERS");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010000 )){
+               proto_item_append_text(item, "APD_RETURN_BLOCKING_STATUS_CODE");
+               if (flags & (~( 0x00010000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        BIDI_NULL=0x00000000, */
+/* IDL:        BIDI_INT=0x00000001, */
+/* IDL:        BIDI_FLOAT=0x00000002, */
+/* IDL:        BIDI_BOOL=0x00000003, */
+/* IDL:        BIDI_STRING=0x00000004, */
+/* IDL:        BIDI_TEXT=0x00000005, */
+/* IDL:        BIDI_ENUM=0x00000006, */
+/* IDL:        BIDI_BLOB=0x00000007, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_BIDI_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 cbBuf; */
+/* IDL:        [unique(1)] [size_is(cbBuf)] uint8 *pszString; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BINARY_CONTAINER_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_, NDR_POINTER_UNIQUE, "Pointer to Pszstring (uint8)",hf_spoolss_RPC_BINARY_CONTAINER_pszString);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BINARY_CONTAINER_pszString, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_BINARY_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BINARY_CONTAINER);
+       }
+       
+       offset = spoolss_dissect_element_RPC_BINARY_CONTAINER_cbBuf(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BINARY_CONTAINER_pszString(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(uint32)] union { */
+/* IDL: [case(BIDI_NULL)] [case(BIDI_NULL)] uint32 bData; */
+/* IDL: [case(BIDI_BOOL)] [case(BIDI_BOOL)] uint32 bData; */
+/* IDL: [case(BIDI_INT)] [case(BIDI_INT)] uint32 iData; */
+/* IDL: [case(BIDI_STRING)] [unique(1)] [charset(UTF16)] [case(BIDI_STRING)] uint16 *sData; */
+/* IDL: [case(BIDI_TEXT)] [unique(1)] [charset(UTF16)] [case(BIDI_TEXT)] uint16 *sData; */
+/* IDL: [case(BIDI_ENUM)] [unique(1)] [charset(UTF16)] [case(BIDI_ENUM)] uint16 *sData; */
+/* IDL: [case(BIDI_BLOB)] [case(BIDI_BLOB)] RPC_BINARY_CONTAINER biData; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u_bData, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u_bData, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u_iData, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_DATA_u_sData_, NDR_POINTER_UNIQUE, "Pointer to Sdata (uint16)",hf_spoolss_RPC_BIDI_DATA_u_sData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_DATA_u_sData, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_DATA_u_sData_, NDR_POINTER_UNIQUE, "Pointer to Sdata (uint16)",hf_spoolss_RPC_BIDI_DATA_u_sData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_DATA_u_sData, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_DATA_u_sData_, NDR_POINTER_UNIQUE, "Pointer to Sdata (uint16)",hf_spoolss_RPC_BIDI_DATA_u_sData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_sData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_DATA_u_sData, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u_biData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BINARY_CONTAINER(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_DATA_u_biData,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RPC_BIDI_DATA_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "RPC_BIDI_DATA_u");
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_DATA_u);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case BIDI_NULL:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BIDI_BOOL:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_bData(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BIDI_INT:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_iData(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BIDI_STRING:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BIDI_TEXT:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BIDI_ENUM:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_sData(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case BIDI_BLOB:
+                       offset = spoolss_dissect_element_RPC_BIDI_DATA_u_biData(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 dwBidiType; */
+/* IDL:        [switch_is(dwBidiType)] RPC_BIDI_DATA_u u; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_dwBidiType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_dwBidiType, dwBidiType);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_DATA_u(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *dwBidiType)
+{
+       offset = spoolss_dissect_RPC_BIDI_DATA_u(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_DATA_u, *dwBidiType);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_BIDI_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g dwBidiType;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_DATA);
+       }
+       
+       offset = spoolss_dissect_element_RPC_BIDI_DATA_dwBidiType(tvb, offset, pinfo, tree, drep, &dwBidiType);
+
+       offset = spoolss_dissect_element_RPC_BIDI_DATA_u(tvb, offset, pinfo, tree, drep, &dwBidiType);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwReqNumber; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pSchema; */
+/* IDL:        RPC_BIDI_DATA data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_DATA_dwReqNumber, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema_, NDR_POINTER_UNIQUE, "Pointer to Pschema (uint16)",hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BIDI_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_REQUEST_DATA_data,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_BIDI_REQUEST_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_REQUEST_DATA);
+       }
+       
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_dwReqNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_pSchema(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_DATA_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(1)] uint32 Version; */
+/* IDL:        uint32 Flags; */
+/* IDL:        uint32 Count; */
+/* IDL:        [unique(1)] [size_is(Count)] RPC_BIDI_REQUEST_DATA *aData[*]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData_);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData__, NDR_POINTER_UNIQUE, "Pointer to Adata (RPC_BIDI_REQUEST_DATA)",hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BIDI_REQUEST_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_BIDI_REQUEST_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_REQUEST_CONTAINER);
+       }
+       
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_Count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_REQUEST_CONTAINER_aData(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dwResult; */
+/* IDL:        uint32 dwReqNumber; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *pSchema; */
+/* IDL:        RPC_BIDI_DATA data; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwResult(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwResult, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwReqNumber(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwReqNumber, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema_, NDR_POINTER_UNIQUE, "Pointer to Pschema (uint16)",hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BIDI_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_RESPONSE_DATA_data,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_BIDI_RESPONSE_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_RESPONSE_DATA);
+       }
+       
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwResult(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_dwReqNumber(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_pSchema(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_DATA_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(1)] uint32 Version; */
+/* IDL:        uint32 Flags; */
+/* IDL:        uint32 Count; */
+/* IDL:        [unique(1)] [size_is(Count)] RPC_BIDI_RESPONSE_DATA *aData[*]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData_);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData__, NDR_POINTER_UNIQUE, "Pointer to Adata (RPC_BIDI_RESPONSE_DATA)",hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BIDI_RESPONSE_DATA(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_BIDI_RESPONSE_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_BIDI_RESPONSE_CONTAINER);
+       }
+       
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Flags(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_Count(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_BIDI_RESPONSE_CONTAINER_aData(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        GUID core_driver_guid; */
+/* IDL:        NTTIME driver_date; */
+/* IDL:        hyper driver_version; */
+/* IDL:        [charset(UTF8)] uint8 formname[520]; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uuid_t(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_core_driver_guid, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CorePrinterDriver_driver_date(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_driver_date);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CorePrinterDriver_driver_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_driver_version, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CorePrinterDriver_formname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 520; i++)
+               offset = spoolss_dissect_element_CorePrinterDriver_formname_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CorePrinterDriver_formname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CorePrinterDriver_formname, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_CorePrinterDriver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_spoolss_CorePrinterDriver);
+       }
+       
+       offset = spoolss_dissect_element_CorePrinterDriver_core_driver_guid(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_CorePrinterDriver_driver_date(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_CorePrinterDriver_driver_version(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_CorePrinterDriver_formname(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        kRpcPropertyTypeString=1, */
+/* IDL:        kRpcPropertyTypeInt32=2, */
+/* IDL:        kRpcPropertyTypeInt64=3, */
+/* IDL:        kRpcPropertyTypeByte=4, */
+/* IDL:        kRpcPropertyTypeBuffer=5, */
+/* IDL: } */
+
+int
+spoolss_dissect_enum_RPC_EPrintPropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 cbBuf; */
+/* IDL:        [unique(1)] [size_is(cbBuf)] uint8 *pBuf; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_propertyBlob_cbBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_propertyBlob_cbBuf, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_propertyBlob_pBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_propertyBlob_pBuf_, NDR_POINTER_UNIQUE, "Pointer to Pbuf (uint8)",hf_spoolss_propertyBlob_pBuf);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_propertyBlob_pBuf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_propertyBlob_pBuf__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_propertyBlob_pBuf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_propertyBlob_pBuf, 0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_propertyBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_propertyBlob);
+       }
+       
+       offset = spoolss_dissect_element_propertyBlob_cbBuf(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_propertyBlob_pBuf(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [ms_union(1)] [switch_type(RPC_EPrintPropertyType)] union { */
+/* IDL: [case(kRpcPropertyTypeString)] [unique(1)] [charset(UTF16)] [case(kRpcPropertyTypeString)] uint16 *propertyString; */
+/* IDL: [case(kRpcPropertyTypeInt32)] [case(kRpcPropertyTypeInt32)] uint32 propertyInt32; */
+/* IDL: [case(kRpcPropertyTypeInt64)] [case(kRpcPropertyTypeInt64)] hyper propertyInt64; */
+/* IDL: [case(kRpcPropertyTypeByte)] [case(kRpcPropertyTypeByte)] uint8 propertyByte; */
+/* IDL: [case(kRpcPropertyTypeBuffer)] [case(kRpcPropertyTypeBuffer)] propertyBlob propertyBlob; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_, NDR_POINTER_UNIQUE, "Pointer to Propertystring (uint16)",hf_spoolss_RPC_PrintPropertyValueUnion_propertyString);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_PrintPropertyValueUnion_propertyString, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt32, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt64(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt64, NULL);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyByte(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValueUnion_propertyByte, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_propertyBlob(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_PrintPropertyValueUnion_propertyBlob,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RPC_PrintPropertyValueUnion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint1632 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "RPC_PrintPropertyValueUnion");
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_PrintPropertyValueUnion);
+       }
+
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_8_BYTES;
+
+       switch(level) {
+               case kRpcPropertyTypeString:
+                       offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyString(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case kRpcPropertyTypeInt32:
+                       offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt32(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case kRpcPropertyTypeInt64:
+                       offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyInt64(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case kRpcPropertyTypeByte:
+                       offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyByte(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case kRpcPropertyTypeBuffer:
+                       offset = spoolss_dissect_element_RPC_PrintPropertyValueUnion_propertyBlob(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        RPC_EPrintPropertyType ePropertyType; */
+/* IDL:        [switch_is(ePropertyType)] RPC_PrintPropertyValueUnion value; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValue_ePropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType)
+{
+       offset = spoolss_dissect_enum_RPC_EPrintPropertyType(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValue_ePropertyType, ePropertyType);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintPropertyValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, guint1632 *ePropertyType)
+{
+       offset = spoolss_dissect_RPC_PrintPropertyValueUnion(tvb, offset, pinfo, tree, drep, hf_spoolss_RPC_PrintPropertyValue_value, *ePropertyType);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_PrintPropertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       guint1632 ePropertyType;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_PrintPropertyValue);
+       }
+       
+       offset = spoolss_dissect_element_RPC_PrintPropertyValue_ePropertyType(tvb, offset, pinfo, tree, drep, &ePropertyType);
+
+       offset = spoolss_dissect_element_RPC_PrintPropertyValue_value(tvb, offset, pinfo, tree, drep, &ePropertyType);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *propertyName; */
+/* IDL:        RPC_PrintPropertyValue propertyValue; */
+/* IDL: } */
+
+static int
+spoolss_dissect_element_RPC_PrintNamedProperty_propertyName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RPC_PrintNamedProperty_propertyName_, NDR_POINTER_UNIQUE, "Pointer to Propertyname (uint16)",hf_spoolss_RPC_PrintNamedProperty_propertyName);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintNamedProperty_propertyName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_RPC_PrintNamedProperty_propertyName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RPC_PrintNamedProperty_propertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_PrintPropertyValue(tvb,offset,pinfo,tree,drep,hf_spoolss_RPC_PrintNamedProperty_propertyValue,0);
+
+       return offset;
+}
+
+int
+spoolss_dissect_struct_RPC_PrintNamedProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_spoolss_RPC_PrintNamedProperty);
+       }
+       
+       offset = spoolss_dissect_element_RPC_PrintNamedProperty_propertyName(tvb, offset, pinfo, tree, drep);
+
+       offset = spoolss_dissect_element_RPC_PrintNamedProperty_propertyValue(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_EnumPrinterFlags(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss__spoolss_EnumPrinters_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinters_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinters_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinters_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrinters_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinters_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrinters_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinters_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumPrinters( */
+/* IDL: [in] spoolss_EnumPrinterFlags flags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrinters";
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrinters";
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinters_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinters_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinters_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinters_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumPrinters( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_PrinterInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrinters";
+       offset = spoolss_dissect_element___spoolss_EnumPrinters_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrinters";
+       offset = spoolss_dissect_element___spoolss_EnumPrinters_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumPrinters_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_EnumPrinterFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_EnumPrinters_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinters_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrinters_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrinters_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrinterInfo)",hf_spoolss_spoolss_EnumPrinters_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrinterInfo)",hf_spoolss_spoolss_EnumPrinters_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinters_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinters_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinters_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinters_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrinters( */
+/* IDL: [in] spoolss_EnumPrinterFlags flags, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PrinterInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrinters_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrinters";
+       offset = spoolss_dissect_element_EnumPrinters_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinters_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinters_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrinters_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrinters";
+       offset = spoolss_dissect_element_EnumPrinters_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinters_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinters_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinters_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinters_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinter_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_OpenPrinter_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinter_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinter_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_OpenPrinter_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinter_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_OpenPrinter_devmode_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_AccessRights(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinter_access_mask, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_OpenPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_OpenPrinter( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *printername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *datatype, */
+/* IDL: [in] spoolss_DevmodeContainer devmode_ctr, */
+/* IDL: [in] spoolss_AccessRights access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_OpenPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenPrinter";
+       offset = spoolss_dissect_element_OpenPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_OpenPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenPrinter";
+       offset = spoolss_dissect_element_OpenPrinter_printername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinter_datatype(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinter_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetJob_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJob_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJob_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJob_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetJob_ctr_, NDR_POINTER_UNIQUE, "Pointer to Ctr (spoolss_JobInfoContainer)",hf_spoolss_spoolss_SetJob_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJob_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_JobInfoContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetJob_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetJob_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_JobControl(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetJob_command, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SetJob( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 job_id, */
+/* IDL: [unique(1)] [in] spoolss_JobInfoContainer *ctr, */
+/* IDL: [in] spoolss_JobControl command */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SetJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetJob";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetJob";
+       offset = spoolss_dissect_element_SetJob_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetJob_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetJob_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetJob_command(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetJob_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_job_id, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetJob_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_JobInfo)",hf_spoolss_spoolss_GetJob_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetJob_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetJob_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetJob_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetJob_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetJob( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 job_id, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_JobInfo *info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetJob";
+       offset = spoolss_dissect_element_GetJob_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetJob_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetJob";
+       offset = spoolss_dissect_element_GetJob_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetJob_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetJob_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetJob_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetJob_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss__spoolss_EnumJobs_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_firstjob, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_numjobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumJobs_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumJobs_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumJobs_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumJobs_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumJobs_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumJobs_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumJobs( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 firstjob, */
+/* IDL: [in] uint32 numjobs, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumJobs";
+       offset = spoolss_dissect_element__spoolss_EnumJobs_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumJobs_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumJobs_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumJobs";
+       offset = spoolss_dissect_element__spoolss_EnumJobs_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumJobs_firstjob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumJobs_numjobs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumJobs_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumJobs_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumJobs_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumJobs_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumJobs_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumJobs_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumJobs( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_JobInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumJobs";
+       offset = spoolss_dissect_element___spoolss_EnumJobs_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumJobs";
+       offset = spoolss_dissect_element___spoolss_EnumJobs_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumJobs_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumJobs_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_firstjob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_firstjob, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_numjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_numjobs, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumJobs_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumJobs_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_JobInfo)",hf_spoolss_spoolss_EnumJobs_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_JobInfo)",hf_spoolss_spoolss_EnumJobs_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_JobInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumJobs_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumJobs_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumJobs_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumJobs_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumJobs( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 firstjob, */
+/* IDL: [in] uint32 numjobs, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_JobInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumJobs_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumJobs";
+       offset = spoolss_dissect_element_EnumJobs_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumJobs_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumJobs_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumJobs_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumJobs";
+       offset = spoolss_dissect_element_EnumJobs_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumJobs_firstjob(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumJobs_numjobs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumJobs_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumJobs_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumJobs_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPrinter_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinter_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_SetPrinterInfoCtr)",hf_spoolss_spoolss_AddPrinter_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinter_info_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_AddPrinter_devmode_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinter_devmode_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_secdesc_ctr_, NDR_POINTER_REF, "Pointer to Secdesc Ctr (sec_desc_buf)",hf_spoolss_spoolss_AddPrinter_secdesc_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinter_secdesc_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrinter( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *info_ctr, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr, */
+/* IDL: [in] [ref] sec_desc_buf *secdesc_ctr, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrinter";
+       offset = spoolss_dissect_element_AddPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrinter";
+       offset = spoolss_dissect_element_AddPrinter_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinter_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinter_secdesc_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinter( */
+/* IDL: [ref] [in] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinter";
+       offset = spoolss_dissect_element_DeletePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_SetPrinterInfoCtr)",hf_spoolss_spoolss_SetPrinter_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinter_info_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_SetPrinter_devmode_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinter_devmode_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinter_secdesc_ctr_, NDR_POINTER_REF, "Pointer to Secdesc Ctr (sec_desc_buf)",hf_spoolss_spoolss_SetPrinter_secdesc_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPrinter_secdesc_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinter_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_PrinterControl(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinter_command, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SetPrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *info_ctr, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr, */
+/* IDL: [in] [ref] sec_desc_buf *secdesc_ctr, */
+/* IDL: [in] spoolss_PrinterControl command */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetPrinter";
+       offset = spoolss_dissect_element_SetPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinter_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinter_secdesc_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinter_command(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinter_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrinterInfo)",hf_spoolss_spoolss_GetPrinter_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetPrinter_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinter_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinter_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinter_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinter_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_PrinterInfo *info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinter";
+       offset = spoolss_dissect_element_GetPrinter_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinter_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinter";
+       offset = spoolss_dissect_element_GetPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinter_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinter_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinter_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriver_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriver_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_AddPrinterDriver_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriver_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinterDriver_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriver_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriver_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddDriverInfoCtr)",hf_spoolss_spoolss_AddPrinterDriver_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriver_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterDriver_info_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrinterDriver( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] [ref] spoolss_AddDriverInfoCtr *info_ctr */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrinterDriver";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrinterDriver";
+       offset = spoolss_dissect_element_AddPrinterDriver_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterDriver_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss__spoolss_EnumPrinterDrivers_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinterDrivers_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss__spoolss_EnumPrinterDrivers_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinterDrivers_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinterDrivers_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrinterDrivers_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrinterDrivers_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDrivers_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrinterDrivers_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDrivers_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumPrinterDrivers( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDrivers";
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDrivers";
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_environment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDrivers_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDrivers_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDrivers_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDrivers_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumPrinterDrivers( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_DriverInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDrivers";
+       offset = spoolss_dissect_element___spoolss_EnumPrinterDrivers_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDrivers";
+       offset = spoolss_dissect_element___spoolss_EnumPrinterDrivers_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumPrinterDrivers_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_EnumPrinterDrivers_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterDrivers_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_EnumPrinterDrivers_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterDrivers_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrinterDrivers_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrinterDrivers_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_EnumPrinterDrivers_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_EnumPrinterDrivers_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDrivers_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinterDrivers_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDrivers_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDrivers_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrinterDrivers( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_DriverInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrinterDrivers";
+       offset = spoolss_dissect_element_EnumPrinterDrivers_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterDrivers_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterDrivers_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrinterDrivers";
+       offset = spoolss_dissect_element_EnumPrinterDrivers_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterDrivers_environment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterDrivers_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterDrivers_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterDrivers_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterDriver_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetPrinterDriver_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriver_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinterDriver_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_GetPrinterDriver_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetPrinterDriver_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDriver_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinterDriver( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *architecture, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_DriverInfo *info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinterDriver";
+       offset = spoolss_dissect_element_GetPrinterDriver_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDriver_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinterDriver";
+       offset = spoolss_dissect_element_GetPrinterDriver_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_GetPrinterDriverDirectory_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverDirectory_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_GetPrinterDriverDirectory_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverDirectory_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverDirectoryInfo)",hf_spoolss_spoolss_GetPrinterDriverDirectory_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetPrinterDriverDirectory_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_DriverDirectoryInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverDirectory_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDriverDirectory_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverDirectory_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinterDriverDirectory( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_DriverDirectoryInfo *info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinterDriverDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinterDriverDirectory";
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinterDriverDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinterDriverDirectory";
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_environment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverDirectory_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriver_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterDriver_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePrinterDriver_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriver_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriver_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriver_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriver_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriver_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriver_driver, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterDriver( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] [charset(UTF16)] uint16 architecture[*], */
+/* IDL: [in] [charset(UTF16)] uint16 driver[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterDriver_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterDriver";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterDriver_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterDriver";
+       offset = spoolss_dissect_element_DeletePrinterDriver_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDriver_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDriver_driver(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrintProcessor_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPrintProcessor_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrintProcessor_path_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_path_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrintProcessor_print_processor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrintProcessor( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] [charset(UTF16)] uint16 architecture[*], */
+/* IDL: [in] [charset(UTF16)] uint16 path_name[*], */
+/* IDL: [in] [charset(UTF16)] uint16 print_processor_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrintProcessor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrintProcessor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrintProcessor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrintProcessor";
+       offset = spoolss_dissect_element_AddPrintProcessor_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrintProcessor_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrintProcessor_path_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrintProcessor_print_processor_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumPrintProcessors_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcessors_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss__spoolss_EnumPrintProcessors_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcessors_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcessors_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcessors_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrintProcessors_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcessors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrintProcessors_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcessors_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumPrintProcessors( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcessors";
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcessors";
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_environment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcessors_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcessors_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcessors_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrintProcessorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcessors_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumPrintProcessors( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_PrintProcessorInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcessors";
+       offset = spoolss_dissect_element___spoolss_EnumPrintProcessors_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcessors";
+       offset = spoolss_dissect_element___spoolss_EnumPrintProcessors_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumPrintProcessors_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumPrintProcessors_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcessors_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_EnumPrintProcessors_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcessors_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrintProcessors_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrintProcessors_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrintProcessorInfo)",hf_spoolss_spoolss_EnumPrintProcessors_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrintProcessorInfo)",hf_spoolss_spoolss_EnumPrintProcessors_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrintProcessorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcessors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrintProcessors_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcessors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcessors_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrintProcessors( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PrintProcessorInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrintProcessors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrintProcessors";
+       offset = spoolss_dissect_element_EnumPrintProcessors_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrintProcessors_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrintProcessors_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrintProcessors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrintProcessors";
+       offset = spoolss_dissect_element_EnumPrintProcessors_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcessors_environment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcessors_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcessors_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcessors_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_GetPrintProcessorDirectory_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrintProcessorDirectory_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_environment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_environment_, NDR_POINTER_UNIQUE, "Pointer to Environment (uint16)",hf_spoolss_spoolss_GetPrintProcessorDirectory_environment);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_environment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrintProcessorDirectory_environment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrintProcessorDirectoryInfo)",hf_spoolss_spoolss_GetPrintProcessorDirectory_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetPrintProcessorDirectory_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrintProcessorDirectoryInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrintProcessorDirectory_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrintProcessorDirectory_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrintProcessorDirectory_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrintProcessorDirectory_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrintProcessorDirectory( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *environment, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_PrintProcessorDirectoryInfo *info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrintProcessorDirectory_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrintProcessorDirectory";
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrintProcessorDirectory_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrintProcessorDirectory";
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_environment(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrintProcessorDirectory_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartDocPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_StartDocPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StartDocPrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartDocPrinter_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartDocPrinter_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_DocumentInfoCtr)",hf_spoolss_spoolss_StartDocPrinter_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartDocPrinter_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DocumentInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_StartDocPrinter_info_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartDocPrinter_job_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartDocPrinter_job_id_, NDR_POINTER_REF, "Pointer to Job Id (uint32)",hf_spoolss_spoolss_StartDocPrinter_job_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartDocPrinter_job_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StartDocPrinter_job_id, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_StartDocPrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] spoolss_DocumentInfoCtr *info_ctr, */
+/* IDL: [out] [ref] uint32 *job_id */
+/* IDL: ); */
+
+static int
+spoolss_dissect_StartDocPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="StartDocPrinter";
+       offset = spoolss_dissect_element_StartDocPrinter_job_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_StartDocPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="StartDocPrinter";
+       offset = spoolss_dissect_element_StartDocPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_StartDocPrinter_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_StartPagePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_StartPagePrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_StartPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_StartPagePrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_StartPagePrinter( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_StartPagePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="StartPagePrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_StartPagePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="StartPagePrinter";
+       offset = spoolss_dissect_element_StartPagePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_WritePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_WritePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_WritePrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_WritePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_WritePrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_WritePrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter__data_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_WritePrinter_num_written(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_WritePrinter_num_written_, NDR_POINTER_REF, "Pointer to Num Written (uint32)",hf_spoolss_spoolss_WritePrinter_num_written);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_WritePrinter_num_written_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_WritePrinter_num_written, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_WritePrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] DATA_BLOB data, */
+/* IDL: [in] [value(r->in.data.length)] uint32 _data_size, */
+/* IDL: [out] [ref] uint32 *num_written */
+/* IDL: ); */
+
+static int
+spoolss_dissect_WritePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="WritePrinter";
+       offset = spoolss_dissect_element_WritePrinter_num_written(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_WritePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="WritePrinter";
+       offset = spoolss_dissect_element_WritePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_WritePrinter_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_WritePrinter__data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EndPagePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EndPagePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EndPagePrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EndPagePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EndPagePrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EndPagePrinter( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EndPagePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EndPagePrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EndPagePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EndPagePrinter";
+       offset = spoolss_dissect_element_EndPagePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AbortPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AbortPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AbortPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AbortPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AbortPrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AbortPrinter( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AbortPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AbortPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AbortPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AbortPrinter";
+       offset = spoolss_dissect_element_AbortPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ReadPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_ReadPrinter_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter_data_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter__data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReadPrinter__data_size_, NDR_POINTER_REF, "Pointer to  Data Size (uint32)",hf_spoolss_spoolss_ReadPrinter__data_size);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReadPrinter__data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReadPrinter__data_size, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ReadPrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] [size_is(data_size)] uint8 *data, */
+/* IDL: [in] uint32 data_size, */
+/* IDL: [out] [ref] uint32 *_data_size */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ReadPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReadPrinter";
+       offset = spoolss_dissect_element_ReadPrinter_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_ReadPrinter__data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ReadPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReadPrinter";
+       offset = spoolss_dissect_element_ReadPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ReadPrinter_data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EndDocPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EndDocPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EndDocPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EndDocPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EndDocPrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EndDocPrinter( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EndDocPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EndDocPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EndDocPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EndDocPrinter";
+       offset = spoolss_dissect_element_EndDocPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddJob_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_spoolss_spoolss_AddJob_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_buffer__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddJob_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_AddJob_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddJob_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddJob_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddJob( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [out] [in] [size_is(offered)] uint8 *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddJob";
+       offset = spoolss_dissect_element_AddJob_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_AddJob_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddJob";
+       offset = spoolss_dissect_element_AddJob_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddJob_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddJob_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddJob_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ScheduleJob_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ScheduleJob_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ScheduleJob_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ScheduleJob_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ScheduleJob_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ScheduleJob_jobid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ScheduleJob_jobid, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ScheduleJob( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 jobid */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ScheduleJob_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ScheduleJob";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ScheduleJob_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ScheduleJob";
+       offset = spoolss_dissect_element_ScheduleJob_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ScheduleJob_jobid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterData_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterData_value_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_type_, NDR_POINTER_REF, "Pointer to Type (winreg_Type)",hf_spoolss_spoolss_GetPrinterData_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_GetPrinterData_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterData_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterData_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterData_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinterData( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
+/* IDL: [out] [ref] winreg_Type *type, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *data, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinterData";
+       offset = spoolss_dissect_element_GetPrinterData_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterData_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterData_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinterData";
+       offset = spoolss_dissect_element_GetPrinterData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterData_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterData_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetPrinterData_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterData_value_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_SetPrinterData_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterData_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterData_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterData_offered, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SetPrinterData( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
+/* IDL: [in] winreg_Type type, */
+/* IDL: [ref] [in] [size_is(offered)] uint8 *data, */
+/* IDL: [in] uint32 offered */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SetPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetPrinterData";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetPrinterData";
+       offset = spoolss_dissect_element_SetPrinterData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterData_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterData_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterData_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterData_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_WaitForPrinterChange( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_WaitForPrinterChange_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="WaitForPrinterChange";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_WaitForPrinterChange_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="WaitForPrinterChange";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ClosePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ClosePrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ClosePrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ClosePrinter( */
+/* IDL: [out] [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ClosePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ClosePrinter";
+       offset = spoolss_dissect_element_ClosePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ClosePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ClosePrinter";
+       offset = spoolss_dissect_element_ClosePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddForm_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddForm_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddForm_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddFormInfoCtr)",hf_spoolss_spoolss_AddForm_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddFormInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddForm_info_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddForm( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] spoolss_AddFormInfoCtr *info_ctr */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddForm";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddForm";
+       offset = spoolss_dissect_element_AddForm_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddForm_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeleteForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeleteForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeleteForm_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeleteForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeleteForm_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeleteForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeleteForm_form_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeleteForm( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 form_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeleteForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteForm";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeleteForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteForm";
+       offset = spoolss_dissect_element_DeleteForm_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeleteForm_form_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetForm_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetForm_form_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetForm_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_FormInfo)",hf_spoolss_spoolss_GetForm_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetForm_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_FormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetForm_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetForm_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetForm_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetForm_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetForm( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 form_name[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_FormInfo *info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetForm";
+       offset = spoolss_dissect_element_GetForm_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetForm_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetForm";
+       offset = spoolss_dissect_element_GetForm_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetForm_form_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetForm_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetForm_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetForm_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetForm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetForm_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetForm_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetForm_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetForm_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetForm_form_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetForm_form_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetForm_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetForm_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddFormInfoCtr)",hf_spoolss_spoolss_SetForm_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetForm_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddFormInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetForm_info_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SetForm( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 form_name[*], */
+/* IDL: [in] [ref] spoolss_AddFormInfoCtr *info_ctr */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SetForm_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetForm";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetForm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetForm";
+       offset = spoolss_dissect_element_SetForm_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetForm_form_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetForm_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss__spoolss_EnumForms_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumForms_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumForms_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumForms_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumForms_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumForms_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumForms_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumForms( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumForms";
+       offset = spoolss_dissect_element__spoolss_EnumForms_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumForms_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumForms_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumForms";
+       offset = spoolss_dissect_element__spoolss_EnumForms_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumForms_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumForms_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumForms_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumForms_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumForms_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_FormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumForms_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumForms( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_FormInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumForms";
+       offset = spoolss_dissect_element___spoolss_EnumForms_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumForms";
+       offset = spoolss_dissect_element___spoolss_EnumForms_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumForms_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumForms_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumForms_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumForms_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_FormInfo)",hf_spoolss_spoolss_EnumForms_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_FormInfo)",hf_spoolss_spoolss_EnumForms_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_FormInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumForms_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumForms_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumForms_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumForms_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumForms( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_FormInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumForms_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumForms";
+       offset = spoolss_dissect_element_EnumForms_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumForms_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumForms_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumForms_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumForms";
+       offset = spoolss_dissect_element_EnumForms_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumForms_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumForms_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumForms_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumPorts_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPorts_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPorts_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPorts_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPorts_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPorts_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPorts_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPorts_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumPorts( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPorts";
+       offset = spoolss_dissect_element__spoolss_EnumPorts_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPorts_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPorts_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPorts";
+       offset = spoolss_dissect_element__spoolss_EnumPorts_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPorts_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPorts_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPorts_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPorts_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPorts_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PortInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPorts_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumPorts( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_PortInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPorts";
+       offset = spoolss_dissect_element___spoolss_EnumPorts_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPorts";
+       offset = spoolss_dissect_element___spoolss_EnumPorts_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumPorts_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumPorts_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPorts_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPorts_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPorts_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PortInfo)",hf_spoolss_spoolss_EnumPorts_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PortInfo)",hf_spoolss_spoolss_EnumPorts_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PortInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPorts_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPorts_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPorts_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPorts_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPorts( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PortInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPorts_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPorts";
+       offset = spoolss_dissect_element_EnumPorts_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPorts_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPorts_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPorts_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPorts";
+       offset = spoolss_dissect_element_EnumPorts_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPorts_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPorts_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPorts_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumMonitors_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumMonitors_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumMonitors_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumMonitors_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumMonitors_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumMonitors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumMonitors_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumMonitors_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumMonitors( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumMonitors";
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumMonitors";
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumMonitors_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumMonitors_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumMonitors_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_MonitorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumMonitors_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumMonitors( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_MonitorInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumMonitors";
+       offset = spoolss_dissect_element___spoolss_EnumMonitors_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumMonitors";
+       offset = spoolss_dissect_element___spoolss_EnumMonitors_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumMonitors_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumMonitors_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumMonitors_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumMonitors_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumMonitors_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_MonitorInfo)",hf_spoolss_spoolss_EnumMonitors_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_MonitorInfo)",hf_spoolss_spoolss_EnumMonitors_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_MonitorInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumMonitors_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumMonitors_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumMonitors_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumMonitors_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumMonitors( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_MonitorInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumMonitors_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumMonitors";
+       offset = spoolss_dissect_element_EnumMonitors_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumMonitors_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumMonitors_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumMonitors_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumMonitors";
+       offset = spoolss_dissect_element_EnumMonitors_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumMonitors_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumMonitors_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumMonitors_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPort_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_AddPort_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPort_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPort_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPort_unknown, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPort_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPort_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPort( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] uint32 unknown, */
+/* IDL: [in] [charset(UTF16)] uint16 monitor_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPort";
+       offset = spoolss_dissect_element_AddPort_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPort_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPort_monitor_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ConfigurePort( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ConfigurePort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ConfigurePort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ConfigurePort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ConfigurePort";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePort_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePort_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_spoolss_spoolss_DeletePort_server_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePort_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePort_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePort_ptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePort_ptr, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePort_port_name_, NDR_POINTER_REF, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_DeletePort_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePort_port_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePort( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] uint32 ptr, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *port_name */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePort";
+       offset = spoolss_dissect_element_DeletePort_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePort_ptr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePort_port_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CreatePrinterIC_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_CreatePrinterIC_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_CreatePrinterIC_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CreatePrinterIC_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CreatePrinterIC_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CreatePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_CreatePrinterIC_gdi_handle_, NDR_POINTER_REF, "Pointer to Gdi Handle (policy_handle)",hf_spoolss_spoolss_CreatePrinterIC_gdi_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CreatePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_CreatePrinterIC_gdi_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CreatePrinterIC_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_CreatePrinterIC_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_CreatePrinterIC_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_CreatePrinterIC( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] policy_handle *gdi_handle, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr */
+/* IDL: ); */
+
+static int
+spoolss_dissect_CreatePrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreatePrinterIC";
+       offset = spoolss_dissect_element_CreatePrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_CreatePrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreatePrinterIC";
+       offset = spoolss_dissect_element_CreatePrinterIC_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_CreatePrinterIC_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_, NDR_POINTER_REF, "Pointer to Gdi Handle (policy_handle)",hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_, NDR_POINTER_REF, "Pointer to Pin (uint8)",hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cIn, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_, NDR_POINTER_REF, "Pointer to Pout (uint8)",hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cOut, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_ul, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_PlayGDIScriptOnPrinterIC( */
+/* IDL: [in] [ref] policy_handle *gdi_handle, */
+/* IDL: [ref] [in] [size_is(cIn)] uint8 *pIn, */
+/* IDL: [in] uint32 cIn, */
+/* IDL: [out] [ref] [size_is(cOut)] uint8 *pOut, */
+/* IDL: [in] uint32 cOut, */
+/* IDL: [in] uint32 ul */
+/* IDL: ); */
+
+static int
+spoolss_dissect_PlayGDIScriptOnPrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PlayGDIScriptOnPrinterIC";
+       offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PlayGDIScriptOnPrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PlayGDIScriptOnPrinterIC";
+       offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_pIn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cIn(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_cOut(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_PlayGDIScriptOnPrinterIC_ul(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterIC_gdi_handle_, NDR_POINTER_REF, "Pointer to Gdi Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterIC_gdi_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterIC_gdi_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterIC_gdi_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterIC( */
+/* IDL: [out] [in] [ref] policy_handle *gdi_handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterIC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterIC";
+       offset = spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterIC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterIC";
+       offset = spoolss_dissect_element_DeletePrinterIC_gdi_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrinterConnection( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrinterConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrinterConnection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrinterConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrinterConnection";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterConnection( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterConnection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterConnection";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_PrinterMessageBox( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_PrinterMessageBox_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="PrinterMessageBox";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_PrinterMessageBox_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="PrinterMessageBox";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddMonitor( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddMonitor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddMonitor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddMonitor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddMonitor";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeleteMonitor( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeleteMonitor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteMonitor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeleteMonitor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteMonitor";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrintProcessor_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrintProcessor_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePrintProcessor_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrintProcessor_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrintProcessor_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrintProcessor_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrintProcessor_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_DeletePrintProcessor_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrintProcessor_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrintProcessor_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrintProcessor_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrintProcessor_print_processor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrintProcessor( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *architecture, */
+/* IDL: [in] [charset(UTF16)] uint16 print_processor_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrintProcessor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrintProcessor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrintProcessor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrintProcessor";
+       offset = spoolss_dissect_element_DeletePrintProcessor_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrintProcessor_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrintProcessor_print_processor_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrintProvidor( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrintProvidor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrintProvidor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrintProvidor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrintProvidor";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrintProvidor( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrintProvidor_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrintProvidor";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrintProvidor_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrintProvidor";
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss__spoolss_EnumPrintProcDataTypes_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcDataTypes_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name_, NDR_POINTER_UNIQUE, "Pointer to Print Processor Name (uint16)",hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info_, NDR_POINTER_UNIQUE, "Pointer to Info (DATA_BLOB)",hf_spoolss__spoolss_EnumPrintProcDataTypes_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrintProcDataTypes_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrintProcDataTypes_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrintProcDataTypes_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumPrintProcDataTypes( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *print_processor_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [unique(1)] DATA_BLOB *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumPrintProcDataTypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcDataTypes";
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumPrintProcDataTypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrintProcDataTypes";
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_print_processor_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrintProcDataTypes_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcDataTypes_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcDataTypes_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrintProcDataTypesInfo(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrintProcDataTypes_info, *0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumPrintProcDataTypes( */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] [switch_is(level)] spoolss_PrintProcDataTypesInfo info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumPrintProcDataTypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcDataTypes";
+       offset = spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumPrintProcDataTypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrintProcDataTypes";
+       offset = spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element___spoolss_EnumPrintProcDataTypes_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_EnumPrintProcDataTypes_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcDataTypes_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name_, NDR_POINTER_UNIQUE, "Pointer to Print Processor Name (uint16)",hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrintProcDataTypes_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrintProcDataTypesInfo)",hf_spoolss_spoolss_EnumPrintProcDataTypes_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrintProcDataTypesInfo)",hf_spoolss_spoolss_EnumPrintProcDataTypes_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_PrintProcDataTypesInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrintProcDataTypes_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrintProcDataTypes_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrintProcDataTypes_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrintProcDataTypes_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrintProcDataTypes( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *print_processor_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [switch_is(level)] [size_is(,*count)] spoolss_PrintProcDataTypesInfo **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrintProcDataTypes_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrintProcDataTypes";
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrintProcDataTypes_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrintProcDataTypes";
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_print_processor_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrintProcDataTypes_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ResetPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ResetPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ResetPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ResetPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ResetPrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ResetPrinter_data_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ResetPrinter_data_type_, NDR_POINTER_UNIQUE, "Pointer to Data Type (uint16)",hf_spoolss_spoolss_ResetPrinter_data_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ResetPrinter_data_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_ResetPrinter_data_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ResetPrinter_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ResetPrinter_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_ResetPrinter_devmode_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ResetPrinter_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_ResetPrinter_devmode_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ResetPrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *data_type, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ResetPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ResetPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ResetPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ResetPrinter";
+       offset = spoolss_dissect_element_ResetPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ResetPrinter_data_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ResetPrinter_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterDriver2_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_architecture_, NDR_POINTER_UNIQUE, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetPrinterDriver2_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriver2_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_level, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (DATA_BLOB)",hf_spoolss_spoolss_GetPrinterDriver2_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_client_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_client_major_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_client_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_client_minor_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_info_, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_DriverInfo)",hf_spoolss_spoolss_GetPrinterDriver2_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint3264 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint3264(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_info_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_GetPrinterDriver2_info__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_DriverInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_info, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDriver2_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_server_major_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_server_major_version_, NDR_POINTER_REF, "Pointer to Server Major Version (uint32)",hf_spoolss_spoolss_GetPrinterDriver2_server_major_version);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_server_major_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_server_major_version, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_server_minor_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriver2_server_minor_version_, NDR_POINTER_REF, "Pointer to Server Minor Version (uint32)",hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriver2_server_minor_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinterDriver2( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *architecture, */
+/* IDL: [in] uint32 level, */
+/* IDL: [unique(1)] [in] DATA_BLOB *buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [in] uint32 client_major_version, */
+/* IDL: [in] uint32 client_minor_version, */
+/* IDL: [unique(1)] [out] [subcontext_size(offered)] [subcontext(4)] [switch_is(level)] spoolss_DriverInfo *info, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *server_major_version, */
+/* IDL: [out] [ref] uint32 *server_minor_version */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinterDriver2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinterDriver2";
+       offset = spoolss_dissect_element_GetPrinterDriver2_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDriver2_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDriver2_server_major_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDriver2_server_minor_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinterDriver2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinterDriver2";
+       offset = spoolss_dissect_element_GetPrinterDriver2_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver2_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver2_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver2_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver2_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver2_client_major_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriver2_client_minor_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_FindFirstPrinterChangeNotification( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_FindFirstPrinterChangeNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FindFirstPrinterChangeNotification";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_FindFirstPrinterChangeNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FindFirstPrinterChangeNotification";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_FindNextPrinterChangeNotification( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_FindNextPrinterChangeNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FindNextPrinterChangeNotification";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_FindNextPrinterChangeNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FindNextPrinterChangeNotification";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FindClosePrinterNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_FindClosePrinterNotify_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_FindClosePrinterNotify_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_FindClosePrinterNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_FindClosePrinterNotify_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_FindClosePrinterNotify( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_FindClosePrinterNotify_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FindClosePrinterNotify";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_FindClosePrinterNotify_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FindClosePrinterNotify";
+       offset = spoolss_dissect_element_FindClosePrinterNotify_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RouterFindFirstPrinterChangeNotificationOld( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotificationOld";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotificationOld";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_ReplyOpenPrinter_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_printer_local, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_bufsize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_spoolss_spoolss_ReplyOpenPrinter_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_buffer__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_buffer, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyOpenPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ReplyOpenPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyOpenPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyOpenPrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ReplyOpenPrinter( */
+/* IDL: [in] [charset(UTF16)] uint16 server_name[*], */
+/* IDL: [in] uint32 printer_local, */
+/* IDL: [in] winreg_Type type, */
+/* IDL: [in] [range(0,512)] uint32 bufsize, */
+/* IDL: [unique(1)] [in] [size_is(bufsize)] uint8 *buffer, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ReplyOpenPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReplyOpenPrinter";
+       offset = spoolss_dissect_element_ReplyOpenPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ReplyOpenPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReplyOpenPrinter";
+       offset = spoolss_dissect_element_ReplyOpenPrinter_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ReplyOpenPrinter_printer_local(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ReplyOpenPrinter_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ReplyOpenPrinter_bufsize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_ReplyOpenPrinter_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RouterReplyPrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterChangeFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_bufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_bufsize, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_spoolss_spoolss_RouterReplyPrinter_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinter_buffer__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinter_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinter_buffer, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RouterReplyPrinter( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] spoolss_PrinterChangeFlags flags, */
+/* IDL: [in] [range(0,512)] uint32 bufsize, */
+/* IDL: [unique(1)] [in] [size_is(bufsize)] uint8 *buffer */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RouterReplyPrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RouterReplyPrinter";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RouterReplyPrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RouterReplyPrinter";
+       offset = spoolss_dissect_element_RouterReplyPrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinter_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinter_bufsize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinter_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyClosePrinter_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_ReplyClosePrinter_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_ReplyClosePrinter_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_ReplyClosePrinter_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_ReplyClosePrinter_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ReplyClosePrinter( */
+/* IDL: [out] [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ReplyClosePrinter_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReplyClosePrinter";
+       offset = spoolss_dissect_element_ReplyClosePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ReplyClosePrinter_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReplyClosePrinter";
+       offset = spoolss_dissect_element_ReplyClosePrinter_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_AddPortEx_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPortEx_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_port_ctr_, NDR_POINTER_REF, "Pointer to Port Ctr (spoolss_SetPortInfoContainer)",hf_spoolss_spoolss_AddPortEx_port_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPortInfoContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPortEx_port_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_port_var_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_port_var_ctr_, NDR_POINTER_REF, "Pointer to Port Var Ctr (spoolss_PortVarContainer)",hf_spoolss_spoolss_AddPortEx_port_var_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_port_var_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PortVarContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPortEx_port_var_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_monitor_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPortEx_monitor_name_, NDR_POINTER_UNIQUE, "Pointer to Monitor Name (uint16)",hf_spoolss_spoolss_AddPortEx_monitor_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPortEx_monitor_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPortEx_monitor_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPortEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] [ref] spoolss_SetPortInfoContainer *port_ctr, */
+/* IDL: [in] [ref] spoolss_PortVarContainer *port_var_ctr, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *monitor_name */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPortEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPortEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPortEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPortEx";
+       offset = spoolss_dissect_element_AddPortEx_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPortEx_port_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPortEx_port_var_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPortEx_monitor_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RouterFindFirstPrinterChangeNotification( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RouterFindFirstPrinterChangeNotification_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotification";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RouterFindFirstPrinterChangeNotification_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RouterFindFirstPrinterChangeNotification";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SpoolerInit( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SpoolerInit_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SpoolerInit";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SpoolerInit_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SpoolerInit";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_ResetPrinterEx( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_ResetPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ResetPrinterEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_ResetPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ResetPrinterEx";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterChangeFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_options, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine_, NDR_POINTER_UNIQUE, "Pointer to Local Machine (uint16)",hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_printer_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_printer_local, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options_, NDR_POINTER_UNIQUE, "Pointer to Notify Options (spoolss_NotifyOption)",hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_NotifyOption(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] spoolss_PrinterChangeFlags flags, */
+/* IDL: [in] uint32 options, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *local_machine, */
+/* IDL: [in] uint32 printer_local, */
+/* IDL: [unique(1)] [in] spoolss_NotifyOption *notify_options */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RemoteFindFirstPrinterChangeNotifyEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RemoteFindFirstPrinterChangeNotifyEx";
+       offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_local_machine(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_printer_local(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RemoteFindFirstPrinterChangeNotifyEx_notify_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinterEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RouterReplyPrinterEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_color(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_color, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterChangeFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_reply_result(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterReplyPrinterEx_reply_result_, NDR_POINTER_REF, "Pointer to Reply Result (spoolss_PrinterNotifyFlags)",hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_reply_result_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_PrinterNotifyFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_reply_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_reply_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterReplyPrinterEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_ReplyPrinterInfo(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterReplyPrinterEx_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RouterReplyPrinterEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 color, */
+/* IDL: [in] spoolss_PrinterChangeFlags flags, */
+/* IDL: [out] [ref] spoolss_PrinterNotifyFlags *reply_result, */
+/* IDL: [in] uint32 reply_type, */
+/* IDL: [in] [switch_is(reply_type)] spoolss_ReplyPrinterInfo info */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RouterReplyPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RouterReplyPrinterEx";
+       offset = spoolss_dissect_element_RouterReplyPrinterEx_reply_result(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RouterReplyPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RouterReplyPrinterEx";
+       offset = spoolss_dissect_element_RouterReplyPrinterEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinterEx_color(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinterEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinterEx_reply_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterReplyPrinterEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_change_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_change_low, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options_, NDR_POINTER_UNIQUE, "Pointer to Options (spoolss_NotifyOption)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_NotifyOption(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_NotifyInfo)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_NotifyInfo)",hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_NotifyInfo(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RouterRefreshPrinterChangeNotify( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 change_low, */
+/* IDL: [unique(1)] [in] spoolss_NotifyOption *options, */
+/* IDL: [out] [ref] spoolss_NotifyInfo **info */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RouterRefreshPrinterChangeNotify_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RouterRefreshPrinterChangeNotify";
+       offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RouterRefreshPrinterChangeNotify_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RouterRefreshPrinterChangeNotify";
+       offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_change_low(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RouterRefreshPrinterChangeNotify_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_44( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_44_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="44";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_44_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="44";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinterEx_printername_, NDR_POINTER_UNIQUE, "Pointer to Printername (uint16)",hf_spoolss_spoolss_OpenPrinterEx_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinterEx_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_datatype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinterEx_datatype_, NDR_POINTER_UNIQUE, "Pointer to Datatype (uint16)",hf_spoolss_spoolss_OpenPrinterEx_datatype);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_datatype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_OpenPrinterEx_datatype, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_OpenPrinterEx_devmode_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_AccessRights(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinterEx_access_mask, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UserLevelCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_OpenPrinterEx_userlevel_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_OpenPrinterEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_OpenPrinterEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_OpenPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_OpenPrinterEx_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_OpenPrinterEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *printername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *datatype, */
+/* IDL: [in] spoolss_DevmodeContainer devmode_ctr, */
+/* IDL: [in] spoolss_AccessRights access_mask, */
+/* IDL: [in] spoolss_UserLevelCtr userlevel_ctr, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_OpenPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenPrinterEx";
+       offset = spoolss_dissect_element_OpenPrinterEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_OpenPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenPrinterEx";
+       offset = spoolss_dissect_element_OpenPrinterEx_printername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinterEx_datatype(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinterEx_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinterEx_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_OpenPrinterEx_userlevel_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPrinterEx_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinterEx_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_SetPrinterInfoCtr)",hf_spoolss_spoolss_AddPrinterEx_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPrinterInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_info_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_devmode_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_devmode_ctr_, NDR_POINTER_REF, "Pointer to Devmode Ctr (spoolss_DevmodeContainer)",hf_spoolss_spoolss_AddPrinterEx_devmode_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_devmode_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_DevmodeContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_devmode_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_secdesc_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_secdesc_ctr_, NDR_POINTER_REF, "Pointer to Secdesc Ctr (sec_desc_buf)",hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_secdesc_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_userlevel_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_userlevel_ctr_, NDR_POINTER_REF, "Pointer to Userlevel Ctr (spoolss_UserLevelCtr)",hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_userlevel_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_UserLevelCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_AddPrinterEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPrinterEx_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrinterEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] [ref] spoolss_SetPrinterInfoCtr *info_ctr, */
+/* IDL: [in] [ref] spoolss_DevmodeContainer *devmode_ctr, */
+/* IDL: [in] [ref] sec_desc_buf *secdesc_ctr, */
+/* IDL: [in] [ref] spoolss_UserLevelCtr *userlevel_ctr, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrinterEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrinterEx";
+       offset = spoolss_dissect_element_AddPrinterEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrinterEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrinterEx";
+       offset = spoolss_dissect_element_AddPrinterEx_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterEx_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterEx_devmode_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterEx_secdesc_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterEx_userlevel_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPort_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPort_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_SetPort_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPort_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPort_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPort_port_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPort_port_name_, NDR_POINTER_UNIQUE, "Pointer to Port Name (uint16)",hf_spoolss_spoolss_SetPort_port_name);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPort_port_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPort_port_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPort_port_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPort_port_ctr_, NDR_POINTER_REF, "Pointer to Port Ctr (spoolss_SetPortInfoContainer)",hf_spoolss_spoolss_SetPort_port_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPort_port_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_SetPortInfoContainer(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_SetPort_port_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SetPort( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *port_name, */
+/* IDL: [in] [ref] spoolss_SetPortInfoContainer *port_ctr */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SetPort_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetPort";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetPort_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetPort";
+       offset = spoolss_dissect_element_SetPort_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPort_port_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPort_port_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumPrinterData_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_enum_index, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_value_name_);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_value_name, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_value_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_value_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_value_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_value_needed_, NDR_POINTER_REF, "Pointer to Value Needed (uint32)",hf_spoolss_spoolss_EnumPrinterData_value_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_value_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_value_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_type_, NDR_POINTER_REF, "Pointer to Type (winreg_Type)",hf_spoolss_spoolss_EnumPrinterData_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_EnumPrinterData_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_data_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_data_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterData_data_needed_, NDR_POINTER_REF, "Pointer to Data Needed (uint32)",hf_spoolss_spoolss_EnumPrinterData_data_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterData_data_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterData_data_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrinterData( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 enum_index, */
+/* IDL: [out] [charset(UTF16)] [size_is(value_offered/2)] uint16 value_name[*], */
+/* IDL: [in] uint32 value_offered, */
+/* IDL: [out] [ref] uint32 *value_needed, */
+/* IDL: [out] [ref] winreg_Type *type, */
+/* IDL: [out] [ref] [flag(LIBNDR_PRINT_ARRAY_HEX)] [size_is(data_offered)] uint8 *data, */
+/* IDL: [in] uint32 data_offered, */
+/* IDL: [out] [ref] uint32 *data_needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrinterData";
+       offset = spoolss_dissect_element_EnumPrinterData_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterData_value_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterData_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterData_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterData_data_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrinterData";
+       offset = spoolss_dissect_element_EnumPrinterData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterData_enum_index(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterData_value_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterData_data_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterData_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterData_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterData_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterData_value_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterData( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 value_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterData";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterData";
+       offset = spoolss_dissect_element_DeletePrinterData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterData_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_4a( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_4a_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="4a";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_4a_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="4a";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_4b( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_4b_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="4b";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_4b_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="4b";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_4c( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_4c_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="4c";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_4c_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="4c";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_SetPrinterDataEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterDataEx_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_SetPrinterDataEx_value_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_SetPrinterDataEx_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_SetPrinterDataEx_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_SetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_SetPrinterDataEx_offered, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_SetPrinterDataEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
+/* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
+/* IDL: [in] winreg_Type type, */
+/* IDL: [ref] [in] [size_is(offered)] uint8 *data, */
+/* IDL: [in] uint32 offered */
+/* IDL: ); */
+
+static int
+spoolss_dissect_SetPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetPrinterDataEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_SetPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetPrinterDataEx";
+       offset = spoolss_dissect_element_SetPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterDataEx_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterDataEx_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterDataEx_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_SetPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_GetPrinterDataEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDataEx_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDataEx_value_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_type_, NDR_POINTER_REF, "Pointer to Type (winreg_Type)",hf_spoolss_spoolss_GetPrinterDataEx_type);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_enum_winreg_Type(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_type, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_spoolss_spoolss_GetPrinterDataEx_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDataEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_GetPrinterDataEx_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDataEx_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinterDataEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
+/* IDL: [in] [charset(UTF16)] uint16 value_name[*], */
+/* IDL: [out] [ref] winreg_Type *type, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *data, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinterDataEx";
+       offset = spoolss_dissect_element_GetPrinterDataEx_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDataEx_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDataEx_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinterDataEx";
+       offset = spoolss_dissect_element_GetPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDataEx_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss__spoolss_EnumPrinterDataEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss__spoolss_EnumPrinterDataEx_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_info, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss__spoolss_EnumPrinterDataEx_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element__spoolss_EnumPrinterDataEx_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss__spoolss_EnumPrinterDataEx_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element__spoolss_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss__spoolss_EnumPrinterDataEx_count, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR _spoolss_EnumPrinterDataEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
+/* IDL: [out] DATA_BLOB info, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *count */
+/* IDL: ); */
+
+static int
+spoolss_dissect__spoolss_EnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDataEx";
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect__spoolss_EnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="_spoolss_EnumPrinterDataEx";
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element__spoolss_EnumPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss___spoolss_EnumPrinterDataEx_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element___spoolss_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterEnumValues(tvb,offset,pinfo,tree,drep,hf_spoolss___spoolss_EnumPrinterDataEx_info,0);
+
+       return offset;
+}
+
+/* IDL: void __spoolss_EnumPrinterDataEx( */
+/* IDL: [in] uint32 count, */
+/* IDL: [out] spoolss_PrinterEnumValues info[count] */
+/* IDL: ); */
+
+static int
+spoolss_dissect___spoolss_EnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDataEx";
+       offset = spoolss_dissect_element___spoolss_EnumPrinterDataEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       return offset;
+}
+
+static int
+spoolss_dissect___spoolss_EnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="__spoolss_EnumPrinterDataEx";
+       offset = spoolss_dissect_element___spoolss_EnumPrinterDataEx_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumPrinterDataEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterDataEx_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_spoolss_spoolss_EnumPrinterDataEx_count);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_info_, NDR_POINTER_REF, "Pointer to Info (spoolss_PrinterEnumValues)",hf_spoolss_spoolss_EnumPrinterDataEx_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_info__, NDR_POINTER_UNIQUE, "Pointer to Info (spoolss_PrinterEnumValues)",hf_spoolss_spoolss_EnumPrinterDataEx_info);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_info___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_info___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_PrinterEnumValues(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_EnumPrinterDataEx_info,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterDataEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinterDataEx_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterDataEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterDataEx_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrinterDataEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *count, */
+/* IDL: [out] [ref] [size_is(,*count)] spoolss_PrinterEnumValues **info, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrinterDataEx";
+       offset = spoolss_dissect_element_EnumPrinterDataEx_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterDataEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterDataEx_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrinterDataEx";
+       offset = spoolss_dissect_element_EnumPrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterDataEx_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_EnumPrinterKey_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_EnumPrinterKey_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey__ndr_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey__ndr_size_, NDR_POINTER_REF, "Pointer to  Ndr Size (uint32)",hf_spoolss_spoolss_EnumPrinterKey__ndr_size);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey__ndr_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey__ndr_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_key_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey_key_buffer_, NDR_POINTER_REF, "Pointer to Key Buffer (spoolss_KeyNames)",hf_spoolss_spoolss_EnumPrinterKey_key_buffer);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_key_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       dcerpc_info *di = (dcerpc_info*)pinfo->private_data;
+       guint0 size;
+       int conformant = di->conformant_run;
+       tvbuff_t *subtvb;
+
+       if (!conformant) {
+               guint32 saved_flags = di->call_data->flags;
+               offset = dissect_ndr_uint0(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_key_buffer_, &size);
+               di->call_data->flags &= ~DCERPC_IS_NDR64;
+               subtvb = tvb_new_subset(tvb, offset, size, -1);
+               spoolss_dissect_element_EnumPrinterKey_key_buffer__(subtvb, 0, pinfo, tree, drep);
+               offset += size;
+               di->call_data->flags = saved_flags;
+       }
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_key_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_KeyNames(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_key_buffer, *0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_offered, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_EnumPrinterKey_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_EnumPrinterKey_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_EnumPrinterKey_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_EnumPrinterKey_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPrinterKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
+/* IDL: [out] [ref] uint32 *_ndr_size, */
+/* IDL: [out] [subcontext_size(*_ndr_size*2)] [ref] [subcontext(0)] [switch_is(*_ndr_size)] spoolss_KeyNames *key_buffer, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPrinterKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPrinterKey";
+       offset = spoolss_dissect_element_EnumPrinterKey__ndr_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterKey_key_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_EnumPrinterKey_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPrinterKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPrinterKey";
+       offset = spoolss_dissect_element_EnumPrinterKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterKey_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_EnumPrinterKey_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDataEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterDataEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterDataEx_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDataEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterDataEx_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDataEx_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDataEx_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDataEx_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDataEx_value_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterDataEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*], */
+/* IDL: [in] [charset(UTF16)] uint16 value_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterDataEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterDataEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterDataEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterDataEx";
+       offset = spoolss_dissect_element_DeletePrinterDataEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDataEx_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDataEx_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_DeletePrinterKey_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterKey_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterKey_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterKey_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 key_name[*] */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterKey";
+       offset = spoolss_dissect_element_DeletePrinterKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterKey_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_53( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_53_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="53";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_53_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="53";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriverEx_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePrinterDriverEx_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePrinterDriverEx_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriverEx_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriverEx_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriverEx_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriverEx_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriverEx_driver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePrinterDriverEx_driver, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriverEx_delete_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_DeleteDriverFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterDriverEx_delete_flags, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePrinterDriverEx_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_DeletePrinterDriverEx_version, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePrinterDriverEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [in] [charset(UTF16)] uint16 architecture[*], */
+/* IDL: [in] [charset(UTF16)] uint16 driver[*], */
+/* IDL: [in] spoolss_DeleteDriverFlags delete_flags, */
+/* IDL: [in] uint32 version */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePrinterDriverEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePrinterDriverEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePrinterDriverEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePrinterDriverEx";
+       offset = spoolss_dissect_element_DeletePrinterDriverEx_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDriverEx_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDriverEx_driver(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDriverEx_delete_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePrinterDriverEx_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_printername_, NDR_POINTER_REF, "Pointer to Printername (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_printserver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_printserver_, NDR_POINTER_REF, "Pointer to Printserver (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_printserver);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_printserver_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_printserver, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_provider(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPerMachineConnection_provider_, NDR_POINTER_REF, "Pointer to Provider (uint16)",hf_spoolss_spoolss_AddPerMachineConnection_provider);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPerMachineConnection_provider_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPerMachineConnection_provider, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPerMachineConnection( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *printername, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *printserver, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *provider */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPerMachineConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPerMachineConnection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPerMachineConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPerMachineConnection";
+       offset = spoolss_dissect_element_AddPerMachineConnection_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPerMachineConnection_printername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPerMachineConnection_printserver(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPerMachineConnection_provider(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePerMachineConnection_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePerMachineConnection_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_spoolss_spoolss_DeletePerMachineConnection_server);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePerMachineConnection_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePerMachineConnection_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePerMachineConnection_printername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_DeletePerMachineConnection_printername_, NDR_POINTER_REF, "Pointer to Printername (uint16)",hf_spoolss_spoolss_DeletePerMachineConnection_printername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_DeletePerMachineConnection_printername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_DeletePerMachineConnection_printername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_DeletePerMachineConnection( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *printername */
+/* IDL: ); */
+
+static int
+spoolss_dissect_DeletePerMachineConnection_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeletePerMachineConnection";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_DeletePerMachineConnection_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeletePerMachineConnection";
+       offset = spoolss_dissect_element_DeletePerMachineConnection_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_DeletePerMachineConnection_printername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_EnumPerMachineConnections( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_EnumPerMachineConnections_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumPerMachineConnections";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_EnumPerMachineConnections_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumPerMachineConnections";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_spoolss_spoolss_XcvData_handle);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_handle, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_function_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_XcvData_function_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_in_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_in_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData__in_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData__in_data_length, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_out_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_out_data_, NDR_POINTER_REF, "Pointer to Out Data (uint8)",hf_spoolss_spoolss_XcvData_out_data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_out_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_out_data__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_out_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_out_data, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_out_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_out_data_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_spoolss_spoolss_XcvData_needed);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_needed, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_status_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_XcvData_status_code_, NDR_POINTER_REF, "Pointer to Status Code (uint32)",hf_spoolss_spoolss_XcvData_status_code);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_XcvData_status_code_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_XcvData_status_code, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_XcvData( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [charset(UTF16)] uint16 function_name[*], */
+/* IDL: [in] DATA_BLOB in_data, */
+/* IDL: [in] [value(r->in.in_data.length)] uint32 _in_data_length, */
+/* IDL: [out] [ref] [size_is(out_data_size)] uint8 *out_data, */
+/* IDL: [in] uint32 out_data_size, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [in] [ref] uint32 *status_code */
+/* IDL: ); */
+
+static int
+spoolss_dissect_XcvData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="XcvData";
+       offset = spoolss_dissect_element_XcvData_out_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_XcvData_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_XcvData_status_code(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_XcvData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="XcvData";
+       offset = spoolss_dissect_element_XcvData_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_XcvData_function_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_XcvData_in_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_XcvData__in_data_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_XcvData_out_data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_XcvData_status_code(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriverEx_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriverEx_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_AddPrinterDriverEx_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriverEx_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_AddPrinterDriverEx_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriverEx_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_AddPrinterDriverEx_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (spoolss_AddDriverInfoCtr)",hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriverEx_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_AddDriverInfoCtr(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_AddPrinterDriverEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_bitmap_AddPrinterDriverExFlags(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_AddPrinterDriverEx_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_AddPrinterDriverEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [in] [ref] spoolss_AddDriverInfoCtr *info_ctr, */
+/* IDL: [in] spoolss_AddPrinterDriverExFlags flags */
+/* IDL: ); */
+
+static int
+spoolss_dissect_AddPrinterDriverEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AddPrinterDriverEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_AddPrinterDriverEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AddPrinterDriverEx";
+       offset = spoolss_dissect_element_AddPrinterDriverEx_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterDriverEx_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_AddPrinterDriverEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_5a( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_5a_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="5a";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_5a_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="5a";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_5b( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_5b_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="5b";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_5b_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="5b";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_5c( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_5c_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="5c";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_5c_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="5c";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_5d( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_5d_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="5d";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_5d_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="5d";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_5e( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_5e_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="5e";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_5e_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="5e";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_5f( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_5f_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="5f";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_5f_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="5f";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_60( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_60_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="60";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_60_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="60";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcSendRecvBidiData_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_pAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_pAction_, NDR_POINTER_UNIQUE, "Pointer to Paction (uint16)",hf_spoolss_spoolss_RpcSendRecvBidiData_pAction);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_pAction_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RpcSendRecvBidiData_pAction, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_pReqData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_pReqData_, NDR_POINTER_REF, "Pointer to Preqdata (RPC_BIDI_REQUEST_CONTAINER)",hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_pReqData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BIDI_REQUEST_CONTAINER(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData,0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_ppRespData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_ppRespData_, NDR_POINTER_REF, "Pointer to Pprespdata (RPC_BIDI_RESPONSE_CONTAINER)",hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_ppRespData_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSendRecvBidiData_ppRespData__, NDR_POINTER_UNIQUE, "Pointer to Pprespdata (RPC_BIDI_RESPONSE_CONTAINER)",hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSendRecvBidiData_ppRespData__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_BIDI_RESPONSE_CONTAINER(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RpcSendRecvBidiData( */
+/* IDL: [in] policy_handle hPrinter, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *pAction, */
+/* IDL: [ref] [in] RPC_BIDI_REQUEST_CONTAINER *pReqData, */
+/* IDL: [out] [ref] RPC_BIDI_RESPONSE_CONTAINER **ppRespData */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RpcSendRecvBidiData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RpcSendRecvBidiData";
+       offset = spoolss_dissect_element_RpcSendRecvBidiData_ppRespData(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RpcSendRecvBidiData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RpcSendRecvBidiData";
+       offset = spoolss_dissect_element_RpcSendRecvBidiData_hPrinter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcSendRecvBidiData_pAction(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcSendRecvBidiData_pReqData(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_62( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_62_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="62";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_62_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="62";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_63( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_63_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="63";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_63_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="63";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_64( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_64_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="64";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_64_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="64";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_65( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_65_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="65";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_65_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="65";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_GetCorePrinterDrivers_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetCorePrinterDrivers_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_architecture_, NDR_POINTER_REF, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetCorePrinterDrivers_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetCorePrinterDrivers_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_driver_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies_, NDR_POINTER_REF, "Pointer to Core Driver Dependencies (uint16)",hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_printer_driver_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_driver_count, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers_, NDR_POINTER_REF, "Pointer to Core Printer Drivers (spoolss_CorePrinterDriver)",hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_CorePrinterDriver(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetCorePrinterDrivers( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *architecture, */
+/* IDL: [in] uint32 core_driver_size, */
+/* IDL: [ref] [in] [charset(UTF16)] [size_is(core_driver_size)] uint16 *core_driver_dependencies, */
+/* IDL: [in] uint32 core_printer_driver_count, */
+/* IDL: [out] [ref] [size_is(core_printer_driver_count)] spoolss_CorePrinterDriver *core_printer_drivers */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetCorePrinterDrivers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetCorePrinterDrivers";
+       offset = spoolss_dissect_element_GetCorePrinterDrivers_core_printer_drivers(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetCorePrinterDrivers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetCorePrinterDrivers";
+       offset = spoolss_dissect_element_GetCorePrinterDrivers_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetCorePrinterDrivers_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetCorePrinterDrivers_core_driver_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetCorePrinterDrivers_core_driver_dependencies(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetCorePrinterDrivers_core_printer_driver_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_67( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_67_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="67";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_67_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="67";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_servername(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_servername_, NDR_POINTER_UNIQUE, "Pointer to Servername (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_servername_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_architecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_architecture_, NDR_POINTER_REF, "Pointer to Architecture (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_architecture_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_language(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_language_, NDR_POINTER_UNIQUE, "Pointer to Language (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_language);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_language_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_language, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_package_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_package_id_, NDR_POINTER_REF, "Pointer to Package Id (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_package_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_, NDR_POINTER_UNIQUE, "Pointer to Driver Package Cab (uint16)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab__);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab_size, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_required(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_GetPrinterDriverPackagePath_required_, NDR_POINTER_REF, "Pointer to Required (uint32)",hf_spoolss_spoolss_GetPrinterDriverPackagePath_required);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_GetPrinterDriverPackagePath_required_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_GetPrinterDriverPackagePath_required, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_GetPrinterDriverPackagePath( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *servername, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *architecture, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *language, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *package_id, */
+/* IDL: [out] [unique(1)] [in] [charset(UTF16)] [size_is(driver_package_cab_size)] uint16 *driver_package_cab, */
+/* IDL: [in] uint32 driver_package_cab_size, */
+/* IDL: [out] [ref] uint32 *required */
+/* IDL: ); */
+
+static int
+spoolss_dissect_GetPrinterDriverPackagePath_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPrinterDriverPackagePath";
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_required(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_GetPrinterDriverPackagePath_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPrinterDriverPackagePath";
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_servername(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_architecture(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_language(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_package_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_GetPrinterDriverPackagePath_driver_package_cab_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR spoolss_69( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_69_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="69";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_69_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="69";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_6a( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_6a_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="6a";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_6a_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="6a";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_6b( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_6b_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="6b";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_6b_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="6b";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_6c( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_6c_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="6c";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_6c_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="6c";
+       return offset;
+}
+
+/* IDL: WERROR spoolss_6d( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+spoolss_dissect_6d_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="6d";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_6d_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="6d";
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_JobId, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName_, NDR_POINTER_REF, "Pointer to Pszname (uint16)",hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue_, NDR_POINTER_REF, "Pointer to Pvalue (RPC_PrintPropertyValue)",hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_PrintPropertyValue(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RpcGetJobNamedPropertyValue( */
+/* IDL: [in] [ref] policy_handle *hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *pszName, */
+/* IDL: [out] [ref] RPC_PrintPropertyValue *pValue */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RpcGetJobNamedPropertyValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RpcGetJobNamedPropertyValue";
+       offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_pValue(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RpcGetJobNamedPropertyValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RpcGetJobNamedPropertyValue";
+       offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_hPrinter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_JobId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcGetJobNamedPropertyValue_pszName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSetJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcSetJobNamedProperty_JobId, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSetJobNamedProperty_pProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcSetJobNamedProperty_pProperty_, NDR_POINTER_REF, "Pointer to Pproperty (RPC_PrintNamedProperty)",hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcSetJobNamedProperty_pProperty_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_PrintNamedProperty(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RpcSetJobNamedProperty( */
+/* IDL: [in] [ref] policy_handle *hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [in] [ref] RPC_PrintNamedProperty *pProperty */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RpcSetJobNamedProperty_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RpcSetJobNamedProperty";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RpcSetJobNamedProperty_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RpcSetJobNamedProperty";
+       offset = spoolss_dissect_element_RpcSetJobNamedProperty_hPrinter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcSetJobNamedProperty_JobId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcSetJobNamedProperty_pProperty(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcDeleteJobNamedProperty_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcDeleteJobNamedProperty_JobId, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName_, NDR_POINTER_REF, "Pointer to Pszname (uint16)",hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RpcDeleteJobNamedProperty( */
+/* IDL: [in] [ref] policy_handle *hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *pszName */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RpcDeleteJobNamedProperty_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RpcDeleteJobNamedProperty";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RpcDeleteJobNamedProperty_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RpcDeleteJobNamedProperty";
+       offset = spoolss_dissect_element_RpcDeleteJobNamedProperty_hPrinter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcDeleteJobNamedProperty_JobId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcDeleteJobNamedProperty_pszName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter_, NDR_POINTER_REF, "Pointer to Hprinter (policy_handle)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_JobId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcEnumJobNamedProperties_JobId, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties_, NDR_POINTER_REF, "Pointer to Pcproperties (uint32)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties, 0);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties_, NDR_POINTER_REF, "Pointer to Ppproperties (RPC_PrintNamedProperty)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties__, NDR_POINTER_UNIQUE, "Pointer to Ppproperties (RPC_PrintNamedProperty)",hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties___);
+
+       return offset;
+}
+
+static int
+spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = spoolss_dissect_struct_RPC_PrintNamedProperty(tvb,offset,pinfo,tree,drep,hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties,0);
+
+       return offset;
+}
+
+/* IDL: WERROR spoolss_RpcEnumJobNamedProperties( */
+/* IDL: [in] [ref] policy_handle *hPrinter, */
+/* IDL: [in] uint32 JobId, */
+/* IDL: [out] [ref] uint32 *pcProperties, */
+/* IDL: [out] [ref] [size_is(,*pcProperties)] RPC_PrintNamedProperty **ppProperties */
+/* IDL: ); */
+
+static int
+spoolss_dissect_RpcEnumJobNamedProperties_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RpcEnumJobNamedProperties";
+       offset = spoolss_dissect_element_RpcEnumJobNamedProperties_pcProperties(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = spoolss_dissect_element_RpcEnumJobNamedProperties_ppProperties(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_spoolss_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+spoolss_dissect_RpcEnumJobNamedProperties_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RpcEnumJobNamedProperties";
+       offset = spoolss_dissect_element_RpcEnumJobNamedProperties_hPrinter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = spoolss_dissect_element_RpcEnumJobNamedProperties_JobId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector spoolss_dissectors[] = {
+       { , "_spoolss_EnumPrinters",
+          spoolss_dissect__spoolss_EnumPrinters_request, spoolss_dissect__spoolss_EnumPrinters_response},
+       { , "__spoolss_EnumPrinters",
+          spoolss_dissect___spoolss_EnumPrinters_request, spoolss_dissect___spoolss_EnumPrinters_response},
+       { 0, "EnumPrinters",
+          spoolss_dissect_EnumPrinters_request, spoolss_dissect_EnumPrinters_response},
+       { 1, "OpenPrinter",
+          spoolss_dissect_OpenPrinter_request, spoolss_dissect_OpenPrinter_response},
+       { 2, "SetJob",
+          spoolss_dissect_SetJob_request, spoolss_dissect_SetJob_response},
+       { 3, "GetJob",
+          spoolss_dissect_GetJob_request, spoolss_dissect_GetJob_response},
+       { , "_spoolss_EnumJobs",
+          spoolss_dissect__spoolss_EnumJobs_request, spoolss_dissect__spoolss_EnumJobs_response},
+       { , "__spoolss_EnumJobs",
+          spoolss_dissect___spoolss_EnumJobs_request, spoolss_dissect___spoolss_EnumJobs_response},
+       { 4, "EnumJobs",
+          spoolss_dissect_EnumJobs_request, spoolss_dissect_EnumJobs_response},
+       { 5, "AddPrinter",
+          spoolss_dissect_AddPrinter_request, spoolss_dissect_AddPrinter_response},
+       { 6, "DeletePrinter",
+          spoolss_dissect_DeletePrinter_request, spoolss_dissect_DeletePrinter_response},
+       { 7, "SetPrinter",
+          spoolss_dissect_SetPrinter_request, spoolss_dissect_SetPrinter_response},
+       { 8, "GetPrinter",
+          spoolss_dissect_GetPrinter_request, spoolss_dissect_GetPrinter_response},
+       { 9, "AddPrinterDriver",
+          spoolss_dissect_AddPrinterDriver_request, spoolss_dissect_AddPrinterDriver_response},
+       { , "_spoolss_EnumPrinterDrivers",
+          spoolss_dissect__spoolss_EnumPrinterDrivers_request, spoolss_dissect__spoolss_EnumPrinterDrivers_response},
+       { , "__spoolss_EnumPrinterDrivers",
+          spoolss_dissect___spoolss_EnumPrinterDrivers_request, spoolss_dissect___spoolss_EnumPrinterDrivers_response},
+       { 10, "EnumPrinterDrivers",
+          spoolss_dissect_EnumPrinterDrivers_request, spoolss_dissect_EnumPrinterDrivers_response},
+       { 11, "GetPrinterDriver",
+          spoolss_dissect_GetPrinterDriver_request, spoolss_dissect_GetPrinterDriver_response},
+       { 12, "GetPrinterDriverDirectory",
+          spoolss_dissect_GetPrinterDriverDirectory_request, spoolss_dissect_GetPrinterDriverDirectory_response},
+       { 13, "DeletePrinterDriver",
+          spoolss_dissect_DeletePrinterDriver_request, spoolss_dissect_DeletePrinterDriver_response},
+       { 14, "AddPrintProcessor",
+          spoolss_dissect_AddPrintProcessor_request, spoolss_dissect_AddPrintProcessor_response},
+       { , "_spoolss_EnumPrintProcessors",
+          spoolss_dissect__spoolss_EnumPrintProcessors_request, spoolss_dissect__spoolss_EnumPrintProcessors_response},
+       { , "__spoolss_EnumPrintProcessors",
+          spoolss_dissect___spoolss_EnumPrintProcessors_request, spoolss_dissect___spoolss_EnumPrintProcessors_response},
+       { 15, "EnumPrintProcessors",
+          spoolss_dissect_EnumPrintProcessors_request, spoolss_dissect_EnumPrintProcessors_response},
+       { 16, "GetPrintProcessorDirectory",
+          spoolss_dissect_GetPrintProcessorDirectory_request, spoolss_dissect_GetPrintProcessorDirectory_response},
+       { 17, "StartDocPrinter",
+          spoolss_dissect_StartDocPrinter_request, spoolss_dissect_StartDocPrinter_response},
+       { 18, "StartPagePrinter",
+          spoolss_dissect_StartPagePrinter_request, spoolss_dissect_StartPagePrinter_response},
+       { 19, "WritePrinter",
+          spoolss_dissect_WritePrinter_request, spoolss_dissect_WritePrinter_response},
+       { 20, "EndPagePrinter",
+          spoolss_dissect_EndPagePrinter_request, spoolss_dissect_EndPagePrinter_response},
+       { 21, "AbortPrinter",
+          spoolss_dissect_AbortPrinter_request, spoolss_dissect_AbortPrinter_response},
+       { 22, "ReadPrinter",
+          spoolss_dissect_ReadPrinter_request, spoolss_dissect_ReadPrinter_response},
+       { 23, "EndDocPrinter",
+          spoolss_dissect_EndDocPrinter_request, spoolss_dissect_EndDocPrinter_response},
+       { 24, "AddJob",
+          spoolss_dissect_AddJob_request, spoolss_dissect_AddJob_response},
+       { 25, "ScheduleJob",
+          spoolss_dissect_ScheduleJob_request, spoolss_dissect_ScheduleJob_response},
+       { 26, "GetPrinterData",
+          spoolss_dissect_GetPrinterData_request, spoolss_dissect_GetPrinterData_response},
+       { 27, "SetPrinterData",
+          spoolss_dissect_SetPrinterData_request, spoolss_dissect_SetPrinterData_response},
+       { 28, "WaitForPrinterChange",
+          spoolss_dissect_WaitForPrinterChange_request, spoolss_dissect_WaitForPrinterChange_response},
+       { 29, "ClosePrinter",
+          spoolss_dissect_ClosePrinter_request, spoolss_dissect_ClosePrinter_response},
+       { 30, "AddForm",
+          spoolss_dissect_AddForm_request, spoolss_dissect_AddForm_response},
+       { 31, "DeleteForm",
+          spoolss_dissect_DeleteForm_request, spoolss_dissect_DeleteForm_response},
+       { 32, "GetForm",
+          spoolss_dissect_GetForm_request, spoolss_dissect_GetForm_response},
+       { 33, "SetForm",
+          spoolss_dissect_SetForm_request, spoolss_dissect_SetForm_response},
+       { , "_spoolss_EnumForms",
+          spoolss_dissect__spoolss_EnumForms_request, spoolss_dissect__spoolss_EnumForms_response},
+       { , "__spoolss_EnumForms",
+          spoolss_dissect___spoolss_EnumForms_request, spoolss_dissect___spoolss_EnumForms_response},
+       { 34, "EnumForms",
+          spoolss_dissect_EnumForms_request, spoolss_dissect_EnumForms_response},
+       { , "_spoolss_EnumPorts",
+          spoolss_dissect__spoolss_EnumPorts_request, spoolss_dissect__spoolss_EnumPorts_response},
+       { , "__spoolss_EnumPorts",
+          spoolss_dissect___spoolss_EnumPorts_request, spoolss_dissect___spoolss_EnumPorts_response},
+       { 35, "EnumPorts",
+          spoolss_dissect_EnumPorts_request, spoolss_dissect_EnumPorts_response},
+       { , "_spoolss_EnumMonitors",
+          spoolss_dissect__spoolss_EnumMonitors_request, spoolss_dissect__spoolss_EnumMonitors_response},
+       { , "__spoolss_EnumMonitors",
+          spoolss_dissect___spoolss_EnumMonitors_request, spoolss_dissect___spoolss_EnumMonitors_response},
+       { 36, "EnumMonitors",
+          spoolss_dissect_EnumMonitors_request, spoolss_dissect_EnumMonitors_response},
+       { 37, "AddPort",
+          spoolss_dissect_AddPort_request, spoolss_dissect_AddPort_response},
+       { 38, "ConfigurePort",
+          spoolss_dissect_ConfigurePort_request, spoolss_dissect_ConfigurePort_response},
+       { 39, "DeletePort",
+          spoolss_dissect_DeletePort_request, spoolss_dissect_DeletePort_response},
+       { 40, "CreatePrinterIC",
+          spoolss_dissect_CreatePrinterIC_request, spoolss_dissect_CreatePrinterIC_response},
+       { 41, "PlayGDIScriptOnPrinterIC",
+          spoolss_dissect_PlayGDIScriptOnPrinterIC_request, spoolss_dissect_PlayGDIScriptOnPrinterIC_response},
+       { 42, "DeletePrinterIC",
+          spoolss_dissect_DeletePrinterIC_request, spoolss_dissect_DeletePrinterIC_response},
+       { 43, "AddPrinterConnection",
+          spoolss_dissect_AddPrinterConnection_request, spoolss_dissect_AddPrinterConnection_response},
+       { 44, "DeletePrinterConnection",
+          spoolss_dissect_DeletePrinterConnection_request, spoolss_dissect_DeletePrinterConnection_response},
+       { 45, "PrinterMessageBox",
+          spoolss_dissect_PrinterMessageBox_request, spoolss_dissect_PrinterMessageBox_response},
+       { 46, "AddMonitor",
+          spoolss_dissect_AddMonitor_request, spoolss_dissect_AddMonitor_response},
+       { 47, "DeleteMonitor",
+          spoolss_dissect_DeleteMonitor_request, spoolss_dissect_DeleteMonitor_response},
+       { 48, "DeletePrintProcessor",
+          spoolss_dissect_DeletePrintProcessor_request, spoolss_dissect_DeletePrintProcessor_response},
+       { 49, "AddPrintProvidor",
+          spoolss_dissect_AddPrintProvidor_request, spoolss_dissect_AddPrintProvidor_response},
+       { 50, "DeletePrintProvidor",
+          spoolss_dissect_DeletePrintProvidor_request, spoolss_dissect_DeletePrintProvidor_response},
+       { , "_spoolss_EnumPrintProcDataTypes",
+          spoolss_dissect__spoolss_EnumPrintProcDataTypes_request, spoolss_dissect__spoolss_EnumPrintProcDataTypes_response},
+       { , "__spoolss_EnumPrintProcDataTypes",
+          spoolss_dissect___spoolss_EnumPrintProcDataTypes_request, spoolss_dissect___spoolss_EnumPrintProcDataTypes_response},
+       { 51, "EnumPrintProcDataTypes",
+          spoolss_dissect_EnumPrintProcDataTypes_request, spoolss_dissect_EnumPrintProcDataTypes_response},
+       { 52, "ResetPrinter",
+          spoolss_dissect_ResetPrinter_request, spoolss_dissect_ResetPrinter_response},
+       { 53, "GetPrinterDriver2",
+          spoolss_dissect_GetPrinterDriver2_request, spoolss_dissect_GetPrinterDriver2_response},
+       { 54, "FindFirstPrinterChangeNotification",
+          spoolss_dissect_FindFirstPrinterChangeNotification_request, spoolss_dissect_FindFirstPrinterChangeNotification_response},
+       { 55, "FindNextPrinterChangeNotification",
+          spoolss_dissect_FindNextPrinterChangeNotification_request, spoolss_dissect_FindNextPrinterChangeNotification_response},
+       { 56, "FindClosePrinterNotify",
+          spoolss_dissect_FindClosePrinterNotify_request, spoolss_dissect_FindClosePrinterNotify_response},
+       { 57, "RouterFindFirstPrinterChangeNotificationOld",
+          spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_request, spoolss_dissect_RouterFindFirstPrinterChangeNotificationOld_response},
+       { 58, "ReplyOpenPrinter",
+          spoolss_dissect_ReplyOpenPrinter_request, spoolss_dissect_ReplyOpenPrinter_response},
+       { 59, "RouterReplyPrinter",
+          spoolss_dissect_RouterReplyPrinter_request, spoolss_dissect_RouterReplyPrinter_response},
+       { 60, "ReplyClosePrinter",
+          spoolss_dissect_ReplyClosePrinter_request, spoolss_dissect_ReplyClosePrinter_response},
+       { 61, "AddPortEx",
+          spoolss_dissect_AddPortEx_request, spoolss_dissect_AddPortEx_response},
+       { 62, "RouterFindFirstPrinterChangeNotification",
+          spoolss_dissect_RouterFindFirstPrinterChangeNotification_request, spoolss_dissect_RouterFindFirstPrinterChangeNotification_response},
+       { 63, "SpoolerInit",
+          spoolss_dissect_SpoolerInit_request, spoolss_dissect_SpoolerInit_response},
+       { 64, "ResetPrinterEx",
+          spoolss_dissect_ResetPrinterEx_request, spoolss_dissect_ResetPrinterEx_response},
+       { 65, "RemoteFindFirstPrinterChangeNotifyEx",
+          spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_request, spoolss_dissect_RemoteFindFirstPrinterChangeNotifyEx_response},
+       { 66, "RouterReplyPrinterEx",
+          spoolss_dissect_RouterReplyPrinterEx_request, spoolss_dissect_RouterReplyPrinterEx_response},
+       { 67, "RouterRefreshPrinterChangeNotify",
+          spoolss_dissect_RouterRefreshPrinterChangeNotify_request, spoolss_dissect_RouterRefreshPrinterChangeNotify_response},
+       { 68, "44",
+          spoolss_dissect_44_request, spoolss_dissect_44_response},
+       { 69, "OpenPrinterEx",
+          spoolss_dissect_OpenPrinterEx_request, spoolss_dissect_OpenPrinterEx_response},
+       { 70, "AddPrinterEx",
+          spoolss_dissect_AddPrinterEx_request, spoolss_dissect_AddPrinterEx_response},
+       { 71, "SetPort",
+          spoolss_dissect_SetPort_request, spoolss_dissect_SetPort_response},
+       { 72, "EnumPrinterData",
+          spoolss_dissect_EnumPrinterData_request, spoolss_dissect_EnumPrinterData_response},
+       { 73, "DeletePrinterData",
+          spoolss_dissect_DeletePrinterData_request, spoolss_dissect_DeletePrinterData_response},
+       { 74, "4a",
+          spoolss_dissect_4a_request, spoolss_dissect_4a_response},
+       { 75, "4b",
+          spoolss_dissect_4b_request, spoolss_dissect_4b_response},
+       { 76, "4c",
+          spoolss_dissect_4c_request, spoolss_dissect_4c_response},
+       { 77, "SetPrinterDataEx",
+          spoolss_dissect_SetPrinterDataEx_request, spoolss_dissect_SetPrinterDataEx_response},
+       { 78, "GetPrinterDataEx",
+          spoolss_dissect_GetPrinterDataEx_request, spoolss_dissect_GetPrinterDataEx_response},
+       { , "_spoolss_EnumPrinterDataEx",
+          spoolss_dissect__spoolss_EnumPrinterDataEx_request, spoolss_dissect__spoolss_EnumPrinterDataEx_response},
+       { , "__spoolss_EnumPrinterDataEx",
+          spoolss_dissect___spoolss_EnumPrinterDataEx_request, spoolss_dissect___spoolss_EnumPrinterDataEx_response},
+       { 79, "EnumPrinterDataEx",
+          spoolss_dissect_EnumPrinterDataEx_request, spoolss_dissect_EnumPrinterDataEx_response},
+       { 80, "EnumPrinterKey",
+          spoolss_dissect_EnumPrinterKey_request, spoolss_dissect_EnumPrinterKey_response},
+       { 81, "DeletePrinterDataEx",
+          spoolss_dissect_DeletePrinterDataEx_request, spoolss_dissect_DeletePrinterDataEx_response},
+       { 82, "DeletePrinterKey",
+          spoolss_dissect_DeletePrinterKey_request, spoolss_dissect_DeletePrinterKey_response},
+       { 83, "53",
+          spoolss_dissect_53_request, spoolss_dissect_53_response},
+       { 84, "DeletePrinterDriverEx",
+          spoolss_dissect_DeletePrinterDriverEx_request, spoolss_dissect_DeletePrinterDriverEx_response},
+       { 85, "AddPerMachineConnection",
+          spoolss_dissect_AddPerMachineConnection_request, spoolss_dissect_AddPerMachineConnection_response},
+       { 86, "DeletePerMachineConnection",
+          spoolss_dissect_DeletePerMachineConnection_request, spoolss_dissect_DeletePerMachineConnection_response},
+       { 87, "EnumPerMachineConnections",
+          spoolss_dissect_EnumPerMachineConnections_request, spoolss_dissect_EnumPerMachineConnections_response},
+       { 88, "XcvData",
+          spoolss_dissect_XcvData_request, spoolss_dissect_XcvData_response},
+       { 89, "AddPrinterDriverEx",
+          spoolss_dissect_AddPrinterDriverEx_request, spoolss_dissect_AddPrinterDriverEx_response},
+       { 90, "5a",
+          spoolss_dissect_5a_request, spoolss_dissect_5a_response},
+       { 91, "5b",
+          spoolss_dissect_5b_request, spoolss_dissect_5b_response},
+       { 92, "5c",
+          spoolss_dissect_5c_request, spoolss_dissect_5c_response},
+       { 93, "5d",
+          spoolss_dissect_5d_request, spoolss_dissect_5d_response},
+       { 94, "5e",
+          spoolss_dissect_5e_request, spoolss_dissect_5e_response},
+       { 95, "5f",
+          spoolss_dissect_5f_request, spoolss_dissect_5f_response},
+       { 96, "60",
+          spoolss_dissect_60_request, spoolss_dissect_60_response},
+       { 97, "RpcSendRecvBidiData",
+          spoolss_dissect_RpcSendRecvBidiData_request, spoolss_dissect_RpcSendRecvBidiData_response},
+       { 98, "62",
+          spoolss_dissect_62_request, spoolss_dissect_62_response},
+       { 99, "63",
+          spoolss_dissect_63_request, spoolss_dissect_63_response},
+       { 100, "64",
+          spoolss_dissect_64_request, spoolss_dissect_64_response},
+       { 101, "65",
+          spoolss_dissect_65_request, spoolss_dissect_65_response},
+       { 102, "GetCorePrinterDrivers",
+          spoolss_dissect_GetCorePrinterDrivers_request, spoolss_dissect_GetCorePrinterDrivers_response},
+       { 103, "67",
+          spoolss_dissect_67_request, spoolss_dissect_67_response},
+       { 104, "GetPrinterDriverPackagePath",
+          spoolss_dissect_GetPrinterDriverPackagePath_request, spoolss_dissect_GetPrinterDriverPackagePath_response},
+       { 105, "69",
+          spoolss_dissect_69_request, spoolss_dissect_69_response},
+       { 106, "6a",
+          spoolss_dissect_6a_request, spoolss_dissect_6a_response},
+       { 107, "6b",
+          spoolss_dissect_6b_request, spoolss_dissect_6b_response},
+       { 108, "6c",
+          spoolss_dissect_6c_request, spoolss_dissect_6c_response},
+       { 109, "6d",
+          spoolss_dissect_6d_request, spoolss_dissect_6d_response},
+       { 110, "RpcGetJobNamedPropertyValue",
+          spoolss_dissect_RpcGetJobNamedPropertyValue_request, spoolss_dissect_RpcGetJobNamedPropertyValue_response},
+       { 111, "RpcSetJobNamedProperty",
+          spoolss_dissect_RpcSetJobNamedProperty_request, spoolss_dissect_RpcSetJobNamedProperty_response},
+       { 112, "RpcDeleteJobNamedProperty",
+          spoolss_dissect_RpcDeleteJobNamedProperty_request, spoolss_dissect_RpcDeleteJobNamedProperty_response},
+       { 113, "RpcEnumJobNamedProperties",
+          spoolss_dissect_RpcEnumJobNamedProperties_request, spoolss_dissect_RpcEnumJobNamedProperties_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_spoolss(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_spoolss_spoolss_PortInfo1_port_name,
+         { "Port Name", "spoolss.spoolss_PortInfo1.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_size,
+         { "Size", "spoolss.spoolss_DeviceMode.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinterEx_reply_result,
+         { "Reply Result", "spoolss.spoolss_RouterReplyPrinterEx.reply_result", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_buffer,
+         { "Buffer", "spoolss.spoolss_GetJob.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_driver_path,
+         { "Driver Path", "spoolss.spoolss_DriverInfo5.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_drivername,
+         { "Drivername", "spoolss.spoolss_SetPrinterInfo2.drivername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DocumentInfo_info1,
+         { "Info1", "spoolss.spoolss_DocumentInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_ressource_id,
+         { "Ressource Id", "spoolss.spoolss_AddFormInfo2.ressource_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_reserved,
+         { "Reserved", "spoolss.spoolss_UserLevel3.reserved", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_keyword,
+         { "Keyword", "spoolss.spoolss_FormInfo2.keyword", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE,
+         { "Printer Driver Not Shareable", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_NOT_SHAREABLE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_NOT_SHAREABLE_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_start_time,
+         { "Start Time", "spoolss.spoolss_JobInfo2.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wCoreFullSize,
+         { "Wcorefullsize", "spoolss.spoolss_PSDRVEXTRA.wCoreFullSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_text_status,
+         { "Text Status", "spoolss.spoolss_SetJobInfo1.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_handle,
+         { "Handle", "spoolss.spoolss_XcvData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_total_pages,
+         { "Total Pages", "spoolss.spoolss_SetJobInfo1.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_data_file,
+         { "Data File", "spoolss.spoolss_DriverInfo8.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo2_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_SetPortInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo_infoFF,
+         { "Infoff", "spoolss.spoolss_PortInfo.infoFF", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_submitted,
+         { "Submitted", "spoolss.spoolss_JobInfo2.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_architecture,
+         { "Architecture", "spoolss.spoolss_AddDriverInfo6.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo9_devmode_ptr,
+         { "Devmode Ptr", "spoolss.spoolss_SetPrinterInfo9.devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_server_name,
+         { "Server Name", "spoolss.spoolss_SetJobInfo4.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_count,
+         { "Count", "spoolss._spoolss_EnumForms.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_datatype,
+         { "Datatype", "spoolss.spoolss_SetPrinterInfo2.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo5_attributes,
+         { "Attributes", "spoolss.spoolss_SetPrinterInfo5.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS,
+         { "Apd Copy To All Spoolers", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_TO_ALL_SPOOLERS", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_TO_ALL_SPOOLERS_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterEnumValues_data,
+         { "Data", "spoolss.spoolss_PrinterEnumValues.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrintProcessor_server,
+         { "Server", "spoolss.spoolss_DeletePrintProcessor.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrintProcDataTypes_level,
+         { "Level", "spoolss.__spoolss_EnumPrintProcDataTypes.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE,
+         { "Apd Strict Downgrade", "spoolss.spoolss_AddPrinterDriverExFlags.APD_STRICT_DOWNGRADE", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_STRICT_DOWNGRADE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_location,
+         { "Location", "spoolss.spoolss_SetPrinterInfo2.location", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_data_needed,
+         { "Data Needed", "spoolss.spoolss_EnumPrinterData.data_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyData_integer,
+         { "Integer", "spoolss.spoolss_NotifyData.integer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo2_architecture,
+         { "Architecture", "spoolss.spoolss_AddDriverInfo2.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinter_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_SetPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_pSchema,
+         { "Pschema", "spoolss.RPC_BIDI_RESPONSE_DATA.pSchema", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_document_name,
+         { "Document Name", "spoolss.spoolss_SetJobInfo1.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo7_inf_name,
+         { "Inf Name", "spoolss.spoolss_DriverInfo7.inf_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinter_command,
+         { "Command", "spoolss.spoolss_SetPrinter.command", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PrinterControl_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS,
+         { "Printer Enum Connections", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_CONNECTIONS", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_CONNECTIONS_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info2,
+         { "Info2", "spoolss.spoolss_SetPrinterInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_JobId,
+         { "Jobid", "spoolss.spoolss_RpcGetJobNamedPropertyValue.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode___driverextra_length,
+         { "  Driverextra Length", "spoolss.spoolss_DeviceMode.__driverextra_length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_function_name,
+         { "Function Name", "spoolss.spoolss_XcvData.function_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo_info1,
+         { "Info1", "spoolss.spoolss_AddDriverInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_position,
+         { "Position", "spoolss.spoolss_SetJobInfo2.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_sepfile,
+         { "Sepfile", "spoolss.spoolss_PrinterInfo2.sepfile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_RESTART,
+         { "Job Status Restart", "spoolss.spoolss_JobStatus.JOB_STATUS_RESTART", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_RESTART_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinterDataEx_count,
+         { "Count", "spoolss.__spoolss_EnumPrinterDataEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2__devmode_ptr,
+         { " Devmode Ptr", "spoolss.spoolss_SetJobInfo2._devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_submitted,
+         { "Submitted", "spoolss.spoolss_JobInfo1.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_driver_attributes,
+         { "Driver Attributes", "spoolss.spoolss_AddDriverInfo5.driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddDriverInfo8.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_size,
+         { "Size", "spoolss.spoolss_PortData2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrintProcDataTypes_count,
+         { "Count", "spoolss.__spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT,
+         { "Printer Change Add Port", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PORT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PORT_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_StringArray_string,
+         { "String", "spoolss.spoolss_StringArray.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_aubOptions,
+         { "Auboptions", "spoolss.spoolss_PSDRVEXTRA400.aubOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPorts_level,
+         { "Level", "spoolss.__spoolss_EnumPorts.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_until_time,
+         { "Until Time", "spoolss.spoolss_JobInfo4.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED,
+         { "Printer Driver Soft Reset Required", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_SOFT_RESET_REQUIRED", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_SOFT_RESET_REQUIRED_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_config_file,
+         { "Config File", "spoolss.spoolss_AddDriverInfo8.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wFeedDirection,
+         { "Wfeeddirection", "spoolss.spoolss_PSDRVEXTRA500.wFeedDirection", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_DMPS_FeedDirection_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_averageppm,
+         { "Averageppm", "spoolss.spoolss_SetPrinterInfo2.averageppm", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_provider,
+         { "Provider", "spoolss.spoolss_AddDriverInfo6.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_text_status,
+         { "Text Status", "spoolss.spoolss_SetJobInfo2.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_level,
+         { "Level", "spoolss.spoolss_EnumPorts.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_count,
+         { "Count", "spoolss.spoolss_EnumForms.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_snmpcommunity,
+         { "Snmpcommunity", "spoolss.spoolss_PortData2.snmpcommunity", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_aOptions,
+         { "Aoptions", "spoolss.spoolss_PSDRVEXTRA.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_hardware_id,
+         { "Hardware Id", "spoolss.spoolss_DriverInfo101.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wchEPSFile,
+         { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA500.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pszName,
+         { "Pszname", "spoolss.spoolss_RpcGetJobNamedPropertyValue.pszName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPort_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddPort.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab_size,
+         { "Driver Package Cab Size", "spoolss.spoolss_GetPrinterDriverPackagePath.driver_package_cab_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_driver_path,
+         { "Driver Path", "spoolss.spoolss_AddDriverInfo3.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo2_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo2.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_printername,
+         { "Printername", "spoolss.spoolss_PrinterInfo2.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED,
+         { "Printer Notify Info Discarded", "spoolss.spoolss_PrinterNotifyFlags.PRINTER_NOTIFY_INFO_DISCARDED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_help_file,
+         { "Help File", "spoolss.spoolss_AddDriverInfo6.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_UNIDRVEXTRA500.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED,
+         { "Printer Status Manual Feed", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_MANUAL_FEED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_MANUAL_FEED_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_iLayout,
+         { "Ilayout", "spoolss.spoolss_UNIDRVEXTRA.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterIC_gdi_handle,
+         { "Gdi Handle", "spoolss.spoolss_DeletePrinterIC.gdi_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_numjobs,
+         { "Numjobs", "spoolss._spoolss_EnumJobs.numjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo3_secdesc,
+         { "Secdesc", "spoolss.spoolss_PrinterInfo3.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_version,
+         { "Version", "spoolss.spoolss_AddDriverInfo4.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_averageppm,
+         { "Averageppm", "spoolss.spoolss_PrinterInfo2.averageppm", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo1_form_name,
+         { "Form Name", "spoolss.spoolss_FormInfo1.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_level,
+         { "Level", "spoolss._spoolss_EnumJobs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_previous_names,
+         { "Previous Names", "spoolss.spoolss_AddDriverInfo6.previous_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_iTTDLFmt,
+         { "Ittdlfmt", "spoolss.spoolss_PSDRVEXTRA.iTTDLFmt", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_TTDLFmt_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caRedGreenTint,
+         { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA500.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOption_version,
+         { "Version", "spoolss.spoolss_NotifyOption.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_platform_id,
+         { "Platform Id", "spoolss.spoolss_OSVersionEx.platform_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_c_setprinter,
+         { "C Setprinter", "spoolss.spoolss_SetPrinterInfo0.c_setprinter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wVer,
+         { "Wver", "spoolss.spoolss_PSDRVEXTRA.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_info,
+         { "Info", "spoolss.spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_printer_name,
+         { "Printer Name", "spoolss.spoolss_JobInfo4.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_buffer,
+         { "Buffer", "spoolss.spoolss_EnumPorts.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortVarContainer_monitor_data,
+         { "Monitor Data", "spoolss.spoolss_PortVarContainer.monitor_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_service_pack_major,
+         { "Service Pack Major", "spoolss.spoolss_OSVersionEx.service_pack_major", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_config_file,
+         { "Config File", "spoolss.spoolss_DriverInfo5.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_panningheight,
+         { "Panningheight", "spoolss.spoolss_DeviceMode.panningheight", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_BITSPERPEL,
+         { "Devmode Bitsperpel", "spoolss.spoolss_DeviceModeFields.DEVMODE_BITSPERPEL", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_BITSPERPEL_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_major,
+         { "Major", "spoolss.spoolss_UserLevel3.major", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MajorVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7,
+         { "Printer Enum Icon7", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON7", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON7_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_buffer,
+         { "Buffer", "spoolss.spoolss_GetForm.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_devmode_,
+         { "Subcontext length", "spoolss.spoolss_PrinterInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Notify_variable_type,
+         { "Variable Type", "spoolss.spoolss_Notify.variable_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_NotifyTable_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo1_description,
+         { "Description", "spoolss.spoolss_SetPrinterInfo1.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_number_of_processors,
+         { "Number Of Processors", "spoolss.spoolss_SetPrinterInfo0.number_of_processors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_environment,
+         { "Environment", "spoolss._spoolss_EnumPrinterDrivers.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterEnumValues_type,
+         { "Type", "spoolss.spoolss_PrinterEnumValues.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_count,
+         { "Count", "spoolss._spoolss_EnumPorts.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_data_file,
+         { "Data File", "spoolss.spoolss_DriverInfo4.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN,
+         { "Printer Status Server Unknown", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_SERVER_UNKNOWN", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_SERVER_UNKNOWN_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caSize,
+         { "Casize", "spoolss.spoolss_PSDRVEXTRA351.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_count,
+         { "Count", "spoolss.spoolss_EnumPrinterDrivers.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceWhite,
+         { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA351.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caGreenGamma,
+         { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA400.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion_minor,
+         { "Minor", "spoolss.spoolss_OSVersion.minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinterDrivers_level,
+         { "Level", "spoolss.__spoolss_EnumPrinterDrivers.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_number_of_processors,
+         { "Number Of Processors", "spoolss.spoolss_PrinterInfo0.number_of_processors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPort_servername,
+         { "Servername", "spoolss.spoolss_SetPort.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_info,
+         { "Info", "spoolss.spoolss_GetPrintProcessorDirectory.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo101.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_help_file,
+         { "Help File", "spoolss.spoolss_AddDriverInfo8.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caSize,
+         { "Casize", "spoolss.spoolss_PSDRVEXTRA500.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_needed,
+         { "Needed", "spoolss._spoolss_EnumJobs.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_previous_names,
+         { "Previous Names", "spoolss.spoolss_DriverInfo6.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_enum_index,
+         { "Enum Index", "spoolss.spoolss_EnumPrinterData.enum_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_local_machine,
+         { "Local Machine", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.local_machine", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_info,
+         { "Info", "spoolss.spoolss_EnumJobs.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caBrightness,
+         { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA351.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_level,
+         { "Level", "spoolss.spoolss_EnumPrintProcDataTypes.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumMonitors_info,
+         { "Info", "spoolss.__spoolss_EnumMonitors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo3_status_string,
+         { "Status String", "spoolss.spoolss_SetPortInfo3.status_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_starttime,
+         { "Starttime", "spoolss.spoolss_PrinterInfo2.starttime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcDeleteJobNamedProperty_hPrinter,
+         { "Hprinter", "spoolss.spoolss_RpcDeleteJobNamedProperty.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_pages_printed,
+         { "Pages Printed", "spoolss.spoolss_JobInfo1.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caColorfulness,
+         { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA351.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_buffer,
+         { "Buffer", "spoolss.spoolss_EnumPrinterDrivers.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_language,
+         { "Language", "spoolss.spoolss_GetPrinterDriverPackagePath.language", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_DriverInfo8.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo_info1,
+         { "Info1", "spoolss.spoolss_FormInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo_info3,
+         { "Info3", "spoolss.spoolss_SetJobInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved3,
+         { "Dwreserved3", "spoolss.spoolss_PSDRVEXTRA500.dwReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wReserved1,
+         { "Wreserved1", "spoolss.spoolss_PSDRVEXTRA500.wReserved1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_config_version,
+         { "Config Version", "spoolss.spoolss_AddDriverInfo5.config_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_status,
+         { "Status", "spoolss.spoolss_JobInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2,
+         { "Printer Enum Icon2", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON2", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON2_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_bReversePrint,
+         { "Breverseprint", "spoolss.spoolss_PSDRVEXTRA500.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_offered,
+         { "Offered", "spoolss.spoolss_GetPrintProcessorDirectory.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyOpenPrinter_printer_local,
+         { "Printer Local", "spoolss.spoolss_ReplyOpenPrinter.printer_local", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMMETHOD,
+         { "Devmode Icmmethod", "spoolss.spoolss_DeviceModeFields.DEVMODE_ICMMETHOD", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_ICMMETHOD_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo5_device_not_selected_timeout,
+         { "Device Not Selected Timeout", "spoolss.spoolss_SetPrinterInfo5.device_not_selected_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_version,
+         { "Version", "spoolss.spoolss_DriverInfo101.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_size,
+         { "Size", "spoolss.spoolss_JobInfo2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_help_file,
+         { "Help File", "spoolss.spoolss_AddDriverInfo4.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_reserved2,
+         { "Reserved2", "spoolss.spoolss_SetPrinterInfo0.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_info,
+         { "Info", "spoolss.spoolss_GetPrinterDriver2.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB,
+         { "Printer Change Add Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_JOB_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info9,
+         { "Info9", "spoolss.spoolss_SetPrinterInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_driver_name,
+         { "Driver Name", "spoolss.spoolss_SetJobInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_sharename,
+         { "Sharename", "spoolss.spoolss_PrinterInfo2.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_ppProperties,
+         { "Ppproperties", "spoolss.spoolss_RpcEnumJobNamedProperties.ppProperties", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES,
+         { "Dpd Delete All Files", "spoolss.spoolss_DeleteDriverFlags.DPD_DELETE_ALL_FILES", FT_BOOLEAN, 32, TFS(&spoolss_DeleteDriverFlags_DPD_DELETE_ALL_FILES_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Count,
+         { "Count", "spoolss.RPC_BIDI_REQUEST_CONTAINER.Count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_panningwidth,
+         { "Panningwidth", "spoolss.spoolss_DeviceMode.panningwidth", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo2_description,
+         { "Description", "spoolss.spoolss_PortInfo2.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_count,
+         { "Count", "spoolss._spoolss_EnumJobs.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_session_counter,
+         { "Session Counter", "spoolss.spoolss_SetPrinterInfo0.session_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DocumentInfo1_output_file,
+         { "Output File", "spoolss.spoolss_DocumentInfo1.output_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_user,
+         { "User", "spoolss.spoolss_UserLevel3.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info7,
+         { "Info7", "spoolss.spoolss_DriverInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_minor,
+         { "Minor", "spoolss.spoolss_UserLevel1.minor", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MinorVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDataEx_info,
+         { "Info", "spoolss.spoolss_EnumPrinterDataEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_handle,
+         { "Handle", "spoolss.spoolss_GetPrinterDriver.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_server_name,
+         { "Server Name", "spoolss.spoolss_SetJobInfo2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevelCtr_level,
+         { "Level", "spoolss.spoolss_UserLevelCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinterEx_access_mask,
+         { "Access Mask", "spoolss.spoolss_OpenPrinterEx.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo1_form_name,
+         { "Form Name", "spoolss.spoolss_AddFormInfo1.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_version,
+         { "Version", "spoolss.spoolss_PortData2.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ORIENTATION,
+         { "Devmode Orientation", "spoolss.spoolss_DeviceModeFields.DEVMODE_ORIENTATION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_ORIENTATION_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinter_handle,
+         { "Handle", "spoolss.spoolss_OpenPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AccessRights_JOB_ACCESS_READ,
+         { "Job Access Read", "spoolss.spoolss_AccessRights.JOB_ACCESS_READ", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_JOB_ACCESS_READ_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwResult,
+         { "Dwresult", "spoolss.RPC_BIDI_RESPONSE_DATA.dwResult", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePerMachineConnection_server,
+         { "Server", "spoolss.spoolss_DeletePerMachineConnection.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfoContainer_level,
+         { "Level", "spoolss.spoolss_JobInfoContainer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_bReversePrint,
+         { "Breverseprint", "spoolss.spoolss_UNIDRVEXTRA500.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_handle,
+         { "Handle", "spoolss.spoolss_GetPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_dwReqNumber,
+         { "Dwreqnumber", "spoolss.RPC_BIDI_RESPONSE_DATA.dwReqNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_provider,
+         { "Provider", "spoolss.spoolss_DriverInfo101.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo2_driver_path,
+         { "Driver Path", "spoolss.spoolss_DriverInfo2.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo2_port_type,
+         { "Port Type", "spoolss.spoolss_PortInfo2.port_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_data_file,
+         { "Data File", "spoolss.spoolss_DriverInfo6.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE,
+         { "Printer Status Not Available", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_NOT_AVAILABLE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_NOT_AVAILABLE_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterData_value_name,
+         { "Value Name", "spoolss.spoolss_SetPrinterData.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_queue,
+         { "Queue", "spoolss.spoolss_PortData1.queue", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_reserved,
+         { "Reserved", "spoolss.spoolss_PortData2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_location,
+         { "Location", "spoolss.spoolss_PrinterInfo2.location", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT,
+         { "Devmode Pelsheight", "spoolss.spoolss_DeviceModeFields.DEVMODE_PELSHEIGHT", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PELSHEIGHT_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_servername,
+         { "Servername", "spoolss._spoolss_EnumPrintProcDataTypes.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_submitted,
+         { "Submitted", "spoolss.spoolss_SetJobInfo2.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_needed,
+         { "Needed", "spoolss.spoolss_EnumPorts.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_config_file,
+         { "Config File", "spoolss.spoolss_DriverInfo4.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_manufacturer_name,
+         { "Manufacturer Name", "spoolss.spoolss_AddDriverInfo8.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_devmode_,
+         { "Subcontext length", "spoolss.spoolss_JobInfo4.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwReserved2,
+         { "Dwreserved2", "spoolss.spoolss_PSDRVEXTRA.dwReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_month,
+         { "Month", "spoolss.spoolss_Time.month", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinter_datatype,
+         { "Datatype", "spoolss.spoolss_OpenPrinter.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info0,
+         { "Info0", "spoolss.spoolss_SetPrinterInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDataEx_needed,
+         { "Needed", "spoolss._spoolss_EnumPrinterDataEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_buffer,
+         { "Buffer", "spoolss._spoolss_EnumPrintProcDataTypes.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_hostaddress,
+         { "Hostaddress", "spoolss.spoolss_PortData2.hostaddress", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel_level2,
+         { "Level2", "spoolss.spoolss_UserLevel.level2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_date,
+         { "Min Inbox Driver Ver Date", "spoolss.spoolss_AddDriverInfo8.min_inbox_driver_ver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_config_file,
+         { "Config File", "spoolss.spoolss_AddDriverInfo3.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyInfo_version,
+         { "Version", "spoolss.spoolss_NotifyInfo.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_needed,
+         { "Needed", "spoolss.spoolss_GetPrinterDriver2.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_scale,
+         { "Scale", "spoolss.spoolss_DeviceMode.scale", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterData_handle,
+         { "Handle", "spoolss.spoolss_DeletePrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_core_driver_dependencies,
+         { "Core Driver Dependencies", "spoolss.spoolss_DriverInfo8.core_driver_dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_buffer,
+         { "Buffer", "spoolss._spoolss_EnumPrinterDrivers.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_manufacturer_url,
+         { "Manufacturer Url", "spoolss.spoolss_DriverInfo101.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_printername,
+         { "Printername", "spoolss.spoolss_SetPrinterInfo0.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_wOEMExtra,
+         { "Woemextra", "spoolss.spoolss_UNIDRVEXTRA.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDataEx_handle,
+         { "Handle", "spoolss.spoolss_DeletePrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_previous_names,
+         { "Previous Names", "spoolss.spoolss_DriverInfo4.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo3.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_devmode,
+         { "Devmode", "spoolss.spoolss_JobInfo4.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_priority,
+         { "Priority", "spoolss.spoolss_JobInfo4.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_value_name,
+         { "Value Name", "spoolss.spoolss_EnumPrinterData.value_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_status,
+         { "Status", "spoolss.spoolss_SetPrinterInfo0.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormArea_bottom,
+         { "Bottom", "spoolss.spoolss_FormArea.bottom", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_server_name,
+         { "Server Name", "spoolss.spoolss_JobInfo4.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_size,
+         { "Size", "spoolss.spoolss_SetJobInfo4.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_offered,
+         { "Offered", "spoolss._spoolss_EnumJobs.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE,
+         { "Printer Attribute Work Offline", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_WORK_OFFLINE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_WORK_OFFLINE_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_version,
+         { "Version", "spoolss.spoolss_DriverInfo3.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_handle,
+         { "Handle", "spoolss.spoolss_GetJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinter_secdesc_ctr,
+         { "Secdesc Ctr", "spoolss.spoolss_AddPrinter.secdesc_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_duplex,
+         { "Duplex", "spoolss.spoolss_DeviceMode.duplex", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeDuplex_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinterEx_color,
+         { "Color", "spoolss.spoolss_RouterReplyPrinterEx.color", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePort_port_name,
+         { "Port Name", "spoolss.spoolss_DeletePort.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_handle,
+         { "Handle", "spoolss._spoolss_EnumForms.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_flags,
+         { "Flags", "spoolss.spoolss_FormInfo2.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_status,
+         { "Status", "spoolss.spoolss_SetPrinterInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo2_config_file,
+         { "Config File", "spoolss.spoolss_AddDriverInfo2.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_document_name,
+         { "Document Name", "spoolss.spoolss_SetJobInfo2.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL,
+         { "Spoolss Dm Ps Flags Gdi Metafile Spool", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_GDI_METAFILE_SPOOL_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT,
+         { "Printer Change Configure Port", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_CONFIGURE_PORT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_CONFIGURE_PORT_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_spooling,
+         { "Spooling", "spoolss.spoolss_PrinterInfo0.spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4__ndr_size_dependent_files,
+         { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo4._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wCoreJTExpSize,
+         { "Wcorejtexpsize", "spoolss.spoolss_PSDRVEXTRA.wCoreJTExpSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_needed,
+         { "Needed", "spoolss.spoolss_EnumPrintProcDataTypes.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfoFF_monitor_data,
+         { "Monitor Data", "spoolss.spoolss_PortInfoFF.monitor_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintNamedProperty_propertyValue,
+         { "Propertyvalue", "spoolss.RPC_PrintNamedProperty.propertyValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_position,
+         { "Position", "spoolss.spoolss_JobInfo2.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_type,
+         { "Type", "spoolss.spoolss_GetPrinterDataEx.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_level,
+         { "Level", "spoolss.spoolss_EnumPrinterDrivers.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_AddDriverInfo6.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_millisecond,
+         { "Millisecond", "spoolss.spoolss_Time.millisecond", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_needed,
+         { "Needed", "spoolss.spoolss_EnumForms.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwNupDirection,
+         { "Dwnupdirection", "spoolss.spoolss_UNIDRVEXTRA.dwNupDirection", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupDirection_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_min_inbox_driver_ver_version,
+         { "Min Inbox Driver Ver Version", "spoolss.spoolss_AddDriverInfo8.min_inbox_driver_ver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_driver_path,
+         { "Driver Path", "spoolss.spoolss_AddDriverInfo8.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_time,
+         { "Time", "spoolss.spoolss_SetJobInfo4.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_architecture,
+         { "Architecture", "spoolss.spoolss_GetPrinterDriver2.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_buffer,
+         { "Buffer", "spoolss.spoolss_GetPrinter.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterData_string,
+         { "String", "spoolss.spoolss_PrinterData.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_print_processor,
+         { "Print Processor", "spoolss.spoolss_JobInfo4.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETED,
+         { "Job Status Deleted", "spoolss.spoolss_JobStatus.JOB_STATUS_DELETED", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_DELETED_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_OEM_DMEXTRA_dwVersion,
+         { "Dwversion", "spoolss.spoolss_OEM_DMEXTRA.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo_info2,
+         { "Info2", "spoolss.spoolss_SetPortInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo_info3,
+         { "Info3", "spoolss.spoolss_JobInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_architecture,
+         { "Architecture", "spoolss.spoolss_AddDriverInfo4.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED,
+         { "Printer Attribute Published", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_PUBLISHED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_PUBLISHED_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey__ndr_size,
+         { " Ndr Size", "spoolss.spoolss_EnumPrinterKey._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDataEx_count,
+         { "Count", "spoolss.spoolss_EnumPrinterDataEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_display_name,
+         { "Display Name", "spoolss.spoolss_FormInfo2.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_offered,
+         { "Offered", "spoolss._spoolss_EnumPrintProcessors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_DriverInfo4.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_offered,
+         { "Offered", "spoolss.spoolss_EnumForms.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDataEx_key_name,
+         { "Key Name", "spoolss.spoolss_EnumPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwY,
+         { "Dwy", "spoolss.spoolss_PSDRVEXTRA.dwY", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_level,
+         { "Level", "spoolss._spoolss_EnumPorts.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwChecksum32,
+         { "Dwchecksum32", "spoolss.spoolss_PSDRVEXTRA.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyOpenPrinter_type,
+         { "Type", "spoolss.spoolss_ReplyOpenPrinter.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_copies,
+         { "Copies", "spoolss.spoolss_DeviceMode.copies", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDataEx_needed,
+         { "Needed", "spoolss.spoolss_EnumPrinterDataEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_data_file,
+         { "Data File", "spoolss.spoolss_AddDriverInfo3.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_protocol,
+         { "Protocol", "spoolss.spoolss_PortData1.protocol", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortProtocol_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_size,
+         { "Size", "spoolss.spoolss_JobInfo4.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_level,
+         { "Level", "spoolss.spoolss_EnumPrinters.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER,
+         { "Apd Dont Copy Files To Cluster", "spoolss.spoolss_AddPrinterDriverExFlags.APD_DONT_COPY_FILES_TO_CLUSTER", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_DONT_COPY_FILES_TO_CLUSTER_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_client,
+         { "Client", "spoolss.spoolss_UserLevel3.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psblob,
+         { "Psblob", "spoolss.spoolss_DeviceModeExtraDataPostScript.psblob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cOut,
+         { "Cout", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.cOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_status,
+         { "Status", "spoolss.spoolss_JobInfo4.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion_platform_id,
+         { "Platform Id", "spoolss.spoolss_OSVersion.platform_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_processor_architecture,
+         { "Processor Architecture", "spoolss.spoolss_PrinterInfo0.processor_architecture", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_bReversePrint,
+         { "Breverseprint", "spoolss.spoolss_UNIDRVEXTRA.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_total_pages,
+         { "Total Pages", "spoolss.spoolss_SetJobInfo2.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_device_type,
+         { "Device Type", "spoolss.spoolss_PortData2.device_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED,
+         { "Spoolss Port Type Redirected", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_REDIRECTED", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_REDIRECTED_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_devmode_ptr,
+         { "Devmode Ptr", "spoolss.spoolss_SetPrinterInfo2.devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_status,
+         { "Status", "spoolss.spoolss_SetJobInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME,
+         { "Printer Enum Name", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_NAME", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_NAME_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSendRecvBidiData_pReqData,
+         { "Preqdata", "spoolss.spoolss_RpcSendRecvBidiData.pReqData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ClosePrinter_handle,
+         { "Handle", "spoolss.spoolss_ClosePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo3.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_total_pages,
+         { "Total Pages", "spoolss.spoolss_PrinterInfo0.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_bReversePrint,
+         { "Breverseprint", "spoolss.spoolss_PSDRVEXTRA.bReversePrint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_level,
+         { "Level", "spoolss._spoolss_EnumPrinterDrivers.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_buffer,
+         { "Buffer", "spoolss._spoolss_EnumForms.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_dwFlags,
+         { "Dwflags", "spoolss.spoolss_PSDRVEXTRA400.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo5_attributes,
+         { "Attributes", "spoolss.spoolss_PrinterInfo5.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caRedGamma,
+         { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA351.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_priority,
+         { "Priority", "spoolss.spoolss_JobInfo1.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo1_name,
+         { "Name", "spoolss.spoolss_SetPrinterInfo1.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY,
+         { "Printer Status Out Of Memory", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_OUT_OF_MEMORY", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_OUT_OF_MEMORY_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_data_type,
+         { "Data Type", "spoolss.spoolss_JobInfo1.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5,
+         { "Printer Enum Icon5", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON5", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON5_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_bitsperpel,
+         { "Bitsperpel", "spoolss.spoolss_DeviceMode.bitsperpel", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_extra_string,
+         { "Extra String", "spoolss.spoolss_OSVersionEx.extra_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info0,
+         { "Info0", "spoolss.spoolss_PrinterInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwOptions,
+         { "Dwoptions", "spoolss.spoolss_PSDRVEXTRA500.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caRedGreenTint,
+         { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED,
+         { "Printer Attribute Queued", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_QUEUED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_QUEUED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_user_name,
+         { "User Name", "spoolss.spoolss_SetJobInfo4.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DocumentInfoCtr_level,
+         { "Level", "spoolss.spoolss_DocumentInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwChecksum32,
+         { "Dwchecksum32", "spoolss.spoolss_UNIDRVEXTRA.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddMonitorInfo1_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddMonitorInfo1.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_offered,
+         { "Offered", "spoolss.spoolss_EnumPrintProcDataTypes.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_level,
+         { "Level", "spoolss._spoolss_EnumPrintProcDataTypes.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DevmodeContainer_devmode,
+         { "Devmode", "spoolss.spoolss_DevmodeContainer.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_DATA_u_sData,
+         { "Sdata", "spoolss.RPC_BIDI_DATA_u.sData", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwNupBorderFlags,
+         { "Dwnupborderflags", "spoolss.spoolss_PSDRVEXTRA.dwNupBorderFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupBorderFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo3_reserved,
+         { "Reserved", "spoolss.spoolss_JobInfo3.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_version,
+         { "Version", "spoolss.spoolss_PrinterInfo0.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_dependencies,
+         { "Core Driver Dependencies", "spoolss.spoolss_GetCorePrinterDrivers.core_driver_dependencies", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_count,
+         { "Count", "spoolss._spoolss_EnumPrintProcessors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinters_level,
+         { "Level", "spoolss.__spoolss_EnumPrinters.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_priority,
+         { "Priority", "spoolss.spoolss_SetJobInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_buffer,
+         { "Buffer", "spoolss.spoolss_EnumPrintProcDataTypes.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_size,
+         { "Size", "spoolss.spoolss_UserLevel3.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_driver_date,
+         { "Driver Date", "spoolss.spoolss_DriverInfo8.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_user_name,
+         { "User Name", "spoolss.spoolss_JobInfo4.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_icmintent,
+         { "Icmintent", "spoolss.spoolss_DeviceMode.icmintent", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeICMIntent_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_DriverInfo101.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_job_id,
+         { "Job Id", "spoolss.spoolss_SetJobInfo1.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_high_part_total_bytes,
+         { "High Part Total Bytes", "spoolss.spoolss_PrinterInfo0.high_part_total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_unused,
+         { "Unused", "spoolss.spoolss_FormInfo2.unused", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_driver_date,
+         { "Driver Date", "spoolss.spoolss_DriverInfo6.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDataEx_count,
+         { "Count", "spoolss._spoolss_EnumPrinterDataEx.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo3_job_id,
+         { "Job Id", "spoolss.spoolss_JobInfo3.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_hPrinter,
+         { "Hprinter", "spoolss.spoolss_RpcGetJobNamedPropertyValue.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_buffer,
+         { "Buffer", "spoolss.spoolss_EnumPrinters.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_buffer,
+         { "Buffer", "spoolss._spoolss_EnumPrinters.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfoFF_monitor_data,
+         { "Monitor Data", "spoolss.spoolss_SetPortInfoFF.monitor_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Notify_field,
+         { "Field", "spoolss.spoolss_Notify.field", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTING,
+         { "Job Status Printing", "spoolss.spoolss_JobStatus.JOB_STATUS_PRINTING", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PRINTING_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo3_status,
+         { "Status", "spoolss.spoolss_SetPortInfo3.status", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortStatus_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WAITING,
+         { "Printer Status Waiting", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_WAITING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_WAITING_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo2_data_file,
+         { "Data File", "spoolss.spoolss_DriverInfo2.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_secdesc_,
+         { "Subcontext length", "spoolss.spoolss_PrinterInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterData_type,
+         { "Type", "spoolss.spoolss_GetPrinterData.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDataEx_key_name,
+         { "Key Name", "spoolss.spoolss_DeletePrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDataEx_handle,
+         { "Handle", "spoolss.spoolss_EnumPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caBrightness,
+         { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA500.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_cIn,
+         { "Cin", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.cIn", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo1_flags,
+         { "Flags", "spoolss.spoolss_SetPrinterInfo1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_form_name,
+         { "Form Name", "spoolss.spoolss_AddFormInfo2.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorInfo_info2,
+         { "Info2", "spoolss.spoolss_MonitorInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo_info4,
+         { "Info4", "spoolss.spoolss_SetJobInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt64,
+         { "Propertyint64", "spoolss.RPC_PrintPropertyValueUnion.propertyInt64", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_wCoreMFOSize,
+         { "Wcoremfosize", "spoolss.spoolss_JTEXP.wCoreMFOSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterKey_handle,
+         { "Handle", "spoolss.spoolss_DeletePrinterKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_reserved2,
+         { "Reserved2", "spoolss.spoolss_PrinterInfo0.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER,
+         { "Printer Change Server", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SERVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SERVER_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_print_processor,
+         { "Print Processor", "spoolss.spoolss_DriverInfo8.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_server,
+         { "Server", "spoolss.spoolss_EnumPrinters.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_count,
+         { "Count", "spoolss.spoolss_EnumMonitors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_secdesc,
+         { "Secdesc", "spoolss.spoolss_JobInfo2.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_job_id,
+         { "Job Id", "spoolss.spoolss_JobInfo2.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo8.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_buffer,
+         { "Buffer", "spoolss.spoolss_GetPrinterDriverDirectory.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_info,
+         { "Info", "spoolss._spoolss_EnumPrinters.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo5.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_document_name,
+         { "Document Name", "spoolss.spoolss_JobInfo4.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caFlags,
+         { "Caflags", "spoolss.spoolss_PSDRVEXTRA351.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrintProcessorDirectoryInfo1_directory_name,
+         { "Directory Name", "spoolss.spoolss_PrintProcessorDirectoryInfo1.directory_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caSize,
+         { "Casize", "spoolss.spoolss_PSDRVEXTRA400.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDataEx_offered,
+         { "Offered", "spoolss._spoolss_EnumPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinter_buffer,
+         { "Buffer", "spoolss.spoolss_RouterReplyPrinter.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo6_status,
+         { "Status", "spoolss.spoolss_SetPrinterInfo6.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_free_build,
+         { "Free Build", "spoolss.spoolss_PrinterInfo0.free_build", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_Build_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_buffer,
+         { "Buffer", "spoolss.spoolss_GetPrinterDriver2.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo_info3,
+         { "Info3", "spoolss.spoolss_AddDriverInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_hardware_id,
+         { "Hardware Id", "spoolss.spoolss_AddDriverInfo8.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinters_info,
+         { "Info", "spoolss.__spoolss_EnumPrinters.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo7_install_source_root,
+         { "Install Source Root", "spoolss.spoolss_DriverInfo7.install_source_root", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_position,
+         { "Position", "spoolss.spoolss_SetJobInfo4.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY,
+         { "Devmode Printquality", "spoolss.spoolss_DeviceModeFields.DEVMODE_PRINTQUALITY", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PRINTQUALITY_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterData_string_array,
+         { "String Array", "spoolss.spoolss_PrinterData.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfoCtr_info,
+         { "Info", "spoolss.spoolss_AddFormInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_driver_package_cab,
+         { "Driver Package Cab", "spoolss.spoolss_GetPrinterDriverPackagePath.driver_package_cab", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_count,
+         { "Count", "spoolss.spoolss_EnumPorts.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_pelsheight,
+         { "Pelsheight", "spoolss.spoolss_DeviceMode.pelsheight", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyString_string,
+         { "String", "spoolss.spoolss_NotifyString.string", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo1_size,
+         { "Size", "spoolss.spoolss_FormInfo1.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddMonitorInfo2_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddMonitorInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_time,
+         { "Time", "spoolss.spoolss_PrinterInfo0.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_notify_name,
+         { "Notify Name", "spoolss.spoolss_JobInfo2.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE,
+         { "Apd Return Blocking Status Code", "spoolss.spoolss_AddPrinterDriverExFlags.APD_RETURN_BLOCKING_STATUS_CODE", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_RETURN_BLOCKING_STATUS_CODE_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_architecture,
+         { "Architecture", "spoolss.spoolss_AddDriverInfo8.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_manufacturer_name,
+         { "Manufacturer Name", "spoolss.spoolss_DriverInfo6.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_server,
+         { "Server", "spoolss._spoolss_EnumPrinters.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_DATA_dwReqNumber,
+         { "Dwreqnumber", "spoolss.RPC_BIDI_REQUEST_DATA.dwReqNumber", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_ref_ic,
+         { "Ref Ic", "spoolss.spoolss_SetPrinterInfo0.ref_ic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_FeatureOptionPairs,
+         { "Featureoptionpairs", "spoolss.spoolss_JTEXP.FeatureOptionPairs", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_LOGPIXELS,
+         { "Devmode Logpixels", "spoolss.spoolss_DeviceModeFields.DEVMODE_LOGPIXELS", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_LOGPIXELS_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_manufacturer_url,
+         { "Manufacturer Url", "spoolss.spoolss_DriverInfo6.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_offered,
+         { "Offered", "spoolss._spoolss_EnumMonitors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_driver_version,
+         { "Driver Version", "spoolss.spoolss_AddDriverInfo8.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pOut,
+         { "Pout", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pOut", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_sepfile,
+         { "Sepfile", "spoolss.spoolss_SetPrinterInfo2.sepfile", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_info,
+         { "Info", "spoolss.spoolss_GetPrinterDriver.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS,
+         { "Printer Attribute Keepprintedjobs", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_displayfrequency,
+         { "Displayfrequency", "spoolss.spoolss_DeviceMode.displayfrequency", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_text_status,
+         { "Text Status", "spoolss.spoolss_JobInfo2.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriver_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_AddPrinterDriver.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_printer_driver_attributes,
+         { "Printer Driver Attributes", "spoolss.spoolss_AddDriverInfo8.printer_driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN,
+         { "Printer Status Door Open", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_DOOR_OPEN", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_DOOR_OPEN_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorInfo_info1,
+         { "Info1", "spoolss.spoolss_MonitorInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinterDrivers_info,
+         { "Info", "spoolss.__spoolss_EnumPrinterDrivers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_previous_names,
+         { "Previous Names", "spoolss.spoolss_AddDriverInfo8.previous_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_AddDriverInfo8.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_value_needed,
+         { "Value Needed", "spoolss.spoolss_EnumPrinterData.value_needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo2_version,
+         { "Version", "spoolss.spoolss_AddDriverInfo2.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_aOptions,
+         { "Aoptions", "spoolss.spoolss_PSDRVEXTRA500.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER,
+         { "Printer Change Delete Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_high_part_total_bytes,
+         { "High Part Total Bytes", "spoolss.spoolss_SetPrinterInfo0.high_part_total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_time,
+         { "Time", "spoolss.spoolss_SetJobInfo2.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_level,
+         { "Level", "spoolss._spoolss_EnumForms.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_manufacturer_url,
+         { "Manufacturer Url", "spoolss.spoolss_AddDriverInfo8.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddForm_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_AddForm.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_cjobs,
+         { "Cjobs", "spoolss.spoolss_PrinterInfo2.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_needed,
+         { "Needed", "spoolss.spoolss_GetForm.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_wCoreFullSize,
+         { "Wcorefullsize", "spoolss.spoolss_UNIDRVEXTRA.wCoreFullSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_info_,
+         { "Subcontext length", "spoolss.spoolss_GetPrinterDriver2.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterData_handle,
+         { "Handle", "spoolss.spoolss_SetPrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_info_,
+         { "Subcontext length", "spoolss.spoolss_GetPrinter.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo3_status,
+         { "Status", "spoolss.spoolss_PortInfo3.status", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortStatus_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo4_printername,
+         { "Printername", "spoolss.spoolss_SetPrinterInfo4.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_info,
+         { "Info", "spoolss.spoolss_EnumMonitors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_pages_printed,
+         { "Pages Printed", "spoolss.spoolss_SetJobInfo2.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_secdesc_,
+         { "Subcontext length", "spoolss.spoolss_JobInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caBlueGamma,
+         { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA500.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_data_type,
+         { "Data Type", "spoolss.spoolss_JobInfo4.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_firstjob,
+         { "Firstjob", "spoolss.spoolss_EnumJobs.firstjob", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info4,
+         { "Info4", "spoolss.spoolss_DriverInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_enumerate_network_printers,
+         { "Enumerate Network Printers", "spoolss.spoolss_SetPrinterInfo0.enumerate_network_printers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_needed,
+         { "Needed", "spoolss._spoolss_EnumPrinterDrivers.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_printer_name,
+         { "Printer Name", "spoolss.spoolss_SetJobInfo4.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_printer_name,
+         { "Printer Name", "spoolss.spoolss_JobInfo2.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey_offered,
+         { "Offered", "spoolss.spoolss_EnumPrinterKey.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_offered,
+         { "Offered", "spoolss._spoolss_EnumPorts.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_yresolution,
+         { "Yresolution", "spoolss.spoolss_DeviceMode.yresolution", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_info,
+         { "Info", "spoolss.spoolss_EnumPrinters.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_AddDriverInfo4.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_until_time,
+         { "Until Time", "spoolss.spoolss_JobInfo2.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_data_offered,
+         { "Data Offered", "spoolss.spoolss_EnumPrinterData.data_offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOptionType_u2,
+         { "U2", "spoolss.spoolss_NotifyOptionType.u2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrintProcessors_level,
+         { "Level", "spoolss.__spoolss_EnumPrintProcessors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_count,
+         { "Count", "spoolss.spoolss_EnumJobs.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAUSED,
+         { "Job Status Paused", "spoolss.spoolss_JobStatus.JOB_STATUS_PAUSED", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PAUSED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_change_id,
+         { "Change Id", "spoolss.spoolss_SetPrinterInfo0.change_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_previous_names,
+         { "Previous Names", "spoolss.spoolss_AddDriverInfo4.previous_names", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterData_value_name,
+         { "Value Name", "spoolss.spoolss_DeletePrinterData.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_ERROR,
+         { "Printer Status Error", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_ERROR", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_ERROR_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST,
+         { "Printer Attribute Do Complete First", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_JobId,
+         { "Jobid", "spoolss.spoolss_RpcEnumJobNamedProperties.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfoCtr_level,
+         { "Level", "spoolss.spoolss_SetPrinterInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeInfo_devmode_,
+         { "Subcontext length", "spoolss.spoolss_DeviceModeInfo.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER,
+         { "Printer Change Delete Printer Driver", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PRINTER_DRIVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINTER_DRIVER_tfs), ( 0x40000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOptionType_u3,
+         { "U3", "spoolss.spoolss_NotifyOptionType.u3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_server_name,
+         { "Server Name", "spoolss.spoolss_JobInfo1.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caColorfulness,
+         { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA400.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwOptions,
+         { "Dwoptions", "spoolss.spoolss_UNIDRVEXTRA500.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo8_devmode_ptr,
+         { "Devmode Ptr", "spoolss.spoolss_SetPrinterInfo8.devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_provider,
+         { "Provider", "spoolss.spoolss_DriverInfo6.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION,
+         { "Printer Status User Intervention", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_USER_INTERVENTION", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_USER_INTERVENTION_tfs), ( 0x00100000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_server,
+         { "Server", "spoolss.spoolss_GetPrinterDriverDirectory.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_notify_name,
+         { "Notify Name", "spoolss.spoolss_SetJobInfo2.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrintProcDataTypes_info,
+         { "Info", "spoolss.__spoolss_EnumPrintProcDataTypes.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_data_type,
+         { "Data Type", "spoolss.spoolss_JobInfo2.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_needed,
+         { "Needed", "spoolss.spoolss_GetPrintProcessorDirectory.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwHeightOffset,
+         { "Dwheightoffset", "spoolss.spoolss_PSDRVEXTRA.dwHeightOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSendRecvBidiData_ppRespData,
+         { "Pprespdata", "spoolss.spoolss_RpcSendRecvBidiData.ppRespData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfoCtr_level,
+         { "Level", "spoolss.spoolss_AddFormInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinterEx_reply_type,
+         { "Reply Type", "spoolss.spoolss_RouterReplyPrinterEx.reply_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_user_name,
+         { "User Name", "spoolss.spoolss_SetJobInfo1.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_area,
+         { "Area", "spoolss.spoolss_AddFormInfo2.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_job_id,
+         { "Job Id", "spoolss.spoolss_JobInfo4.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_secdesc_,
+         { "Subcontext length", "spoolss.spoolss_JobInfo4.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_info_,
+         { "Subcontext length", "spoolss.spoolss_GetJob.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_manufacturer_name,
+         { "Manufacturer Name", "spoolss.spoolss_DriverInfo8.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_offered,
+         { "Offered", "spoolss.spoolss_EnumPrinterDrivers.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_SPOOLING,
+         { "Job Status Spooling", "spoolss.spoolss_JobStatus.JOB_STATUS_SPOOLING", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_SPOOLING_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Count,
+         { "Count", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.Count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_parameters,
+         { "Parameters", "spoolss.spoolss_SetJobInfo4.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_file_info,
+         { "File Info", "spoolss.spoolss_DriverInfo101.file_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_level,
+         { "Level", "spoolss.spoolss_GetPrinter.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_papersize,
+         { "Papersize", "spoolss.spoolss_DeviceMode.papersize", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModePaperSize_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterKey_key_name,
+         { "Key Name", "spoolss.spoolss_DeletePrinterKey.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caContrast,
+         { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA351.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES,
+         { "Apd Copy New Files", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_NEW_FILES", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_NEW_FILES_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2__secdesc_ptr,
+         { " Secdesc Ptr", "spoolss.spoolss_SetJobInfo2._secdesc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPerMachineConnection_printername,
+         { "Printername", "spoolss.spoolss_AddPerMachineConnection.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_server,
+         { "Server", "spoolss.spoolss_GetPrintProcessorDirectory.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterDataEx_value_name,
+         { "Value Name", "spoolss.spoolss_SetPrinterDataEx.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info5,
+         { "Info5", "spoolss.spoolss_PrinterInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_wReserved,
+         { "Wreserved", "spoolss.spoolss_UNIDRVEXTRA.wReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_pages_printed,
+         { "Pages Printed", "spoolss.spoolss_SetJobInfo1.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_out_data_size,
+         { "Out Data Size", "spoolss.spoolss_XcvData.out_data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_buffer,
+         { "Buffer", "spoolss._spoolss_EnumPorts.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_needed,
+         { "Needed", "spoolss._spoolss_EnumPrinters.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_ref_ic,
+         { "Ref Ic", "spoolss.spoolss_PrinterInfo0.ref_ic", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DocumentInfo1_document_name,
+         { "Document Name", "spoolss.spoolss_DocumentInfo1.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_DriverInfo3.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumJobs_level,
+         { "Level", "spoolss.__spoolss_EnumJobs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcDeleteJobNamedProperty_JobId,
+         { "Jobid", "spoolss.spoolss_RpcDeleteJobNamedProperty.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION,
+         { "Job Status User Intervention", "spoolss.spoolss_JobStatus.JOB_STATUS_USER_INTERVENTION", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_USER_INTERVENTION_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_needed,
+         { "Needed", "spoolss._spoolss_EnumPrintProcessors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrintProcDataTypesInfo_info1,
+         { "Info1", "spoolss.spoolss_PrintProcDataTypesInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6,
+         { "Printer Enum Icon6", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON6", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON6_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE,
+         { "Printer Driver Category Service", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_SERVICE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_SERVICE_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_total_pages,
+         { "Total Pages", "spoolss.spoolss_SetJobInfo4.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwWidthOffset,
+         { "Dwwidthoffset", "spoolss.spoolss_PSDRVEXTRA500.dwWidthOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwPadding,
+         { "Dwpadding", "spoolss.spoolss_PSDRVEXTRA.dwPadding", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_architecture,
+         { "Architecture", "spoolss.spoolss_AddDriverInfo5.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValue_ePropertyType,
+         { "Epropertytype", "spoolss.RPC_PrintPropertyValue.ePropertyType", FT_UINT1632, BASE_DEC, VALS(spoolss_RPC_EPrintPropertyType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_user_name,
+         { "User Name", "spoolss.spoolss_SetJobInfo2.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion_extra_string_,
+         { "Subcontext length", "spoolss.spoolss_OSVersion.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE,
+         { "Devmode Defaultsource", "spoolss.spoolss_DeviceModeFields.DEVMODE_DEFAULTSOURCE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DEFAULTSOURCE_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwNupBorderFlags,
+         { "Dwnupborderflags", "spoolss.spoolss_UNIDRVEXTRA.dwNupBorderFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupBorderFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT,
+         { "Devmode Panningheight", "spoolss.spoolss_DeviceModeFields.DEVMODE_PANNINGHEIGHT", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PANNINGHEIGHT_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJob_command,
+         { "Command", "spoolss.spoolss_SetJob.command", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_JobControl_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_info_,
+         { "Subcontext length", "spoolss.spoolss_GetPrintProcessorDirectory.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_string_type,
+         { "String Type", "spoolss.spoolss_FormInfo2.string_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwFlags,
+         { "Dwflags", "spoolss.spoolss_PSDRVEXTRA500.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddDriverInfo3.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_version,
+         { "Version", "spoolss.spoolss_SetPrinterInfo0.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP,
+         { "Printer Status Warming Up", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_WARMING_UP", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_WARMING_UP_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterEx_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_AddPrinterEx.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterDataEx_data,
+         { "Data", "spoolss.spoolss_SetPrinterDataEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_CreatePrinterIC_handle,
+         { "Handle", "spoolss.spoolss_CreatePrinterIC.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_help_file,
+         { "Help File", "spoolss.spoolss_DriverInfo6.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_color_profiles,
+         { " Ndr Size Color Profiles", "spoolss.spoolss_AddDriverInfo8._ndr_size_color_profiles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_flags,
+         { "Flags", "spoolss._spoolss_EnumPrinters.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra500,
+         { "Psdrvextra500", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra500", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info2,
+         { "Info2", "spoolss.spoolss_PrinterInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info6,
+         { "Info6", "spoolss.spoolss_SetPrinterInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_environment,
+         { "Environment", "spoolss.spoolss_EnumPrintProcessors.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion_build,
+         { "Build", "spoolss.spoolss_OSVersion.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_last_error,
+         { "Last Error", "spoolss.spoolss_PrinterInfo0.last_error", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPerMachineConnection_printserver,
+         { "Printserver", "spoolss.spoolss_AddPerMachineConnection.printserver", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_WritePrinter_data,
+         { "Data", "spoolss.spoolss_WritePrinter.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_info,
+         { "Info", "spoolss._spoolss_EnumJobs.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo7_size,
+         { "Size", "spoolss.spoolss_DriverInfo7.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caIlluminantIndex,
+         { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA400.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_offered,
+         { "Offered", "spoolss.spoolss_EnumPorts.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_ip_address,
+         { "Ip Address", "spoolss.spoolss_PortData1.ip_address", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_minute,
+         { "Minute", "spoolss.spoolss_Time.minute", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPortEx_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddPortEx.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_iQuality,
+         { "Iquality", "spoolss.spoolss_UNIDRVEXTRA500.iQuality", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMUNI_Quality_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_DriverInfo3.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_until_time,
+         { "Until Time", "spoolss.spoolss_SetJobInfo2.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_status_code,
+         { "Status Code", "spoolss.spoolss_XcvData.status_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo3_next_job_id,
+         { "Next Job Id", "spoolss.spoolss_JobInfo3.next_job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfoCtr_level,
+         { "Level", "spoolss.spoolss_AddDriverInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValue_value,
+         { "Value", "spoolss.RPC_PrintPropertyValue.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caRedGamma,
+         { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA400.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterEnumValues_data_,
+         { "Subcontext length", "spoolss.spoolss_PrinterEnumValues.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo1_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo1.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_driverextra_data,
+         { "Driverextra Data", "spoolss.spoolss_DeviceMode.driverextra_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_build,
+         { "Build", "spoolss.spoolss_UserLevel1.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_data_file,
+         { "Data File", "spoolss.spoolss_AddDriverInfo8.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wOEMExtra,
+         { "Woemextra", "spoolss.spoolss_PSDRVEXTRA.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_handle,
+         { "Handle", "spoolss.spoolss_GetPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_info,
+         { "Info", "spoolss.spoolss_GetJob.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caContrast,
+         { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA400.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterEx_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_AddPrinterEx.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wFeedDirection,
+         { "Wfeeddirection", "spoolss.spoolss_PSDRVEXTRA.wFeedDirection", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_DMPS_FeedDirection_vals), 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_buffer,
+         { "Buffer", "spoolss._spoolss_EnumPrintProcessors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_UNIVERSAL_FONT_ID_ctr_count,
+         { "Count", "spoolss.UNIVERSAL_FONT_ID_ctr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyString_size,
+         { "Size", "spoolss.spoolss_NotifyString.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_status,
+         { "Status", "spoolss.spoolss_PrinterInfo0.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info3,
+         { "Info3", "spoolss.spoolss_SetPrinterInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_c_setprinter,
+         { "C Setprinter", "spoolss.spoolss_PrinterInfo0.c_setprinter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_environment,
+         { "Environment", "spoolss._spoolss_EnumPrintProcessors.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_offered,
+         { "Offered", "spoolss.spoolss_GetForm.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_num_error_out_of_paper,
+         { "Num Error Out Of Paper", "spoolss.spoolss_SetPrinterInfo0.num_error_out_of_paper", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinters_count,
+         { "Count", "spoolss.__spoolss_EnumPrinters.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo3_severity,
+         { "Severity", "spoolss.spoolss_PortInfo3.severity", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortSeverity_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_out_data,
+         { "Out Data", "spoolss.spoolss_XcvData.out_data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_servername,
+         { "Servername", "spoolss.spoolss_EnumPrintProcDataTypes.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_info,
+         { "Info", "spoolss.spoolss_GetPrinterDriverDirectory.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey_key_buffer,
+         { "Key Buffer", "spoolss.spoolss_EnumPrinterKey.key_buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_flags,
+         { "Flags", "spoolss.spoolss_UserLevel3.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinter_handle,
+         { "Handle", "spoolss.spoolss_DeletePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_config_file,
+         { "Config File", "spoolss.spoolss_AddDriverInfo4.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetCorePrinterDrivers_servername,
+         { "Servername", "spoolss.spoolss_GetCorePrinterDrivers.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterData_handle,
+         { "Handle", "spoolss.spoolss_GetPrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_printer_local,
+         { "Printer Local", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.printer_local", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriverEx_architecture,
+         { "Architecture", "spoolss.spoolss_DeletePrinterDriverEx.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumMonitors_level,
+         { "Level", "spoolss.__spoolss_EnumMonitors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinterEx_info,
+         { "Info", "spoolss.spoolss_RouterReplyPrinterEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrintProcessor_print_processor_name,
+         { "Print Processor Name", "spoolss.spoolss_DeletePrintProcessor.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriver_server,
+         { "Server", "spoolss.spoolss_DeletePrinterDriver.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caBrightness,
+         { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_size,
+         { "Size", "spoolss.spoolss_PortData1.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES,
+         { "Dpd Delete Unused Files", "spoolss.spoolss_DeleteDriverFlags.DPD_DELETE_UNUSED_FILES", FT_BOOLEAN, 32, TFS(&spoolss_DeleteDriverFlags_DPD_DELETE_UNUSED_FILES_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_snmpcommunity,
+         { "Snmpcommunity", "spoolss.spoolss_PortData1.snmpcommunity", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_client,
+         { "Client", "spoolss.spoolss_UserLevel1.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_KeyNames_string_array,
+         { "String Array", "spoolss.spoolss_KeyNames.string_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_architecture,
+         { "Architecture", "spoolss.spoolss_GetPrinterDriverPackagePath.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_servername,
+         { "Servername", "spoolss._spoolss_EnumMonitors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddMonitorInfo_info2,
+         { "Info2", "spoolss.spoolss_AddMonitorInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_sharename,
+         { "Sharename", "spoolss.spoolss_SetPrinterInfo2.sharename", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info4,
+         { "Info4", "spoolss.spoolss_SetPrinterInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_level,
+         { "Level", "spoolss.spoolss_EnumForms.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReadPrinter_handle,
+         { "Handle", "spoolss.spoolss_ReadPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_inf_path,
+         { "Inf Path", "spoolss.spoolss_DriverInfo8.inf_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_driver_version,
+         { "Driver Version", "spoolss.spoolss_AddDriverInfo6.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo_info2,
+         { "Info2", "spoolss.spoolss_SetJobInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_environment,
+         { "Environment", "spoolss.spoolss_GetPrinterDriverDirectory.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED,
+         { "Printer Driver Derived", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_DERIVED", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_DERIVED_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_color_profiles,
+         { "Color Profiles", "spoolss.spoolss_AddDriverInfo8.color_profiles", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_vendor_setup,
+         { "Vendor Setup", "spoolss.spoolss_AddDriverInfo8.vendor_setup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_ICMINTENT,
+         { "Devmode Icmintent", "spoolss.spoolss_DeviceModeFields.DEVMODE_ICMINTENT", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_ICMINTENT_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_service_pack_minor,
+         { "Service Pack Minor", "spoolss.spoolss_OSVersionEx.service_pack_minor", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE,
+         { "Printer Enum Remote", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_REMOTE", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_REMOTE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_StartDocPrinter_job_id,
+         { "Job Id", "spoolss.spoolss_StartDocPrinter.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_count,
+         { "Count", "spoolss._spoolss_EnumPrinters.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_lang_id,
+         { "Lang Id", "spoolss.spoolss_AddFormInfo2.lang_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR,
+         { "Spoolss Form String Type Lang Pair", "spoolss.spoolss_FormStringType.SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", FT_BOOLEAN, 32, TFS(&spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_LANG_PAIR_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo_info2,
+         { "Info2", "spoolss.spoolss_JobInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_count,
+         { "Count", "spoolss._spoolss_EnumPrinterDrivers.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo_info1,
+         { "Info1", "spoolss.spoolss_PortInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_buffer,
+         { "Buffer", "spoolss.spoolss_EnumForms.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_snmp_enabled,
+         { "Snmp Enabled", "spoolss.spoolss_PortData1.snmp_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLOR,
+         { "Devmode Color", "spoolss.spoolss_DeviceModeFields.DEVMODE_COLOR", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_COLOR_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo2_port_name,
+         { "Port Name", "spoolss.spoolss_SetPortInfo2.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_buffer,
+         { "Buffer", "spoolss.spoolss_EnumMonitors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_parameters,
+         { "Parameters", "spoolss.spoolss_PrinterInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_CorePrinterDriver_driver_date,
+         { "Driver Date", "spoolss.spoolss_CorePrinterDriver.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_flags,
+         { "Flags", "spoolss.spoolss_EnumPrinters.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_attributes,
+         { "Attributes", "spoolss.spoolss_SetPrinterInfo2.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumJobs_info,
+         { "Info", "spoolss.__spoolss_EnumJobs.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwChecksum32,
+         { "Dwchecksum32", "spoolss.spoolss_UNIDRVEXTRA500.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReadPrinter_data,
+         { "Data", "spoolss.spoolss_ReadPrinter.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info2,
+         { "Info2", "spoolss.spoolss_DriverInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_version,
+         { "Version", "spoolss.spoolss_DriverInfo5.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_start_time,
+         { "Start Time", "spoolss.spoolss_JobInfo4.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_config_file,
+         { "Config File", "spoolss.spoolss_AddDriverInfo6.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo1_flags,
+         { "Flags", "spoolss.spoolss_AddFormInfo1.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_level,
+         { "Level", "spoolss.spoolss_GetPrinterDriver.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReadPrinter__data_size,
+         { " Data Size", "spoolss.spoolss_ReadPrinter._data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_buffer,
+         { "Buffer", "spoolss.spoolss_EnumPrintProcessors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo2_description,
+         { "Description", "spoolss.spoolss_SetPortInfo2.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorInfo1_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_MonitorInfo1.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo3.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo5_printername,
+         { "Printername", "spoolss.spoolss_PrinterInfo5.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_status,
+         { "Status", "spoolss.spoolss_SetJobInfo4.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_needed,
+         { "Needed", "spoolss._spoolss_EnumPorts.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_offered,
+         { "Offered", "spoolss.spoolss_GetPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY,
+         { "Devmode Displayfrequency", "spoolss.spoolss_DeviceModeFields.DEVMODE_DISPLAYFREQUENCY", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DISPLAYFREQUENCY_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPorts_info,
+         { "Info", "spoolss.__spoolss_EnumPorts.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_environment,
+         { "Environment", "spoolss.spoolss_EnumPrinterDrivers.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_mui_dll,
+         { "Mui Dll", "spoolss.spoolss_FormInfo2.mui_dll", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_driverversion,
+         { "Driverversion", "spoolss.spoolss_DeviceMode.driverversion", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PRINTED,
+         { "Job Status Printed", "spoolss.spoolss_JobStatus.JOB_STATUS_PRINTED", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PRINTED_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI,
+         { "Printer Attribute Enable Bidi", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_ENABLE_BIDI", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_BIDI_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_client_major_version,
+         { "Client Major Version", "spoolss.spoolss_GetPrinterDriver2.client_major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_buffer,
+         { "Buffer", "spoolss._spoolss_EnumJobs.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_DELETING,
+         { "Job Status Deleting", "spoolss.spoolss_JobStatus.JOB_STATUS_DELETING", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_DELETING_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_needed,
+         { "Needed", "spoolss._spoolss_EnumForms.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Notify_type,
+         { "Type", "spoolss.spoolss_Notify.type", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_NotifyType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_port_number,
+         { "Port Number", "spoolss.spoolss_PortData2.port_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_max_spooling,
+         { "Max Spooling", "spoolss.spoolss_PrinterInfo0.max_spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caColorfulness,
+         { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_parameters,
+         { "Parameters", "spoolss.spoolss_JobInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_handle,
+         { "Handle", "spoolss.spoolss_GetForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_print_processor,
+         { "Print Processor", "spoolss.spoolss_JobInfo2.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_last_error,
+         { "Last Error", "spoolss.spoolss_SetPrinterInfo0.last_error", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddDriverInfo4.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_build,
+         { "Build", "spoolss.spoolss_UserLevel3.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_build,
+         { "Build", "spoolss.spoolss_OSVersionEx.build", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL,
+         { "Printer Driver Category Virtual", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_VIRTUAL", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_VIRTUAL_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_servername,
+         { "Servername", "spoolss.spoolss_GetPrinterDriverPackagePath.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_wOEMExtra,
+         { "Woemextra", "spoolss.spoolss_UNIDRVEXTRA500.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverFileInfo_file_type,
+         { "File Type", "spoolss.spoolss_DriverFileInfo.file_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverFileType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_DATA_u_iData,
+         { "Idata", "spoolss.RPC_BIDI_DATA_u.iData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_driver_path,
+         { "Driver Path", "spoolss.spoolss_DriverInfo8.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_XPS,
+         { "Printer Driver Xps", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_XPS", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_XPS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_iDialect,
+         { "Idialect", "spoolss.spoolss_PSDRVEXTRA500.iDialect", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_Dialect_vals), 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_info,
+         { "Info", "spoolss._spoolss_EnumMonitors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterEx_handle,
+         { "Handle", "spoolss.spoolss_AddPrinterEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_status,
+         { "Status", "spoolss.spoolss_JobInfo1.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE,
+         { "Spoolss Port Type Write", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_WRITE", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_WRITE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_secdesc,
+         { "Secdesc", "spoolss.spoolss_JobInfo4.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo1_size,
+         { "Size", "spoolss.spoolss_AddFormInfo1.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_core_driver_dependencies,
+         { " Ndr Size Core Driver Dependencies", "spoolss.spoolss_AddDriverInfo8._ndr_size_core_driver_dependencies", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_server,
+         { "Server", "spoolss._spoolss_EnumPrinterDrivers.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_processor_level,
+         { "Processor Level", "spoolss.spoolss_PrinterInfo0.processor_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_printer_name,
+         { "Printer Name", "spoolss.spoolss_SetJobInfo2.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_count,
+         { "Count", "spoolss._spoolss_EnumMonitors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_pages_printed,
+         { "Pages Printed", "spoolss.spoolss_JobInfo4.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOptionType_fields,
+         { "Fields", "spoolss.spoolss_NotifyOptionType.fields", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX,
+         { "Printer Driver Category Fax", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_FAX", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FAX_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra351,
+         { "Psdrvextra351", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra351", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwX,
+         { "Dwx", "spoolss.spoolss_PSDRVEXTRA500.dwX", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DevmodeContainer_devmode_,
+         { "Subcontext length", "spoolss.spoolss_DevmodeContainer.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_info,
+         { "Info", "spoolss.spoolss_GetPrinter.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyInt32,
+         { "Propertyint32", "spoolss.RPC_PrintPropertyValueUnion.propertyInt32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyData_devmode,
+         { "Devmode", "spoolss.spoolss_NotifyData.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_config_file,
+         { "Config File", "spoolss.spoolss_DriverInfo8.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterDataEx_key_name,
+         { "Key Name", "spoolss.spoolss_SetPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_iPSLevel,
+         { "Ipslevel", "spoolss.spoolss_PSDRVEXTRA500.iPSLevel", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_PSLevel_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_priority,
+         { "Priority", "spoolss.spoolss_PrinterInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo1_area,
+         { "Area", "spoolss.spoolss_AddFormInfo1.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_date,
+         { "Min Inbox Driver Ver Date", "spoolss.spoolss_DriverInfo8.min_inbox_driver_ver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_offered,
+         { "Offered", "spoolss.spoolss_GetPrinterDriver2.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_fxScrAngle,
+         { "Fxscrangle", "spoolss.spoolss_PSDRVEXTRA500.fxScrAngle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwReserved2,
+         { "Dwreserved2", "spoolss.spoolss_PSDRVEXTRA500.dwReserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterEnumValues_value_name,
+         { "Value Name", "spoolss.spoolss_PrinterEnumValues.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_time,
+         { "Time", "spoolss.spoolss_SetPrinterInfo0.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_offered,
+         { "Offered", "spoolss._spoolss_EnumPrinterDrivers.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_file_count,
+         { "File Count", "spoolss.spoolss_DriverInfo101.file_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo7_guid,
+         { "Guid", "spoolss.spoolss_PrinterInfo7.guid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_StringArray__ndr_size,
+         { " Ndr Size", "spoolss.spoolss_StringArray._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyInfo_count,
+         { "Count", "spoolss.spoolss_NotifyInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormArea_left,
+         { "Left", "spoolss.spoolss_FormArea.left", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_iLayout,
+         { "Ilayout", "spoolss.spoolss_PSDRVEXTRA.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetForm_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_SetForm.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo_info1,
+         { "Info1", "spoolss.spoolss_AddFormInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_year,
+         { "Year", "spoolss.spoolss_Time.year", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_servername,
+         { "Servername", "spoolss.spoolss_EnumPorts.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER,
+         { "Spoolss Dm Ps Flags Drv Error Handler", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_DRV_ERROR_HANDLER_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_data_file,
+         { "Data File", "spoolss.spoolss_AddDriverInfo4.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4,
+         { "Printer Enum Icon4", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON4", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON4_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_parameters,
+         { "Parameters", "spoolss.spoolss_JobInfo4.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_info,
+         { "Info", "spoolss._spoolss_EnumPorts.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Version,
+         { "Version", "spoolss.RPC_BIDI_REQUEST_CONTAINER.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info7,
+         { "Info7", "spoolss.spoolss_PrinterInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caContrast,
+         { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA500.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_suite_mask,
+         { "Suite Mask", "spoolss.spoolss_OSVersionEx.suite_mask", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wCutSheet,
+         { "Wcutsheet", "spoolss.spoolss_PSDRVEXTRA.wCutSheet", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinter_handle,
+         { "Handle", "spoolss.spoolss_RouterReplyPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo7_version,
+         { "Version", "spoolss.spoolss_DriverInfo7.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES,
+         { "Apd Copy All Files", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_ALL_FILES", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_ALL_FILES_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_notify_name,
+         { "Notify Name", "spoolss.spoolss_JobInfo4.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrintProcessors_info,
+         { "Info", "spoolss.__spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinterEx_printername,
+         { "Printername", "spoolss.spoolss_OpenPrinterEx.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDataEx_value_name,
+         { "Value Name", "spoolss.spoolss_DeletePrinterDataEx.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_count,
+         { "Count", "spoolss.spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_UNIVERSAL_FONT_ID_Index,
+         { "Index", "spoolss.UNIVERSAL_FONT_ID.Index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_reserved2,
+         { "Reserved2", "spoolss.spoolss_DeviceMode.reserved2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_AddDriverInfo3.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriverEx_delete_flags,
+         { "Delete Flags", "spoolss.spoolss_DeletePrinterDriverEx.delete_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion_major,
+         { "Major", "spoolss.spoolss_OSVersion.major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH,
+         { "Devmode Paperlength", "spoolss.spoolss_DeviceModeFields.DEVMODE_PAPERLENGTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PAPERLENGTH_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyData_string,
+         { "String", "spoolss.spoolss_NotifyData.string", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK,
+         { "Printer Enum Network", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_NETWORK", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_NETWORK_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_level,
+         { "Level", "spoolss._spoolss_EnumMonitors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_global_counter,
+         { "Global Counter", "spoolss.spoolss_SetPrinterInfo0.global_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwFlags,
+         { "Dwflags", "spoolss.spoolss_UNIDRVEXTRA.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo5_portname,
+         { "Portname", "spoolss.spoolss_PrinterInfo5.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormArea_top,
+         { "Top", "spoolss.spoolss_FormArea.top", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_printer_name,
+         { "Printer Name", "spoolss.spoolss_SetJobInfo1.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_untiltime,
+         { "Untiltime", "spoolss.spoolss_PrinterInfo2.untiltime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterDataEx_type,
+         { "Type", "spoolss.spoolss_SetPrinterDataEx.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caGreenGamma,
+         { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA351.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPorts_count,
+         { "Count", "spoolss.__spoolss_EnumPorts.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_needed,
+         { "Needed", "spoolss.spoolss_EnumPrinters.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER,
+         { "Printer Change Add Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormArea_right,
+         { "Right", "spoolss.spoolss_FormArea.right", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_hour,
+         { "Hour", "spoolss.spoolss_Time.hour", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED,
+         { "Printer Attribute Shared", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_SHARED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_SHARED_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_free_build,
+         { "Free Build", "spoolss.spoolss_SetPrinterInfo0.free_build", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_Build_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DevmodeContainer__ndr_size,
+         { " Ndr Size", "spoolss.spoolss_DevmodeContainer._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddMonitorInfo2_dll_name,
+         { "Dll Name", "spoolss.spoolss_AddMonitorInfo2.dll_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_pages_printed,
+         { "Pages Printed", "spoolss.spoolss_JobInfo2.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_driver_name,
+         { "Driver Name", "spoolss.spoolss_JobInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_iDialect,
+         { "Idialect", "spoolss.spoolss_PSDRVEXTRA.iDialect", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_Dialect_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_time,
+         { "Time", "spoolss.spoolss_JobInfo4.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER,
+         { "Printer Change Set Printer Driver", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_PRINTER_DRIVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_DRIVER_tfs), ( 0x20000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_form_name,
+         { "Form Name", "spoolss.spoolss_GetForm.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caReferenceBlack,
+         { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA351.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info1,
+         { "Info1", "spoolss.spoolss_PrinterInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_logpixels,
+         { "Logpixels", "spoolss.spoolss_DeviceMode.logpixels", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_AddDriverInfo3.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePort_ptr,
+         { "Ptr", "spoolss.spoolss_DeletePort.ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterEnumValues_data_length,
+         { "Data Length", "spoolss.spoolss_PrinterEnumValues.data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_DATA_pSchema,
+         { "Pschema", "spoolss.RPC_BIDI_REQUEST_DATA.pSchema", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_version,
+         { "Version", "spoolss.spoolss_AddDriverInfo3.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_PAPEROUT,
+         { "Job Status Paperout", "spoolss.spoolss_JobStatus.JOB_STATUS_PAPEROUT", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_PAPEROUT_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfoCtr_info,
+         { "Info", "spoolss.spoolss_AddDriverInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_READ,
+         { "Spoolss Port Type Read", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_READ", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_READ_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_comment,
+         { "Comment", "spoolss.spoolss_SetPrinterInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_max_spooling,
+         { "Max Spooling", "spoolss.spoolss_SetPrinterInfo0.max_spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_snmp_dev_index,
+         { "Snmp Dev Index", "spoolss.spoolss_PortData2.snmp_dev_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo4_printername,
+         { "Printername", "spoolss.spoolss_PrinterInfo4.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo101.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE,
+         { "Printer Enum Favorite", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_FAVORITE", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_FAVORITE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_info,
+         { "Info", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_total_pages,
+         { "Total Pages", "spoolss.spoolss_JobInfo4.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_print_processor_name,
+         { "Print Processor Name", "spoolss._spoolss_EnumPrintProcDataTypes.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReadPrinter_data_size,
+         { "Data Size", "spoolss.spoolss_ReadPrinter.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_info,
+         { "Info", "spoolss.spoolss_EnumPrintProcDataTypes.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION,
+         { "Dpd Delete Specific Version", "spoolss.spoolss_DeleteDriverFlags.DPD_DELETE_SPECIFIC_VERSION", FT_BOOLEAN, 32, TFS(&spoolss_DeleteDriverFlags_DPD_DELETE_SPECIFIC_VERSION_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_driver_path,
+         { "Driver Path", "spoolss.spoolss_AddDriverInfo6.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo_info2,
+         { "Info2", "spoolss.spoolss_AddFormInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_printername,
+         { "Printername", "spoolss.spoolss_SetPrinterInfo2.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_in_data,
+         { "In Data", "spoolss.spoolss_XcvData.in_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Notify_data,
+         { "Data", "spoolss.spoolss_Notify.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_YRESOLUTION,
+         { "Devmode Yresolution", "spoolss.spoolss_DeviceModeFields.DEVMODE_YRESOLUTION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_YRESOLUTION_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_ScheduleJob_jobid,
+         { "Jobid", "spoolss.spoolss_ScheduleJob.jobid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_change_id,
+         { "Change Id", "spoolss.spoolss_PrinterInfo0.change_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwReserved3,
+         { "Dwreserved3", "spoolss.spoolss_PSDRVEXTRA.dwReserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwHeightOffset,
+         { "Dwheightoffset", "spoolss.spoolss_PSDRVEXTRA500.dwHeightOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_ressource_id,
+         { "Ressource Id", "spoolss.spoolss_FormInfo2.ressource_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_required,
+         { "Required", "spoolss.spoolss_GetPrinterDriverPackagePath.required", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriverEx_driver,
+         { "Driver", "spoolss.spoolss_DeletePrinterDriverEx.driver", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_handle,
+         { "Handle", "spoolss.spoolss_GetPrinterDriver2.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_secdesc,
+         { "Secdesc", "spoolss.spoolss_PrinterInfo2.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetCorePrinterDrivers_architecture,
+         { "Architecture", "spoolss.spoolss_GetCorePrinterDrivers.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinter_handle,
+         { "Handle", "spoolss.spoolss_AddPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL,
+         { "Printer Status Output Bin Full", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_OUTPUT_BIN_FULL", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_OUTPUT_BIN_FULL_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_driver_date,
+         { "Driver Date", "spoolss.spoolss_AddDriverInfo8.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterDataEx_offered,
+         { "Offered", "spoolss.spoolss_SetPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8,
+         { "Printer Enum Icon8", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON8", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON8_tfs), ( 0x00800000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS,
+         { "Printer Attribute Ts", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_TS", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_TS_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_REPUBLISH,
+         { "Dsprint Republish", "spoolss.spoolss_DsPrintAction.DSPRINT_REPUBLISH", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_REPUBLISH_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caRedGreenTint,
+         { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA351.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_area,
+         { "Area", "spoolss.spoolss_FormInfo2.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyOpenPrinter_bufsize,
+         { "Bufsize", "spoolss.spoolss_ReplyOpenPrinter.bufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_server_major_version,
+         { "Server Major Version", "spoolss.spoolss_GetPrinterDriver2.server_major_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcDataTypes_print_processor_name,
+         { "Print Processor Name", "spoolss.spoolss_EnumPrintProcDataTypes.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo1_description,
+         { "Description", "spoolss.spoolss_PrinterInfo1.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_DriverInfo6.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ScheduleJob_handle,
+         { "Handle", "spoolss.spoolss_ScheduleJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COPIES,
+         { "Devmode Copies", "spoolss.spoolss_DeviceModeFields.DEVMODE_COPIES", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_COPIES_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caBlueGamma,
+         { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA400.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA3_4_wReserved,
+         { "Wreserved", "spoolss.spoolss_UNIDRVEXTRA3_4.wReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinter_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_AddPrinter.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra3_4,
+         { "Unidrvextra3 4", "spoolss.spoolss_DeviceModeExtraDataUniDriver.unidrvextra3_4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterData_value,
+         { "Value", "spoolss.spoolss_PrinterData.value", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_inf_path,
+         { "Inf Path", "spoolss.spoolss_AddDriverInfo8.inf_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_wCoreJTExpSize,
+         { "Wcorejtexpsize", "spoolss.spoolss_UNIDRVEXTRA.wCoreJTExpSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_help_file,
+         { "Help File", "spoolss.spoolss_DriverInfo8.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_DATA_data,
+         { "Data", "spoolss.RPC_BIDI_RESPONSE_DATA.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_needed,
+         { "Needed", "spoolss.spoolss_EnumMonitors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_fxScrFreq,
+         { "Fxscrfreq", "spoolss.spoolss_PSDRVEXTRA.fxScrFreq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo5_device_not_selected_timeout,
+         { "Device Not Selected Timeout", "spoolss.spoolss_PrinterInfo5.device_not_selected_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeInfo_devmode,
+         { "Devmode", "spoolss.spoolss_DeviceModeInfo.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion_extra_string,
+         { "Extra String", "spoolss.spoolss_OSVersion.extra_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_SCALE,
+         { "Devmode Scale", "spoolss.spoolss_DeviceModeFields.DEVMODE_SCALE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_SCALE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo3_severity,
+         { "Severity", "spoolss.spoolss_SetPortInfo3.severity", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortSeverity_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_wchEPSFile,
+         { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_previous_names,
+         { "Previous Names", "spoolss.spoolss_DriverInfo101.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo_info1,
+         { "Info1", "spoolss.spoolss_SetPortInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrintProcessor_print_processor_name,
+         { "Print Processor Name", "spoolss.spoolss_AddPrintProcessor.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_reserved3,
+         { "Reserved3", "spoolss.spoolss_SetPrinterInfo0.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info8,
+         { "Info8", "spoolss.spoolss_DriverInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_drivername,
+         { "Drivername", "spoolss.spoolss_PrinterInfo2.drivername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_flags,
+         { "Flags", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caGreenGamma,
+         { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_DriverInfo101.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPerMachineConnection_server,
+         { "Server", "spoolss.spoolss_AddPerMachineConnection.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddForm_handle,
+         { "Handle", "spoolss.spoolss_AddForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_dithertype,
+         { "Dithertype", "spoolss.spoolss_DeviceMode.dithertype", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeDitherType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_print_processor,
+         { "Print Processor", "spoolss.spoolss_SetJobInfo2.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_needed,
+         { "Needed", "spoolss.spoolss_GetPrinterDriver.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo6_status,
+         { "Status", "spoolss.spoolss_PrinterInfo6.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_DATA_u,
+         { "U", "spoolss.RPC_BIDI_DATA.u", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BINARY_CONTAINER_pszString,
+         { "Pszstring", "spoolss.RPC_BINARY_CONTAINER.pszString", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriverEx_version,
+         { "Version", "spoolss.spoolss_DeletePrinterDriverEx.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_needed,
+         { "Needed", "spoolss.spoolss_EnumJobs.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDataEx_key_name,
+         { "Key Name", "spoolss._spoolss_EnumPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorInfo2_environment,
+         { "Environment", "spoolss.spoolss_MonitorInfo2.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_data_file,
+         { "Data File", "spoolss.spoolss_DriverInfo3.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL,
+         { "Printer Attribute Local", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_LOCAL", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_LOCAL_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_CorePrinterDriver_formname,
+         { "Formname", "spoolss.spoolss_CorePrinterDriver.formname", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_count,
+         { "Count", "spoolss._spoolss_EnumPrintProcDataTypes.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPortEx_port_ctr,
+         { "Port Ctr", "spoolss.spoolss_AddPortEx.port_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverPackagePath_package_id,
+         { "Package Id", "spoolss.spoolss_GetPrinterDriverPackagePath.package_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_info,
+         { "Info", "spoolss.spoolss_GetForm.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_TimeCtr_size,
+         { "Size", "spoolss.spoolss_TimeCtr.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_iQuality,
+         { "Iquality", "spoolss.spoolss_UNIDRVEXTRA.iQuality", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMUNI_Quality_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info8,
+         { "Info8", "spoolss.spoolss_SetPrinterInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterEnumValues_value_name_len,
+         { "Value Name Len", "spoolss.spoolss_PrinterEnumValues.value_name_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDrivers_info,
+         { "Info", "spoolss._spoolss_EnumPrinterDrivers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrintProcessorDirectoryInfo_info1,
+         { "Info1", "spoolss.spoolss_PrintProcessorDirectoryInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumForms_info,
+         { "Info", "spoolss.__spoolss_EnumForms.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterDataEx_handle,
+         { "Handle", "spoolss.spoolss_SetPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_major,
+         { "Major", "spoolss.spoolss_UserLevel1.major", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MajorVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyInfo_notifies,
+         { "Notifies", "spoolss.spoolss_NotifyInfo.notifies", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caBlueGamma,
+         { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA351.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPort_port_name,
+         { "Port Name", "spoolss.spoolss_SetPort.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_submitted,
+         { "Submitted", "spoolss.spoolss_SetJobInfo1.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_manufacturer_name,
+         { "Manufacturer Name", "spoolss.spoolss_AddDriverInfo6.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_StartPagePrinter_handle,
+         { "Handle", "spoolss.spoolss_StartPagePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_reserved,
+         { "Reserved", "spoolss.spoolss_OSVersionEx.reserved", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_secdesc_ptr,
+         { "Secdesc Ptr", "spoolss.spoolss_SetPrinterInfo2.secdesc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx__ndr_size,
+         { " Ndr Size", "spoolss.spoolss_OSVersionEx._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinterEx_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_OpenPrinterEx.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_driver_path,
+         { "Driver Path", "spoolss.spoolss_DriverInfo6.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_architecture,
+         { "Architecture", "spoolss.spoolss_AddDriverInfo3.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_info,
+         { "Info", "spoolss._spoolss_EnumForms.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3_help_file,
+         { "Help File", "spoolss.spoolss_AddDriverInfo3.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSendRecvBidiData_pAction,
+         { "Paction", "spoolss.spoolss_RpcSendRecvBidiData.pAction", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriver_servername,
+         { "Servername", "spoolss.spoolss_AddPrinterDriver.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_job_id,
+         { "Job Id", "spoolss.spoolss_GetJob.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_portname,
+         { "Portname", "spoolss.spoolss_PrinterInfo2.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_provider,
+         { "Provider", "spoolss.spoolss_DriverInfo8.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel2_not_used,
+         { "Not Used", "spoolss.spoolss_UserLevel2.not_used", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOption_types,
+         { "Types", "spoolss.spoolss_NotifyOption.types", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_CorePrinterDriver_core_driver_guid,
+         { "Core Driver Guid", "spoolss.spoolss_CorePrinterDriver.core_driver_guid", FT_GUID, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_version,
+         { "Version", "spoolss.spoolss_DriverInfo8.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_paperwidth,
+         { "Paperwidth", "spoolss.spoolss_DeviceMode.paperwidth", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_wJTHdrSize,
+         { "Wjthdrsize", "spoolss.spoolss_JTEXP.wJTHdrSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_version,
+         { "Version", "spoolss.spoolss_DriverInfo4.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_size_high,
+         { "Size High", "spoolss.spoolss_SetJobInfo4.size_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE,
+         { "Apd Strict Upgrade", "spoolss.spoolss_AddPrinterDriverExFlags.APD_STRICT_UPGRADE", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_STRICT_UPGRADE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyClosePrinter_handle,
+         { "Handle", "spoolss.spoolss_ReplyClosePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrintProcessor_server,
+         { "Server", "spoolss.spoolss_AddPrintProcessor.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_UNPUBLISH,
+         { "Dsprint Unpublish", "spoolss.spoolss_DsPrintAction.DSPRINT_UNPUBLISH", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_UNPUBLISH_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_DriverInfo8.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_devicename,
+         { "Devicename", "spoolss.spoolss_DeviceMode.devicename", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo8.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_document_name,
+         { "Document Name", "spoolss.spoolss_SetJobInfo4.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caIlluminantIndex,
+         { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_server_name,
+         { "Server Name", "spoolss.spoolss_JobInfo2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJob_ctr,
+         { "Ctr", "spoolss.spoolss_SetJob.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_driver_date,
+         { "Driver Date", "spoolss.spoolss_AddDriverInfo6.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER,
+         { "Printer Enum Container", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_CONTAINER", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_CONTAINER_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_processor,
+         { "Processor", "spoolss.spoolss_UserLevel1.processor", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo4_servername,
+         { "Servername", "spoolss.spoolss_PrinterInfo4.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcDeleteJobNamedProperty_pszName,
+         { "Pszname", "spoolss.spoolss_RpcDeleteJobNamedProperty.pszName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPorts_servername,
+         { "Servername", "spoolss._spoolss_EnumPorts.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP,
+         { "Spoolss Dm Ps Flags Compress Bitmap", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_COMPRESS_BITMAP_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_needed,
+         { "Needed", "spoolss.spoolss_GetJob.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_reserved,
+         { "Reserved", "spoolss.spoolss_PortData1.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_status,
+         { "Status", "spoolss.spoolss_SetJobInfo1.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_buffer,
+         { "Buffer", "spoolss.spoolss_GetPrinterDriver.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_driver_version,
+         { "Driver Version", "spoolss.spoolss_DriverInfo8.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo3_sec_desc_ptr,
+         { "Sec Desc Ptr", "spoolss.spoolss_SetPrinterInfo3.sec_desc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterData_offered,
+         { "Offered", "spoolss.spoolss_SetPrinterData.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_BUSY,
+         { "Printer Status Busy", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_BUSY", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_BUSY_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK,
+         { "Printer Attribute Network", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_NETWORK", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_NETWORK_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_DriverInfo6.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormSize_height,
+         { "Height", "spoolss.spoolss_FormSize.height", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_dblspool,
+         { "Dblspool", "spoolss.spoolss_PortData2.dblspool", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrintProcessorInfo1_print_processor_name,
+         { "Print Processor Name", "spoolss.spoolss_PrintProcessorInfo1.print_processor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo4_attributes,
+         { "Attributes", "spoolss.spoolss_SetPrinterInfo4.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_config_file,
+         { "Config File", "spoolss.spoolss_DriverInfo3.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_vendor_setup,
+         { "Vendor Setup", "spoolss.spoolss_DriverInfo8.vendor_setup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM,
+         { "Printer Status Paper Jam", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAPER_JAM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAPER_JAM_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EndDocPrinter_handle,
+         { "Handle", "spoolss.spoolss_EndDocPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSendRecvBidiData_hPrinter,
+         { "Hprinter", "spoolss.spoolss_RpcSendRecvBidiData.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_level,
+         { "Level", "spoolss.spoolss_EnumMonitors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY,
+         { "Apd Copy From Directory", "spoolss.spoolss_AddPrinterDriverExFlags.APD_COPY_FROM_DIRECTORY", FT_BOOLEAN, 32, TFS(&spoolss_AddPrinterDriverExFlags_APD_COPY_FROM_DIRECTORY_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER,
+         { "Printer Access Administer", "spoolss.spoolss_AccessRights.PRINTER_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_PRINTER_ACCESS_ADMINISTER_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_wchEPSFile,
+         { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA400.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_keyword,
+         { "Keyword", "spoolss.spoolss_AddFormInfo2.keyword", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_DriverInfo4.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DocumentInfo1_datatype,
+         { "Datatype", "spoolss.spoolss_DocumentInfo1.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo5.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSetJobNamedProperty_hPrinter,
+         { "Hprinter", "spoolss.spoolss_RpcSetJobNamedProperty.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrintProcessor_architecture,
+         { "Architecture", "spoolss.spoolss_AddPrintProcessor.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel_level3,
+         { "Level3", "spoolss.spoolss_UserLevel.level3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING,
+         { "Printer Status Processing", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PROCESSING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PROCESSING_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_snmp_enabled,
+         { "Snmp Enabled", "spoolss.spoolss_PortData2.snmp_enabled", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OEM_DMEXTRA_Data,
+         { "Data", "spoolss.spoolss_OEM_DMEXTRA.Data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDataEx_handle,
+         { "Handle", "spoolss._spoolss_EnumPrinterDataEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT,
+         { "Printer Status Paper Out", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAPER_OUT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAPER_OUT_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo1_area,
+         { "Area", "spoolss.spoolss_FormInfo1.area", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyByte,
+         { "Propertybyte", "spoolss.RPC_PrintPropertyValueUnion.propertyByte", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_protocol,
+         { "Protocol", "spoolss.spoolss_PortData2.protocol", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_PortProtocol_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wOEMExtra,
+         { "Woemextra", "spoolss.spoolss_PSDRVEXTRA500.wOEMExtra", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caReferenceWhite,
+         { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_attributes,
+         { "Attributes", "spoolss.spoolss_PrinterInfo2.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinterEx_flags,
+         { "Flags", "spoolss.spoolss_RouterReplyPrinterEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddJob_buffer,
+         { "Buffer", "spoolss.spoolss_AddJob.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caSize,
+         { "Casize", "spoolss.spoolss_PSDRVEXTRA.caSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddJob_offered,
+         { "Offered", "spoolss.spoolss_AddJob.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_needed,
+         { "Needed", "spoolss.spoolss_GetPrinterDriverDirectory.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caBrightness,
+         { "Cabrightness", "spoolss.spoolss_PSDRVEXTRA400.caBrightness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND,
+         { "Printer Enum Expand", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_EXPAND", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_EXPAND_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra,
+         { "Psdrvextra", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_dwVersion,
+         { "Dwversion", "spoolss.spoolss_JTEXP.dwVersion", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_user,
+         { "User", "spoolss.spoolss_UserLevel1.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_needed,
+         { "Needed", "spoolss._spoolss_EnumMonitors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJob_handle,
+         { "Handle", "spoolss.spoolss_SetJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_total_pages,
+         { "Total Pages", "spoolss.spoolss_JobInfo1.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_priority,
+         { "Priority", "spoolss.spoolss_SetPrinterInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_data_type,
+         { "Data Type", "spoolss.spoolss_SetJobInfo1.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey_key_name,
+         { "Key Name", "spoolss.spoolss_EnumPrinterKey.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info3,
+         { "Info3", "spoolss.spoolss_PrinterInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_printer_name,
+         { "Printer Name", "spoolss.spoolss_JobInfo1.printer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_start_time,
+         { "Start Time", "spoolss.spoolss_SetJobInfo4.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo_info4,
+         { "Info4", "spoolss.spoolss_AddDriverInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_notify_options,
+         { "Notify Options", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.notify_options", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAUSED,
+         { "Printer Status Paused", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAUSED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAUSED_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_fields,
+         { "Fields", "spoolss.spoolss_DeviceMode.fields", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Version,
+         { "Version", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.Version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey_needed,
+         { "Needed", "spoolss.spoolss_EnumPrinterKey.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_servername,
+         { "Servername", "spoolss.spoolss_PrinterInfo0.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_wReserved,
+         { "Wreserved", "spoolss.spoolss_UNIDRVEXTRA500.wReserved", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_job_error,
+         { "Job Error", "spoolss.spoolss_SetPrinterInfo0.job_error", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info1,
+         { "Info1", "spoolss.spoolss_DriverInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_StartDocPrinter_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_StartDocPrinter.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorUi_dll_name,
+         { "Dll Name", "spoolss.spoolss_MonitorUi.dll_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_position,
+         { "Position", "spoolss.spoolss_JobInfo1.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_data_file,
+         { "Data File", "spoolss.spoolss_AddDriverInfo6.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BINARY_CONTAINER_cbBuf,
+         { "Cbbuf", "spoolss.RPC_BINARY_CONTAINER.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_MEDIATYPE,
+         { "Devmode Mediatype", "spoolss.spoolss_DeviceModeFields.DEVMODE_MEDIATYPE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_MEDIATYPE_tfs), ( 0x02000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_total_jobs,
+         { "Total Jobs", "spoolss.spoolss_SetPrinterInfo0.total_jobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_datatype,
+         { "Datatype", "spoolss.spoolss_PrinterInfo2.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_PUBLISH,
+         { "Dsprint Publish", "spoolss.spoolss_DsPrintAction.DSPRINT_PUBLISH", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_PUBLISH_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfoContainer_info,
+         { "Info", "spoolss.spoolss_JobInfoContainer.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData_needed,
+         { "Needed", "spoolss.spoolss_XcvData.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_position,
+         { "Position", "spoolss.spoolss_SetJobInfo1.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_notify_name,
+         { "Notify Name", "spoolss.spoolss_SetJobInfo4.notify_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_needed,
+         { "Needed", "spoolss.spoolss_GetPrinterDataEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriver_driver,
+         { "Driver", "spoolss.spoolss_DeletePrinterDriver.driver", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra500,
+         { "Unidrvextra500", "spoolss.spoolss_DeviceModeExtraDataUniDriver.unidrvextra500", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caReferenceBlack,
+         { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPort_unknown,
+         { "Unknown", "spoolss.spoolss_AddPort.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo5.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo2_driver_path,
+         { "Driver Path", "spoolss.spoolss_AddDriverInfo2.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OEM_DMEXTRA_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_OEM_DMEXTRA.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_manufacturer_url,
+         { "Manufacturer Url", "spoolss.spoolss_AddDriverInfo6.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverFileInfo_file_name,
+         { "File Name", "spoolss.spoolss_DriverFileInfo.file_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_UNIVERSAL_FONT_ID_Checksum,
+         { "Checksum", "spoolss.UNIVERSAL_FONT_ID.Checksum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION,
+         { "Printer Status Pending Deletion", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PENDING_DELETION", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PENDING_DELETION_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumForms_level,
+         { "Level", "spoolss.__spoolss_EnumForms.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinterDataEx_info,
+         { "Info", "spoolss.__spoolss_EnumPrinterDataEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_extra_string_,
+         { "Subcontext length", "spoolss.spoolss_OSVersionEx.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info7,
+         { "Info7", "spoolss.spoolss_SetPrinterInfo.info7", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_DriverInfo6.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersion__ndr_size,
+         { " Ndr Size", "spoolss.spoolss_OSVersion._ndr_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_hardware_id,
+         { "Hardware Id", "spoolss.spoolss_DriverInfo8.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_handle,
+         { "Handle", "spoolss.spoolss_EnumJobs.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info6,
+         { "Info6", "spoolss.spoolss_DriverInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey_handle,
+         { "Handle", "spoolss.spoolss_EnumPrinterKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo_infoFF,
+         { "Infoff", "spoolss.spoolss_SetPortInfo.infoFF", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6__ndr_size_dependent_files,
+         { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo6._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_offered,
+         { "Offered", "spoolss.spoolss_GetPrinterDriver.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinter_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_OpenPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_driverextra_data_,
+         { "Subcontext length", "spoolss.spoolss_DeviceMode.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW,
+         { "Printer Status Toner Low", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_TONER_LOW", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_TONER_LOW_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_reserved3,
+         { "Reserved3", "spoolss.spoolss_PrinterInfo0.reserved3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinterDataEx_info,
+         { "Info", "spoolss._spoolss_EnumPrinterDataEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPortEx_servername,
+         { "Servername", "spoolss.spoolss_AddPortEx.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_fxScrAngle,
+         { "Fxscrangle", "spoolss.spoolss_PSDRVEXTRA.fxScrAngle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info8,
+         { "Info8", "spoolss.spoolss_PrinterInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_manufacturer_url,
+         { "Manufacturer Url", "spoolss.spoolss_DriverInfo8.manufacturer_url", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_unidrvextra,
+         { "Unidrvextra", "spoolss.spoolss_DeviceModeExtraDataUniDriver.unidrvextra", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_position,
+         { "Position", "spoolss.spoolss_JobInfo4.position", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_handle,
+         { "Handle", "spoolss._spoolss_EnumJobs.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_defaultpriority,
+         { "Defaultpriority", "spoolss.spoolss_PrinterInfo2.defaultpriority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo7_action,
+         { "Action", "spoolss.spoolss_SetPrinterInfo7.action", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterData_data,
+         { "Data", "spoolss.spoolss_PrinterData.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AbortPrinter_handle,
+         { "Handle", "spoolss.spoolss_AbortPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_DATA_u_bData,
+         { "Bdata", "spoolss.RPC_BIDI_DATA_u.bData", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo1_flags,
+         { "Flags", "spoolss.spoolss_FormInfo1.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_portname,
+         { "Portname", "spoolss.spoolss_PortData1.portname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_starttime,
+         { "Starttime", "spoolss.spoolss_SetPrinterInfo2.starttime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_icmmethod,
+         { "Icmmethod", "spoolss.spoolss_DeviceMode.icmmethod", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeICMMethod_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_provider,
+         { "Provider", "spoolss.spoolss_AddDriverInfo8.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caColorfulness,
+         { "Cacolorfulness", "spoolss.spoolss_PSDRVEXTRA500.caColorfulness", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorContainer_level,
+         { "Level", "spoolss.spoolss_MonitorContainer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSetJobNamedProperty_pProperty,
+         { "Pproperty", "spoolss.spoolss_RpcSetJobNamedProperty.pProperty", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPortEx_port_var_ctr,
+         { "Port Var Ctr", "spoolss.spoolss_AddPortEx.port_var_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT,
+         { "Printer Status Page Punt", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAGE_PUNT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAGE_PUNT_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_version,
+         { "Version", "spoolss.spoolss_AddDriverInfo6.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_minor,
+         { "Minor", "spoolss.spoolss_OSVersionEx.minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_aData,
+         { "Adata", "spoolss.RPC_BIDI_REQUEST_CONTAINER.aData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wVer,
+         { "Wver", "spoolss.spoolss_PSDRVEXTRA500.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_AddDriverInfo6.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_mediatype,
+         { "Mediatype", "spoolss.spoolss_DeviceMode.mediatype", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeMediaType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo4_servername,
+         { "Servername", "spoolss.spoolss_SetPrinterInfo4.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_wOptions,
+         { "Woptions", "spoolss.spoolss_PSDRVEXTRA400.wOptions", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverEx_flags,
+         { "Flags", "spoolss.spoolss_AddPrinterDriverEx.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinter_bufsize,
+         { "Bufsize", "spoolss.spoolss_RouterReplyPrinter.bufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfoFF_port_name,
+         { "Port Name", "spoolss.spoolss_SetPortInfoFF.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPerMachineConnection_provider,
+         { "Provider", "spoolss.spoolss_AddPerMachineConnection.provider", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel_level1,
+         { "Level1", "spoolss.spoolss_UserLevel.level1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AccessRights_JOB_ACCESS_ADMINISTER,
+         { "Job Access Administer", "spoolss.spoolss_AccessRights.JOB_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_JOB_ACCESS_ADMINISTER_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DITHERTYPE,
+         { "Devmode Dithertype", "spoolss.spoolss_DeviceModeFields.DEVMODE_DITHERTYPE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DITHERTYPE_tfs), ( 0x04000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR,
+         { "Printer Change Delete Print Processor", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PRINT_PROCESSOR_tfs), ( 0x04000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4__secdesc_ptr,
+         { " Secdesc Ptr", "spoolss.spoolss_SetJobInfo4._secdesc_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH,
+         { "Devmode Panningwidth", "spoolss.spoolss_DeviceModeFields.DEVMODE_PANNINGWIDTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PANNINGWIDTH_tfs), ( 0x08000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo_info3,
+         { "Info3", "spoolss.spoolss_SetPortInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_total_bytes,
+         { "Total Bytes", "spoolss.spoolss_PrinterInfo0.total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_driver_name,
+         { "Driver Name", "spoolss.spoolss_SetJobInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_pIn,
+         { "Pin", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.pIn", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_version,
+         { "Version", "spoolss.spoolss_AddDriverInfo8.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_port_number,
+         { "Port Number", "spoolss.spoolss_PortData1.port_number", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinter_secdesc_ctr,
+         { "Secdesc Ctr", "spoolss.spoolss_SetPrinter.secdesc_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_priority,
+         { "Priority", "spoolss.spoolss_SetJobInfo4.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwFlags,
+         { "Dwflags", "spoolss.spoolss_PSDRVEXTRA.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6__ndr_size_previous_names,
+         { " Ndr Size Previous Names", "spoolss.spoolss_AddDriverInfo6._ndr_size_previous_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_options,
+         { "Options", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.options", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_minor,
+         { "Minor", "spoolss.spoolss_UserLevel3.minor", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_MinorVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH,
+         { "Devmode Paperwidth", "spoolss.spoolss_DeviceModeFields.DEVMODE_PAPERWIDTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PAPERWIDTH_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_driver_path,
+         { "Driver Path", "spoolss.spoolss_DriverInfo4.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN,
+         { "Printer Attribute Hidden", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_HIDDEN", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_HIDDEN_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_untiltime,
+         { "Untiltime", "spoolss.spoolss_SetPrinterInfo2.untiltime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_total_bytes,
+         { "Total Bytes", "spoolss.spoolss_SetPrinterInfo0.total_bytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_needed,
+         { "Needed", "spoolss.spoolss_EnumPrintProcessors.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfoContainer_info,
+         { "Info", "spoolss.spoolss_SetPortInfoContainer.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriverEx_server,
+         { "Server", "spoolss.spoolss_DeletePrinterDriverEx.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_AddDriverInfo8.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_num_error_not_ready,
+         { "Num Error Not Ready", "spoolss.spoolss_SetPrinterInfo0.num_error_not_ready", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caContrast,
+         { "Cacontrast", "spoolss.spoolss_PSDRVEXTRA.caContrast", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA351.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo1_comment,
+         { "Comment", "spoolss.spoolss_PrinterInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo5_printername,
+         { "Printername", "spoolss.spoolss_SetPrinterInfo5.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDataEx_offered,
+         { "Offered", "spoolss.spoolss_EnumPrinterDataEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE,
+         { "Spoolss Dm Ps Flags Print Negative", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_NEGATIVE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_FindClosePrinterNotify_handle,
+         { "Handle", "spoolss.spoolss_FindClosePrinterNotify.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info1,
+         { "Info1", "spoolss.spoolss_SetPrinterInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo2_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_handle,
+         { "Handle", "spoolss.spoolss_EnumForms.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_document_name,
+         { "Document Name", "spoolss.spoolss_JobInfo2.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_global_counter,
+         { "Global Counter", "spoolss.spoolss_PrinterInfo0.global_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_size,
+         { "Size", "spoolss.spoolss_SetJobInfo2.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_devmode_,
+         { "Subcontext length", "spoolss.spoolss_JobInfo2.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo1_port_name,
+         { "Port Name", "spoolss.spoolss_SetPortInfo1.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_processor_level,
+         { "Processor Level", "spoolss.spoolss_SetPrinterInfo0.processor_level", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinterEx_datatype,
+         { "Datatype", "spoolss.spoolss_OpenPrinterEx.datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL,
+         { "Printer Enum Local", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_LOCAL", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_LOCAL_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS,
+         { "Devmode Displayflags", "spoolss.spoolss_DeviceModeFields.DEVMODE_DISPLAYFLAGS", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DISPLAYFLAGS_tfs), ( 0x00200000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo1_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo1.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM,
+         { "Printer Change Set Form", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_FORM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_FORM_tfs), ( 0x00020000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPort_port_ctr,
+         { "Port Ctr", "spoolss.spoolss_SetPort.port_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterEx_secdesc_ctr,
+         { "Secdesc Ctr", "spoolss.spoolss_AddPrinterEx.secdesc_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_snmp_dev_index,
+         { "Snmp Dev Index", "spoolss.spoolss_PortData1.snmp_dev_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE,
+         { "Spoolss Form String Type None", "spoolss.spoolss_FormStringType.SPOOLSS_FORM_STRING_TYPE_NONE", FT_BOOLEAN, 32, TFS(&spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_NONE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_level,
+         { "Level", "spoolss.spoolss_EnumPrintProcessors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_default_datatype,
+         { "Default Datatype", "spoolss.spoolss_DriverInfo8.default_datatype", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo2_reserved,
+         { "Reserved", "spoolss.spoolss_PortInfo2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_propertyBlob_cbBuf,
+         { "Cbbuf", "spoolss.propertyBlob.cbBuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_enumerate_network_printers,
+         { "Enumerate Network Printers", "spoolss.spoolss_PrinterInfo0.enumerate_network_printers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_needed,
+         { "Needed", "spoolss.spoolss_GetPrinter.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo_info4,
+         { "Info4", "spoolss.spoolss_JobInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info5,
+         { "Info5", "spoolss.spoolss_DriverInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_job_id,
+         { "Job Id", "spoolss.spoolss_JobInfo1.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_FORMNAME,
+         { "Devmode Formname", "spoolss.spoolss_DeviceModeFields.DEVMODE_FORMNAME", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_FORMNAME_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_level,
+         { "Level", "spoolss._spoolss_EnumPrinters.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwBookletFlags,
+         { "Dwbookletflags", "spoolss.spoolss_PSDRVEXTRA.dwBookletFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_BookletFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wSize,
+         { "Wsize", "spoolss.spoolss_PSDRVEXTRA500.wSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorInfo2_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_MonitorInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_StartDocPrinter_handle,
+         { "Handle", "spoolss.spoolss_StartDocPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_job_id,
+         { "Job Id", "spoolss.spoolss_SetJobInfo2.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_options,
+         { "Options", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.options", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo_info3,
+         { "Info3", "spoolss.spoolss_PortInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_DATA_u_biData,
+         { "Bidata", "spoolss.RPC_BIDI_DATA_u.biData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_UNIDRVEXTRA.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceBlack,
+         { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA500.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_server,
+         { "Server", "spoolss.spoolss_EnumPrinterDrivers.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR,
+         { "Spoolss Dm Ps Flags Print Mirror", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_PRINT_MIRROR_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOptionType_count,
+         { "Count", "spoolss.spoolss_NotifyOptionType.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_driver_path,
+         { "Driver Path", "spoolss.spoolss_DriverInfo3.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_level,
+         { "Level", "spoolss.spoolss_GetPrinterDriverDirectory.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinter_printername,
+         { "Printername", "spoolss.spoolss_OpenPrinter.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_total_pages,
+         { "Total Pages", "spoolss.spoolss_SetPrinterInfo0.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_driver_version,
+         { "Driver Version", "spoolss.spoolss_AddDriverInfo5.driver_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_cjobs,
+         { "Cjobs", "spoolss.spoolss_PrinterInfo0.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PAPERSIZE,
+         { "Devmode Papersize", "spoolss.spoolss_DeviceModeFields.DEVMODE_PAPERSIZE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PAPERSIZE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterKey_key_buffer_,
+         { "Subcontext length", "spoolss.spoolss_EnumPrinterKey.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_dwFlags,
+         { "Dwflags", "spoolss.spoolss_PSDRVEXTRA351.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT,
+         { "Printer Change Timeout", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_TIMEOUT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_TIMEOUT_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM,
+         { "Printer Change Add Form", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_FORM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_FORM_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caIlluminantIndex,
+         { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA500.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RemoteFindFirstPrinterChangeNotifyEx_handle,
+         { "Handle", "spoolss.spoolss_RemoteFindFirstPrinterChangeNotifyEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_second,
+         { "Second", "spoolss.spoolss_Time.second", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE,
+         { "Printer Driver Category File", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CATEGORY_FILE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CATEGORY_FILE_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverDirectoryInfo_info1,
+         { "Info1", "spoolss.spoolss_DriverDirectoryInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_cjobs,
+         { "Cjobs", "spoolss.spoolss_SetPrinterInfo2.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_UPDATE,
+         { "Dsprint Update", "spoolss.spoolss_DsPrintAction.DSPRINT_UPDATE", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_UPDATE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo1_comment,
+         { "Comment", "spoolss.spoolss_SetPrinterInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_text_status,
+         { "Text Status", "spoolss.spoolss_JobInfo4.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ResetPrinter_handle,
+         { "Handle", "spoolss.spoolss_ResetPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_product_type,
+         { "Product Type", "spoolss.spoolss_OSVersionEx.product_type", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_ul,
+         { "Ul", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.ul", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_core_driver_dependencies,
+         { "Core Driver Dependencies", "spoolss.spoolss_AddDriverInfo8.core_driver_dependencies", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE,
+         { "Printer Status Power Save", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_POWER_SAVE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_POWER_SAVE_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_key_name,
+         { "Key Name", "spoolss.spoolss_GetPrinterDataEx.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_hostaddress,
+         { "Hostaddress", "spoolss.spoolss_PortData1.hostaddress", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo7_action,
+         { "Action", "spoolss.spoolss_PrinterInfo7.action", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_JTEXP.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_CLASS,
+         { "Printer Driver Class", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_CLASS", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_CLASS_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_servername,
+         { "Servername", "spoolss.spoolss_SetPrinterInfo0.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_TimeCtr_time,
+         { "Time", "spoolss.spoolss_TimeCtr.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_help_file,
+         { "Help File", "spoolss.spoolss_DriverInfo3.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_DriverInfo4.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_config_file,
+         { "Config File", "spoolss.spoolss_AddDriverInfo5.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_DATA_dwBidiType,
+         { "Dwbiditype", "spoolss.RPC_BIDI_DATA.dwBidiType", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_level,
+         { "Level", "spoolss.spoolss_GetForm.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_printquality,
+         { "Printquality", "spoolss.spoolss_DeviceMode.printquality", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModePrintQuality_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo2_version,
+         { "Version", "spoolss.spoolss_DriverInfo2.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo2_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_formname,
+         { "Formname", "spoolss.spoolss_DeviceMode.formname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caGreenGamma,
+         { "Cagreengamma", "spoolss.spoolss_PSDRVEXTRA500.caGreenGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumForms_offered,
+         { "Offered", "spoolss._spoolss_EnumForms.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_caIlluminantIndex,
+         { "Cailluminantindex", "spoolss.spoolss_PSDRVEXTRA351.caIlluminantIndex", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo2_port_type,
+         { "Port Type", "spoolss.spoolss_SetPortInfo2.port_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_level,
+         { "Level", "spoolss.spoolss_EnumJobs.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_iTTDLFmt,
+         { "Ittdlfmt", "spoolss.spoolss_PSDRVEXTRA500.iTTDLFmt", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_TTDLFmt_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_manufacturer_name,
+         { "Manufacturer Name", "spoolss.spoolss_DriverInfo101.manufacturer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyData_sd,
+         { "Sd", "spoolss.spoolss_NotifyData.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_printprocessor,
+         { "Printprocessor", "spoolss.spoolss_SetPrinterInfo2.printprocessor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_CreatePrinterIC_gdi_handle,
+         { "Gdi Handle", "spoolss.spoolss_CreatePrinterIC.gdi_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_buffer,
+         { "Buffer", "spoolss.spoolss_EnumJobs.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ENUMERATE,
+         { "Server Access Enumerate", "spoolss.spoolss_AccessRights.SERVER_ACCESS_ENUMERATE", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_SERVER_ACCESS_ENUMERATE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS,
+         { "Spoolss Dm Uni Flags Print Text As Graphics", "spoolss.spoolss_DMUNI_Flags.SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", FT_BOOLEAN, 32, TFS(&spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_servername,
+         { "Servername", "spoolss.spoolss_SetPrinterInfo2.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_size2,
+         { "Size2", "spoolss.spoolss_UserLevel3.size2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfoCtr_info,
+         { "Info", "spoolss.spoolss_SetPrinterInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info4,
+         { "Info4", "spoolss.spoolss_PrinterInfo.info4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOption_count,
+         { "Count", "spoolss.spoolss_NotifyOption.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_offered,
+         { "Offered", "spoolss.spoolss_GetJob.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo7_guid,
+         { "Guid", "spoolss.spoolss_SetPrinterInfo7.guid", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_total_jobs,
+         { "Total Jobs", "spoolss.spoolss_PrinterInfo0.total_jobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_parameters,
+         { "Parameters", "spoolss.spoolss_SetPrinterInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePort_server_name,
+         { "Server Name", "spoolss.spoolss_DeletePort.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo_info5,
+         { "Info5", "spoolss.spoolss_SetPrinterInfo.info5", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_string_type,
+         { "String Type", "spoolss.spoolss_AddFormInfo2.string_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_NUP,
+         { "Devmode Nup", "spoolss.spoolss_DeviceModeFields.DEVMODE_NUP", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_NUP_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcSetJobNamedProperty_JobId,
+         { "Jobid", "spoolss.spoolss_RpcSetJobNamedProperty.JobId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_hardware_id,
+         { "Hardware Id", "spoolss.spoolss_DriverInfo6.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfoFF_port_name,
+         { "Port Name", "spoolss.spoolss_PortInfoFF.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_form_name,
+         { "Form Name", "spoolss.spoolss_FormInfo2.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_count,
+         { "Count", "spoolss.spoolss_EnumPrinters.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ,
+         { "Job Status Blocked Devq", "spoolss.spoolss_JobStatus.JOB_STATUS_BLOCKED_DEVQ", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_BLOCKED_DEVQ_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo8.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo2_config_file,
+         { "Config File", "spoolss.spoolss_DriverInfo2.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_CreatePrinterIC_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_CreatePrinterIC.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_driver_name,
+         { "Driver Name", "spoolss.spoolss_AddDriverInfo6.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_sPadding,
+         { "Spadding", "spoolss.spoolss_UNIDRVEXTRA500.sPadding", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_CorePrinterDriver_driver_version,
+         { "Driver Version", "spoolss.spoolss_CorePrinterDriver.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT,
+         { "Printer Attribute Direct", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_DIRECT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DIRECT_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_driver_date,
+         { "Driver Date", "spoolss.spoolss_DriverInfo101.driver_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetForm_handle,
+         { "Handle", "spoolss.spoolss_SetForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo4.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_num_error_out_of_paper,
+         { "Num Error Out Of Paper", "spoolss.spoolss_PrinterInfo0.num_error_out_of_paper", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DsPrintAction_DSPRINT_PENDING,
+         { "Dsprint Pending", "spoolss.spoolss_DsPrintAction.DSPRINT_PENDING", FT_BOOLEAN, 32, TFS(&spoolss_DsPrintAction_DSPRINT_PENDING_tfs), ( 0x80000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_reserved1,
+         { "Reserved1", "spoolss.spoolss_DeviceMode.reserved1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterData_offered,
+         { "Offered", "spoolss.spoolss_GetPrinterData.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_hPrinter,
+         { "Hprinter", "spoolss.spoolss_RpcEnumJobNamedProperties.hPrinter", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo6.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_offered,
+         { "Offered", "spoolss.spoolss_GetPrinterDriverDirectory.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterData_value_name,
+         { "Value Name", "spoolss.spoolss_GetPrinterData.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE,
+         { "Printer Enum Hide", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_HIDE", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_HIDE_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel3_processor,
+         { "Processor", "spoolss.spoolss_UserLevel3.processor", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caRedGamma,
+         { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_handle,
+         { "Handle", "spoolss.spoolss_EnumPrinterData.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_job_error,
+         { "Job Error", "spoolss.spoolss_PrinterInfo0.job_error", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE,
+         { "Printer Driver Package Aware", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_PACKAGE_AWARE", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_PACKAGE_AWARE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM,
+         { "Printer Status Paper Problem", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PAPER_PROBLEM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PAPER_PROBLEM_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfoContainer_level,
+         { "Level", "spoolss.spoolss_SetPortInfoContainer.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_CONTAINER_Flags,
+         { "Flags", "spoolss.RPC_BIDI_REQUEST_CONTAINER.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo101_driver_version,
+         { "Driver Version", "spoolss.spoolss_DriverInfo101.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_defaultsource,
+         { "Defaultsource", "spoolss.spoolss_DeviceMode.defaultsource", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeDefaultSource_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormSize_width,
+         { "Width", "spoolss.spoolss_FormSize.width", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinter_handle,
+         { "Handle", "spoolss.spoolss_SetPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caRedGamma,
+         { "Caredgamma", "spoolss.spoolss_PSDRVEXTRA500.caRedGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyString,
+         { "Propertystring", "spoolss.RPC_PrintPropertyValueUnion.propertyString", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_portname,
+         { "Portname", "spoolss.spoolss_SetPrinterInfo2.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_data,
+         { "Data", "spoolss.spoolss_EnumPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_info,
+         { "Info", "spoolss._spoolss_EnumPrintProcessors.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DocumentInfoCtr_info,
+         { "Info", "spoolss.spoolss_DocumentInfoCtr.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterData_binary,
+         { "Binary", "spoolss.spoolss_PrinterData.binary", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caRedGreenTint,
+         { "Caredgreentint", "spoolss.spoolss_PSDRVEXTRA400.caRedGreenTint", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY,
+         { "Printer Attribute Raw Only", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_RAW_ONLY", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_RAW_ONLY_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_min_inbox_driver_ver_version,
+         { "Min Inbox Driver Ver Version", "spoolss.spoolss_DriverInfo8.min_inbox_driver_ver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_hardware_id,
+         { "Hardware Id", "spoolss.spoolss_AddDriverInfo6.hardware_id", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_flags,
+         { "Flags", "spoolss.spoolss_AddFormInfo2.flags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_FormFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrintProcDataTypesInfo1_name_array,
+         { "Name Array", "spoolss.spoolss_PrintProcDataTypesInfo1.name_array", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_comment,
+         { "Comment", "spoolss.spoolss_PrinterInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo2_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_PortInfo2.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_lang_id,
+         { "Lang Id", "spoolss.spoolss_FormInfo2.lang_id", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING,
+         { "Spoolss Dm Uni Flags Custom Halftoning", "spoolss.spoolss_DMUNI_Flags.SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", FT_BOOLEAN, 32, TFS(&spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_processor_type,
+         { "Processor Type", "spoolss.spoolss_SetPrinterInfo0.processor_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_ProcessorType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_printer_driver_attributes,
+         { "Printer Driver Attributes", "spoolss.spoolss_DriverInfo8.printer_driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_value_name,
+         { "Value Name", "spoolss.spoolss_GetPrinterDataEx.value_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_session_counter,
+         { "Session Counter", "spoolss.spoolss_PrinterInfo0.session_counter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_job_id,
+         { "Job Id", "spoolss.spoolss_SetJobInfo4.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumMonitors_buffer,
+         { "Buffer", "spoolss._spoolss_EnumMonitors.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_driver_name,
+         { "Driver Name", "spoolss.spoolss_JobInfo2.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverFileInfo_file_version,
+         { "File Version", "spoolss.spoolss_DriverFileInfo.file_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_driver_size,
+         { "Core Driver Size", "spoolss.spoolss_GetCorePrinterDrivers.core_driver_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePerMachineConnection_printername,
+         { "Printername", "spoolss.spoolss_DeletePerMachineConnection.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_driver_version,
+         { "Driver Version", "spoolss.spoolss_DriverInfo6.driver_version", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_user_name,
+         { "User Name", "spoolss.spoolss_JobInfo2.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_change_low,
+         { "Change Low", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.change_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_spooling,
+         { "Spooling", "spoolss.spoolss_SetPrinterInfo0.spooling", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING,
+         { "Printer Status Initializing", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_INITIALIZING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_INITIALIZING_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_OFFLINE,
+         { "Job Status Offline", "spoolss.spoolss_JobStatus.JOB_STATUS_OFFLINE", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_OFFLINE_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EndPagePrinter_handle,
+         { "Handle", "spoolss.spoolss_EndPagePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT,
+         { "Printer Attribute Default", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_DEFAULT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_DEFAULT_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo3__ndr_size_dependent_files,
+         { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo3._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetForm_form_name,
+         { "Form Name", "spoolss.spoolss_SetForm.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_level,
+         { "Level", "spoolss.spoolss_GetPrintProcessorDirectory.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrintProcessor_path_name,
+         { "Path Name", "spoolss.spoolss_AddPrintProcessor.path_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_port_monitor_mib_index,
+         { "Port Monitor Mib Index", "spoolss.spoolss_PortData2.port_monitor_mib_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_driver_path,
+         { "Driver Path", "spoolss.spoolss_AddDriverInfo4.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo_info6,
+         { "Info6", "spoolss.spoolss_AddDriverInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_help_file,
+         { "Help File", "spoolss.spoolss_DriverInfo4.help_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumJobs_count,
+         { "Count", "spoolss.__spoolss_EnumJobs.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caReferenceWhite,
+         { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA500.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_driver_count,
+         { "Core Printer Driver Count", "spoolss.spoolss_GetCorePrinterDrivers.core_printer_driver_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyOpenPrinter_handle,
+         { "Handle", "spoolss.spoolss_ReplyOpenPrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_time,
+         { "Time", "spoolss.spoolss_JobInfo2.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo1_flags,
+         { "Flags", "spoolss.spoolss_PrinterInfo1.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_version,
+         { "Version", "spoolss.spoolss_PortData1.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL,
+         { "Spoolss Dm Uni Flags Avoid Emfspool", "spoolss.spoolss_DMUNI_Flags.SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", FT_BOOLEAN, 32, TFS(&spoolss_DMUNI_Flags_SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_offered,
+         { "Offered", "spoolss.spoolss_EnumPrintProcessors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo3_status_string,
+         { "Status String", "spoolss.spoolss_PortInfo3.status_string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterData_data,
+         { "Data", "spoolss.spoolss_SetPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4__devmode_ptr,
+         { " Devmode Ptr", "spoolss.spoolss_SetJobInfo4._devmode_ptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetJob_level,
+         { "Level", "spoolss.spoolss_GetJob.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_ttoption,
+         { "Ttoption", "spoolss.spoolss_DeviceMode.ttoption", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeTTOption_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_info_,
+         { "Subcontext length", "spoolss.spoolss_GetPrinterDriver.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_aOptions,
+         { "Aoptions", "spoolss.spoolss_UNIDRVEXTRA.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcGetJobNamedPropertyValue_pValue,
+         { "Pvalue", "spoolss.spoolss_RpcGetJobNamedPropertyValue.pValue", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info3,
+         { "Info3", "spoolss.spoolss_DriverInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_wVer,
+         { "Wver", "spoolss.spoolss_UNIDRVEXTRA500.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_iLayout,
+         { "Ilayout", "spoolss.spoolss_UNIDRVEXTRA500.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_device_type,
+         { "Device Type", "spoolss.spoolss_PortData1.device_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_info,
+         { "Info", "spoolss._spoolss_EnumPrintProcDataTypes.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_displayflags,
+         { "Displayflags", "spoolss.spoolss_DeviceMode.displayflags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DeviceModeNUp_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA351_wchEPSFile,
+         { "Wchepsfile", "spoolss.spoolss_PSDRVEXTRA351.wchEPSFile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info9,
+         { "Info9", "spoolss.spoolss_PrinterInfo.info9", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_day_of_week,
+         { "Day Of Week", "spoolss.spoolss_Time.day_of_week", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_text_status,
+         { "Text Status", "spoolss.spoolss_JobInfo1.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_servername,
+         { "Servername", "spoolss.spoolss_PrinterInfo2.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB,
+         { "Printer Change Write Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_WRITE_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_WRITE_JOB_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterData_type,
+         { "Type", "spoolss.spoolss_SetPrinterData.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_processor_type,
+         { "Processor Type", "spoolss.spoolss_PrinterInfo0.processor_type", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_ProcessorType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo5_transmission_retry_timeout,
+         { "Transmission Retry Timeout", "spoolss.spoolss_SetPrinterInfo5.transmission_retry_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo_info2,
+         { "Info2", "spoolss.spoolss_FormInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_ERROR,
+         { "Job Status Error", "spoolss.spoolss_JobStatus.JOB_STATUS_ERROR", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_ERROR_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_needed,
+         { "Needed", "spoolss.spoolss_EnumPrinterDrivers.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_iPSLevel,
+         { "Ipslevel", "spoolss.spoolss_PSDRVEXTRA.iPSLevel", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DMPS_PSLevel_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDataEx_data,
+         { "Data", "spoolss.spoolss_GetPrinterDataEx.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinter_server,
+         { "Server", "spoolss.spoolss_AddPrinter.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3,
+         { "Printer Enum Icon3", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON3", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON3_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_pelswidth,
+         { "Pelswidth", "spoolss.spoolss_DeviceMode.pelswidth", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_orientation,
+         { "Orientation", "spoolss.spoolss_DeviceMode.orientation", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeOrientation_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumForms_info,
+         { "Info", "spoolss.spoolss_EnumForms.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwChecksum32,
+         { "Dwchecksum32", "spoolss.spoolss_PSDRVEXTRA500.dwChecksum32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOptionType_u1,
+         { "U1", "spoolss.spoolss_NotifyOptionType.u1", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceBlack,
+         { "Careferenceblack", "spoolss.spoolss_PSDRVEXTRA400.caReferenceBlack", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_size,
+         { "Size", "spoolss.spoolss_AddFormInfo2.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterEx_server,
+         { "Server", "spoolss.spoolss_AddPrinterEx.server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_color_profiles,
+         { "Color Profiles", "spoolss.spoolss_DriverInfo8.color_profiles", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_count,
+         { "Count", "spoolss.spoolss_EnumPrintProcessors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_pages_printed,
+         { "Pages Printed", "spoolss.spoolss_SetJobInfo4.pages_printed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrinters_offered,
+         { "Offered", "spoolss._spoolss_EnumPrinters.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_print_processor,
+         { "Print Processor", "spoolss.spoolss_SetJobInfo4.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caBlueGamma,
+         { "Cabluegamma", "spoolss.spoolss_PSDRVEXTRA.caBlueGamma", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_until_time,
+         { "Until Time", "spoolss.spoolss_SetJobInfo4.until_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumForms_count,
+         { "Count", "spoolss.__spoolss_EnumForms.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo_info101,
+         { "Info101", "spoolss.spoolss_DriverInfo.info101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER,
+         { "Printer Change Add Printer Driver", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PRINTER_DRIVER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINTER_DRIVER_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo_info1,
+         { "Info1", "spoolss.spoolss_SetJobInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorInfo2_dll_name,
+         { "Dll Name", "spoolss.spoolss_MonitorInfo2.dll_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinter_flags,
+         { "Flags", "spoolss.spoolss_RouterReplyPrinter.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_client_minor_version,
+         { "Client Minor Version", "spoolss.spoolss_GetPrinterDriver2.client_minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwBookletFlags,
+         { "Dwbookletflags", "spoolss.spoolss_UNIDRVEXTRA.dwBookletFlags", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_BookletFlags_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinter_access_mask,
+         { "Access Mask", "spoolss.spoolss_OpenPrinter.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED,
+         { "Spoolss Port Type Net Attached", "spoolss.spoolss_PortType.SPOOLSS_PORT_TYPE_NET_ATTACHED", FT_BOOLEAN, 32, TFS(&spoolss_PortType_SPOOLSS_PORT_TYPE_NET_ATTACHED_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_level,
+         { "Level", "spoolss._spoolss_EnumPrintProcessors.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_REQUEST_DATA_data,
+         { "Data", "spoolss.RPC_BIDI_REQUEST_DATA.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX,
+         { "Printer Attribute Fax", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_FAX", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_FAX_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_wVer,
+         { "Wver", "spoolss.spoolss_UNIDRVEXTRA.wVer", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddJob_handle,
+         { "Handle", "spoolss.spoolss_AddJob.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver_architecture,
+         { "Architecture", "spoolss.spoolss_GetPrinterDriver.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_type,
+         { "Type", "spoolss.spoolss_EnumPrinterData.type", FT_UINT32, BASE_DEC, VALS(spoolss_winreg_Type_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo8_previous_names,
+         { "Previous Names", "spoolss.spoolss_DriverInfo8.previous_names", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_buffer,
+         { "Buffer", "spoolss.spoolss_GetPrintProcessorDirectory.buffer", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_devmode,
+         { "Devmode", "spoolss.spoolss_JobInfo2.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_dwSize,
+         { "Dwsize", "spoolss.spoolss_JTEXP.dwSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortVarContainer_monitor_data_size,
+         { "Monitor Data Size", "spoolss.spoolss_PortVarContainer.monitor_data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_numjobs,
+         { "Numjobs", "spoolss.spoolss_EnumJobs.numjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumJobs_firstjob,
+         { "Firstjob", "spoolss._spoolss_EnumJobs.firstjob", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_XcvData__in_data_length,
+         { " In Data Length", "spoolss.spoolss_XcvData._in_data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinter_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_SetPrinter.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_processor_architecture,
+         { "Processor Architecture", "spoolss.spoolss_SetPrinterInfo0.processor_architecture", FT_UINT1632, BASE_DEC, VALS(spoolss_spoolss_ProcessorArchitecture_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ResetPrinter_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_ResetPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo5_transmission_retry_timeout,
+         { "Transmission Retry Timeout", "spoolss.spoolss_PrinterInfo5.transmission_retry_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER,
+         { "Printer Change Set Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_PRINTER_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinterEx_userlevel_ctr,
+         { "Userlevel Ctr", "spoolss.spoolss_OpenPrinterEx.userlevel_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_dependent_files,
+         { " Ndr Size Dependent Files", "spoolss.spoolss_AddDriverInfo8._ndr_size_dependent_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA_dwOptions,
+         { "Dwoptions", "spoolss.spoolss_UNIDRVEXTRA.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwX,
+         { "Dwx", "spoolss.spoolss_PSDRVEXTRA.dwX", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo0_cjobs,
+         { "Cjobs", "spoolss.spoolss_SetPrinterInfo0.cjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB,
+         { "Printer Change Delete Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_JOB_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumMonitors_count,
+         { "Count", "spoolss.__spoolss_EnumMonitors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcessors_servername,
+         { "Servername", "spoolss._spoolss_EnumPrintProcessors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterEx_userlevel_ctr,
+         { "Userlevel Ctr", "spoolss.spoolss_AddPrinterEx.userlevel_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_werror,
+         { "Windows Error", "spoolss.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_servername,
+         { "Servername", "spoolss.spoolss_EnumMonitors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddJob_level,
+         { "Level", "spoolss.spoolss_AddJob.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AccessRights_PRINTER_ACCESS_USE,
+         { "Printer Access Use", "spoolss.spoolss_AccessRights.PRINTER_ACCESS_USE", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_PRINTER_ACCESS_USE_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_data_type,
+         { "Data Type", "spoolss.spoolss_SetJobInfo2.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddMonitorInfo2_environment,
+         { "Environment", "spoolss.spoolss_AddMonitorInfo2.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8__ndr_size_previous_names,
+         { " Ndr Size Previous Names", "spoolss.spoolss_AddDriverInfo8._ndr_size_previous_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverEx_servername,
+         { "Servername", "spoolss.spoolss_AddPrinterDriverEx.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH,
+         { "Printer Notify Info Color Mismatch", "spoolss.spoolss_PrinterNotifyFlags.PRINTER_NOTIFY_INFO_COLOR_MISMATCH", FT_BOOLEAN, 32, TFS(&spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_COLOR_MISMATCH_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_submitted,
+         { "Submitted", "spoolss.spoolss_JobInfo4.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_version,
+         { "Version", "spoolss.spoolss_AddDriverInfo5.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM,
+         { "Printer Change Delete Form", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_FORM", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_FORM_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED,
+         { "Printer Notify Info Discardnoted", "spoolss.spoolss_PrinterNotifyFlags.PRINTER_NOTIFY_INFO_DISCARDNOTED", FT_BOOLEAN, 32, TFS(&spoolss_PrinterNotifyFlags_PRINTER_NOTIFY_INFO_DISCARDNOTED_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL,
+         { "Spoolss Form String Type Mui Dll", "spoolss.spoolss_FormStringType.SPOOLSS_FORM_STRING_TYPE_MUI_DLL", FT_BOOLEAN, 32, TFS(&spoolss_FormStringType_SPOOLSS_FORM_STRING_TYPE_MUI_DLL_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_FormInfo2_size,
+         { "Size", "spoolss.spoolss_FormInfo2.size", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrintProcessor_architecture,
+         { "Architecture", "spoolss.spoolss_DeletePrintProcessor.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJob_job_id,
+         { "Job Id", "spoolss.spoolss_SetJob.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_DUPLEX,
+         { "Devmode Duplex", "spoolss.spoolss_DeviceModeFields.DEVMODE_DUPLEX", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_DUPLEX_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterData_value_offered,
+         { "Value Offered", "spoolss.spoolss_EnumPrinterData.value_offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_architecture,
+         { "Architecture", "spoolss.spoolss_DriverInfo6.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrinterDrivers_count,
+         { "Count", "spoolss.__spoolss_EnumPrinterDrivers.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_driver_attributes,
+         { "Driver Attributes", "spoolss.spoolss_DriverInfo5.driver_attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ResetPrinter_data_type,
+         { "Data Type", "spoolss.spoolss_ResetPrinter.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PlayGDIScriptOnPrinterIC_gdi_handle,
+         { "Gdi Handle", "spoolss.spoolss_PlayGDIScriptOnPrinterIC.gdi_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_aOptions,
+         { "Aoptions", "spoolss.spoolss_UNIDRVEXTRA500.aOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_text_status,
+         { "Text Status", "spoolss.spoolss_SetJobInfo4.text_status", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RpcEnumJobNamedProperties_pcProperties,
+         { "Pcproperties", "spoolss.spoolss_RpcEnumJobNamedProperties.pcProperties", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JTEXP_ModelName,
+         { "Modelname", "spoolss.spoolss_JTEXP.ModelName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caFlags,
+         { "Caflags", "spoolss.spoolss_PSDRVEXTRA400.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED,
+         { "Printer Enum Shared", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_SHARED", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_SHARED_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterReplyPrinterEx_handle,
+         { "Handle", "spoolss.spoolss_RouterReplyPrinterEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrintProcessorInfo_info1,
+         { "Info1", "spoolss.spoolss_PrintProcessorInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT,
+         { "Printer Enum Default", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_DEFAULT", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_DEFAULT_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_server_minor_version,
+         { "Server Minor Version", "spoolss.spoolss_GetPrinterDriver2.server_minor_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumJobs_offered,
+         { "Offered", "spoolss.spoolss_EnumJobs.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR,
+         { "Printer Change Add Print Processor", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_ADD_PRINT_PROCESSOR", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_ADD_PRINT_PROCESSOR_tfs), ( 0x01000000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_COLLATE,
+         { "Devmode Collate", "spoolss.spoolss_DeviceModeFields.DEVMODE_COLLATE", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_COLLATE_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumMonitors_offered,
+         { "Offered", "spoolss.spoolss_EnumMonitors.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataUniDriver_uniblob,
+         { "Uniblob", "spoolss.spoolss_DeviceModeExtraDataUniDriver.uniblob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_WritePrinter_handle,
+         { "Handle", "spoolss.spoolss_WritePrinter.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA400.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_driver_path,
+         { "Driver Path", "spoolss.spoolss_AddDriverInfo5.driver_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo5_portname,
+         { "Portname", "spoolss.spoolss_SetPrinterInfo5.portname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Field_field,
+         { "Field", "spoolss.spoolss_Field.field", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo_info2,
+         { "Info2", "spoolss.spoolss_AddDriverInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddMonitorInfo_info1,
+         { "Info1", "spoolss.spoolss_AddMonitorInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OSVersionEx_major,
+         { "Major", "spoolss.spoolss_OSVersionEx.major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_mui_dll,
+         { "Mui Dll", "spoolss.spoolss_AddFormInfo2.mui_dll", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPortInfo2_reserved,
+         { "Reserved", "spoolss.spoolss_SetPortInfo2.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4__ndr_size_previous_names,
+         { " Ndr Size Previous Names", "spoolss.spoolss_AddDriverInfo4._ndr_size_previous_names", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo3_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_DriverInfo3.dependent_files", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo5_data_file,
+         { "Data File", "spoolss.spoolss_AddDriverInfo5.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddFormInfo2_display_name,
+         { "Display Name", "spoolss.spoolss_AddFormInfo2.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwY,
+         { "Dwy", "spoolss.spoolss_PSDRVEXTRA500.dwY", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo4_size_high,
+         { "Size High", "spoolss.spoolss_JobInfo4.size_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Notify_job_id,
+         { "Job Id", "spoolss.spoolss_Notify.job_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevelCtr_user_info,
+         { "User Info", "spoolss.spoolss_UserLevelCtr.user_info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_priority,
+         { "Priority", "spoolss.spoolss_JobInfo2.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo2_port_name,
+         { "Port Name", "spoolss.spoolss_PortInfo2.port_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_user_name,
+         { "User Name", "spoolss.spoolss_JobInfo1.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_devmode,
+         { "Devmode", "spoolss.spoolss_PrinterInfo2.devmode", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterData_data,
+         { "Data", "spoolss.spoolss_GetPrinterData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_RouterRefreshPrinterChangeNotify_handle,
+         { "Handle", "spoolss.spoolss_RouterRefreshPrinterChangeNotify.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobStatus_JOB_STATUS_COMPLETE,
+         { "Job Status Complete", "spoolss.spoolss_JobStatus.JOB_STATUS_COMPLETE", FT_BOOLEAN, 32, TFS(&spoolss_JobStatus_JOB_STATUS_COMPLETE_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo_info8,
+         { "Info8", "spoolss.spoolss_AddDriverInfo.info8", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_collate,
+         { "Collate", "spoolss.spoolss_DeviceMode.collate", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeCollate_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeleteForm_form_name,
+         { "Form Name", "spoolss.spoolss_DeleteForm.form_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_Time_day,
+         { "Day", "spoolss.spoolss_Time.day", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverDirectoryInfo1_directory_name,
+         { "Directory Name", "spoolss.spoolss_DriverDirectoryInfo1.directory_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_start_time,
+         { "Start Time", "spoolss.spoolss_SetJobInfo2.start_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo_info6,
+         { "Info6", "spoolss.spoolss_PrinterInfo.info6", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_printprocessor,
+         { "Printprocessor", "spoolss.spoolss_PrinterInfo2.printprocessor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwWidthOffset,
+         { "Dwwidthoffset", "spoolss.spoolss_PSDRVEXTRA.dwWidthOffset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyOpenPrinter_server_name,
+         { "Server Name", "spoolss.spoolss_ReplyOpenPrinter.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_config_version,
+         { "Config Version", "spoolss.spoolss_DriverInfo5.config_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_OpenPrinterEx_handle,
+         { "Handle", "spoolss.spoolss_OpenPrinterEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss___spoolss_EnumPrintProcessors_count,
+         { "Count", "spoolss.__spoolss_EnumPrintProcessors.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_dblspool,
+         { "Dblspool", "spoolss.spoolss_PortData1.dblspool", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_wSize,
+         { "Wsize", "spoolss.spoolss_UNIDRVEXTRA500.wSize", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_data_type,
+         { "Data Type", "spoolss.spoolss_SetJobInfo4.data_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_config_file,
+         { "Config File", "spoolss.spoolss_DriverInfo6.config_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo6_monitor_name,
+         { "Monitor Name", "spoolss.spoolss_AddDriverInfo6.monitor_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_TTOPTION,
+         { "Devmode Ttoption", "spoolss.spoolss_DeviceModeFields.DEVMODE_TTOPTION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_TTOPTION_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeletePrinterDriver_architecture,
+         { "Architecture", "spoolss.spoolss_DeletePrinterDriver.architecture", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_aData,
+         { "Adata", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.aData", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UNIDRVEXTRA500_dwFlags,
+         { "Dwflags", "spoolss.spoolss_UNIDRVEXTRA500.dwFlags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE,
+         { "Printer Status Io Active", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_IO_ACTIVE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_IO_ACTIVE_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo1_name,
+         { "Name", "spoolss.spoolss_PrinterInfo1.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_portname,
+         { "Portname", "spoolss.spoolss_PortData2.portname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT,
+         { "Printer Change Delete Port", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_DELETE_PORT", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_DELETE_PORT_tfs), ( 0x00400000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_OEM_DMEXTRA_dwSize,
+         { "Dwsize", "spoolss.spoolss_OEM_DMEXTRA.dwSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPort_server_name,
+         { "Server Name", "spoolss.spoolss_AddPort.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_propertyBlob_pBuf,
+         { "Pbuf", "spoolss.propertyBlob.pBuf", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinters_offered,
+         { "Offered", "spoolss.spoolss_EnumPrinters.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo7_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo7.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo8_print_processor,
+         { "Print Processor", "spoolss.spoolss_AddDriverInfo8.print_processor", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData1_hardware_address,
+         { "Hardware Address", "spoolss.spoolss_PortData1.hardware_address", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_UNIVERSAL_FONT_ID_ctr_fonts,
+         { "Fonts", "spoolss.UNIVERSAL_FONT_ID_ctr.fonts", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyInfo_flags,
+         { "Flags", "spoolss.spoolss_NotifyInfo.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo4_attributes,
+         { "Attributes", "spoolss.spoolss_PrinterInfo4.attributes", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo4_submitted,
+         { "Submitted", "spoolss.spoolss_SetJobInfo4.submitted", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_PELSWIDTH,
+         { "Devmode Pelswidth", "spoolss.spoolss_DeviceModeFields.DEVMODE_PELSWIDTH", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_PELSWIDTH_tfs), ( 0x00080000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_server_name,
+         { "Server Name", "spoolss.spoolss_SetJobInfo1.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_color,
+         { "Color", "spoolss.spoolss_DeviceMode.color", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeColor_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyPrinterInfo_info0,
+         { "Info0", "spoolss.spoolss_ReplyPrinterInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE,
+         { "Printer Status Offline", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_OFFLINE", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_OFFLINE_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterData_needed,
+         { "Needed", "spoolss.spoolss_GetPrinterData.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterDrivers_info,
+         { "Info", "spoolss.spoolss_EnumPrinterDrivers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_fxScrFreq,
+         { "Fxscrfreq", "spoolss.spoolss_PSDRVEXTRA500.fxScrFreq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_ReplyOpenPrinter_buffer,
+         { "Buffer", "spoolss.spoolss_ReplyOpenPrinter.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AccessRights_SERVER_ACCESS_ADMINISTER,
+         { "Server Access Administer", "spoolss.spoolss_AccessRights.SERVER_ACCESS_ADMINISTER", FT_BOOLEAN, 32, TFS(&spoolss_AccessRights_SERVER_ACCESS_ADMINISTER_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo_info1,
+         { "Info1", "spoolss.spoolss_JobInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrintProcessorDirectory_environment,
+         { "Environment", "spoolss.spoolss_GetPrintProcessorDirectory.environment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_caReferenceWhite,
+         { "Careferencewhite", "spoolss.spoolss_PSDRVEXTRA400.caReferenceWhite", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_MonitorContainer_info,
+         { "Info", "spoolss.spoolss_MonitorContainer.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeExtraDataPostScript_psdrvextra400,
+         { "Psdrvextra400", "spoolss.spoolss_DeviceModeExtraDataPostScript.psdrvextra400", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_data_file,
+         { "Data File", "spoolss.spoolss_DriverInfo5.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo2_total_pages,
+         { "Total Pages", "spoolss.spoolss_JobInfo2.total_pages", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo1_priority,
+         { "Priority", "spoolss.spoolss_SetJobInfo1.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_opnum,
+         { "Operation", "spoolss.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOptionType_type,
+         { "Type", "spoolss.spoolss_NotifyOptionType.type", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_NotifyType_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_WritePrinter_num_written,
+         { "Num Written", "spoolss.spoolss_WritePrinter.num_written", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_wCutSheet,
+         { "Wcutsheet", "spoolss.spoolss_PSDRVEXTRA500.wCutSheet", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_dwSignature,
+         { "Dwsignature", "spoolss.spoolss_PSDRVEXTRA500.dwSignature", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Signature_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_iLayout,
+         { "Ilayout", "spoolss.spoolss_PSDRVEXTRA500.iLayout", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_Layout_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriver2_level,
+         { "Level", "spoolss.spoolss_GetPrinterDriver2.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinterDriverDirectory_info_,
+         { "Subcontext length", "spoolss.spoolss_GetPrinterDriverDirectory.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo6_version,
+         { "Version", "spoolss.spoolss_DriverInfo6.version", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DriverOSVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetPrinter_offered,
+         { "Offered", "spoolss.spoolss_GetPrinter.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_JobInfo1_document_name,
+         { "Document Name", "spoolss.spoolss_JobInfo1.document_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrintProcessors_servername,
+         { "Servername", "spoolss.spoolss_EnumPrintProcessors.servername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo3_secdesc_,
+         { "Subcontext length", "spoolss.spoolss_PrinterInfo3.subcontext", FT_UINT0, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeleteForm_handle,
+         { "Handle", "spoolss.spoolss_DeleteForm.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER,
+         { "Printer Status No Toner", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_NO_TONER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_NO_TONER_tfs), ( 0x00040000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwOptions,
+         { "Dwoptions", "spoolss.spoolss_PSDRVEXTRA.dwOptions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyData_time,
+         { "Time", "spoolss.spoolss_NotifyData.time", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinter_devmode_ctr,
+         { "Devmode Ctr", "spoolss.spoolss_AddPrinter.devmode_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_caFlags,
+         { "Caflags", "spoolss.spoolss_PSDRVEXTRA.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceModeFields_DEVMODE_POSITION,
+         { "Devmode Position", "spoolss.spoolss_DeviceModeFields.DEVMODE_POSITION", FT_BOOLEAN, 32, TFS(&spoolss_DeviceModeFields_DEVMODE_POSITION_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_NotifyOption_flags,
+         { "Flags", "spoolss.spoolss_NotifyOption.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetJobInfo2_parameters,
+         { "Parameters", "spoolss.spoolss_SetJobInfo2.parameters", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ,
+         { "Printer Attribute Enable Devq", "spoolss.spoolss_PrinterAttributes.PRINTER_ATTRIBUTE_ENABLE_DEVQ", FT_BOOLEAN, 32, TFS(&spoolss_PrinterAttributes_PRINTER_ATTRIBUTE_ENABLE_DEVQ_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPorts_info,
+         { "Info", "spoolss.spoolss_EnumPorts.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_paperlength,
+         { "Paperlength", "spoolss.spoolss_DeviceMode.paperlength", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo5_driver_version,
+         { "Driver Version", "spoolss.spoolss_DriverInfo5.driver_version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortData2_queue,
+         { "Queue", "spoolss.spoolss_PortData2.queue", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER,
+         { "Printer Change Failed Connection Printer", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_FAILED_CONNECTION_PRINTER_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180,
+         { "Spoolss Dm Ps Flags Rotate 180", "spoolss.spoolss_DMPS_Flags.SPOOLSS_DM_PS_FLAGS_ROTATE_180", FT_BOOLEAN, 32, TFS(&spoolss_DMPS_Flags_SPOOLSS_DM_PS_FLAGS_ROTATE_180_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo2_data_file,
+         { "Data File", "spoolss.spoolss_AddDriverInfo2.data_file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DeviceMode_specversion,
+         { "Specversion", "spoolss.spoolss_DeviceMode.specversion", FT_UINT16, BASE_DEC, VALS(spoolss_spoolss_DeviceModeSpecVersion_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PortInfo_info2,
+         { "Info2", "spoolss.spoolss_PortInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1,
+         { "Printer Enum Icon1", "spoolss.spoolss_EnumPrinterFlags.PRINTER_ENUM_ICON1", FT_BOOLEAN, 32, TFS(&spoolss_EnumPrinterFlags_PRINTER_ENUM_ICON1_tfs), ( 0x00010000 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_WritePrinter__data_size,
+         { " Data Size", "spoolss.spoolss_WritePrinter._data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintPropertyValueUnion_propertyBlob,
+         { "Propertyblob", "spoolss.RPC_PrintPropertyValueUnion.propertyBlob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED,
+         { "Printer Driver Sandbox Enabled", "spoolss.spoolss_DriverAttributes.PRINTER_DRIVER_SANDBOX_ENABLED", FT_BOOLEAN, 32, TFS(&spoolss_DriverAttributes_PRINTER_DRIVER_SANDBOX_ENABLED_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetCorePrinterDrivers_core_printer_drivers,
+         { "Core Printer Drivers", "spoolss.spoolss_GetCorePrinterDrivers.core_printer_drivers", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_UserLevel1_size,
+         { "Size", "spoolss.spoolss_UserLevel1.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddPrinterDriverEx_info_ctr,
+         { "Info Ctr", "spoolss.spoolss_AddPrinterDriverEx.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_BIDI_RESPONSE_CONTAINER_Flags,
+         { "Flags", "spoolss.RPC_BIDI_RESPONSE_CONTAINER.Flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH,
+         { "Printer Notify Options Refresh", "spoolss.spoolssNotifyOptionFlags.PRINTER_NOTIFY_OPTIONS_REFRESH", FT_BOOLEAN, 32, TFS(&spoolssNotifyOptionFlags_PRINTER_NOTIFY_OPTIONS_REFRESH_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_needed,
+         { "Needed", "spoolss._spoolss_EnumPrintProcDataTypes.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddJob_needed,
+         { "Needed", "spoolss.spoolss_AddJob.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_DriverInfo4_driver_name,
+         { "Driver Name", "spoolss.spoolss_DriverInfo4.driver_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_AddDriverInfo4_dependent_files,
+         { "Dependent Files", "spoolss.spoolss_AddDriverInfo4.dependent_files", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_num_error_not_ready,
+         { "Num Error Not Ready", "spoolss.spoolss_PrinterInfo0.num_error_not_ready", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_SetPrinterInfo2_defaultpriority,
+         { "Defaultpriority", "spoolss.spoolss_SetPrinterInfo2.defaultpriority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo0_printername,
+         { "Printername", "spoolss.spoolss_PrinterInfo0.printername", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss__spoolss_EnumPrintProcDataTypes_offered,
+         { "Offered", "spoolss._spoolss_EnumPrintProcDataTypes.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA_dwNupDirection,
+         { "Dwnupdirection", "spoolss.spoolss_PSDRVEXTRA.dwNupDirection", FT_UINT32, BASE_DEC, VALS(spoolss_spoolss_DM_NupDirection_vals), 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterStatus_PRINTER_STATUS_PRINTING,
+         { "Printer Status Printing", "spoolss.spoolss_PrinterStatus.PRINTER_STATUS_PRINTING", FT_BOOLEAN, 32, TFS(&spoolss_PrinterStatus_PRINTER_STATUS_PRINTING_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB,
+         { "Printer Change Set Job", "spoolss.spoolss_PrinterChangeFlags.PRINTER_CHANGE_SET_JOB", FT_BOOLEAN, 32, TFS(&spoolss_PrinterChangeFlags_PRINTER_CHANGE_SET_JOB_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA500_caFlags,
+         { "Caflags", "spoolss.spoolss_PSDRVEXTRA500.caFlags", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PrinterInfo2_status,
+         { "Status", "spoolss.spoolss_PrinterInfo2.status", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_GetForm_info_,
+         { "Subcontext length", "spoolss.spoolss_GetForm.subcontext", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_spoolss_PSDRVEXTRA400_wChecksum,
+         { "Wchecksum", "spoolss.spoolss_PSDRVEXTRA400.wChecksum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_spoolss_RPC_PrintNamedProperty_propertyName,
+         { "Propertyname", "spoolss.RPC_PrintNamedProperty.propertyName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_spoolss,
+               &ett_spoolss_spoolss_Time,
+               &ett_spoolss_spoolss_TimeCtr,
+               &ett_spoolss_spoolss_PrinterStatus,
+               &ett_spoolss_spoolss_JobStatus,
+               &ett_spoolss_spoolss_PrinterInfo0,
+               &ett_spoolss_spoolss_DMPS_Flags,
+               &ett_spoolss_spoolss_PSDRVEXTRA351,
+               &ett_spoolss_spoolss_PSDRVEXTRA400,
+               &ett_spoolss_spoolss_PSDRVEXTRA500,
+               &ett_spoolss_spoolss_PSDRVEXTRA,
+               &ett_spoolss_spoolss_UNIDRVEXTRA3_4,
+               &ett_spoolss_spoolss_DMUNI_Flags,
+               &ett_spoolss_spoolss_UNIDRVEXTRA500,
+               &ett_spoolss_spoolss_UNIDRVEXTRA,
+               &ett_spoolss_spoolss_JTEXP,
+               &ett_spoolss_spoolss_OEM_DMEXTRA,
+               &ett_spoolss_spoolss_DeviceModeExtraDataPostScript,
+               &ett_spoolss_spoolss_DeviceModeExtraDataUniDriver,
+               &ett_spoolss_spoolss_DeviceModeFields,
+               &ett_spoolss_spoolss_DeviceMode,
+               &ett_spoolss_spoolss_EnumPrinterFlags,
+               &ett_spoolss_spoolss_PrinterAttributes,
+               &ett_spoolss_spoolss_PrinterInfo1,
+               &ett_spoolss_spoolss_PrinterInfo2,
+               &ett_spoolss_spoolss_PrinterInfo3,
+               &ett_spoolss_spoolss_PrinterInfo4,
+               &ett_spoolss_spoolss_PrinterInfo5,
+               &ett_spoolss_spoolss_PrinterInfo6,
+               &ett_spoolss_spoolss_DsPrintAction,
+               &ett_spoolss_spoolss_PrinterInfo7,
+               &ett_spoolss_spoolss_DeviceModeInfo,
+               &ett_spoolss_spoolss_PrinterInfo,
+               &ett_spoolss_spoolss_DevmodeContainer,
+               &ett_spoolss_spoolss_JobInfo1,
+               &ett_spoolss_spoolss_JobInfo2,
+               &ett_spoolss_spoolss_JobInfo3,
+               &ett_spoolss_spoolss_JobInfo4,
+               &ett_spoolss_spoolss_JobInfo,
+               &ett_spoolss_spoolss_SetJobInfo1,
+               &ett_spoolss_spoolss_SetJobInfo2,
+               &ett_spoolss_spoolss_SetJobInfo4,
+               &ett_spoolss_spoolss_SetJobInfo,
+               &ett_spoolss_spoolss_JobInfoContainer,
+               &ett_spoolss_spoolss_SetPrinterInfo0,
+               &ett_spoolss_spoolss_SetPrinterInfo1,
+               &ett_spoolss_spoolss_SetPrinterInfo2,
+               &ett_spoolss_spoolss_SetPrinterInfo3,
+               &ett_spoolss_spoolss_SetPrinterInfo4,
+               &ett_spoolss_spoolss_SetPrinterInfo5,
+               &ett_spoolss_spoolss_SetPrinterInfo6,
+               &ett_spoolss_spoolss_SetPrinterInfo7,
+               &ett_spoolss_spoolss_SetPrinterInfo8,
+               &ett_spoolss_spoolss_SetPrinterInfo9,
+               &ett_spoolss_spoolss_SetPrinterInfo,
+               &ett_spoolss_spoolss_SetPrinterInfoCtr,
+               &ett_spoolss_spoolss_StringArray,
+               &ett_spoolss_spoolss_AddDriverInfo1,
+               &ett_spoolss_spoolss_AddDriverInfo2,
+               &ett_spoolss_spoolss_AddDriverInfo3,
+               &ett_spoolss_spoolss_AddDriverInfo4,
+               &ett_spoolss_spoolss_DriverAttributes,
+               &ett_spoolss_spoolss_AddDriverInfo5,
+               &ett_spoolss_spoolss_AddDriverInfo6,
+               &ett_spoolss_spoolss_AddDriverInfo8,
+               &ett_spoolss_spoolss_AddDriverInfo,
+               &ett_spoolss_spoolss_AddDriverInfoCtr,
+               &ett_spoolss_spoolss_DriverInfo1,
+               &ett_spoolss_spoolss_DriverInfo2,
+               &ett_spoolss_spoolss_DriverInfo3,
+               &ett_spoolss_spoolss_DriverInfo4,
+               &ett_spoolss_spoolss_DriverInfo5,
+               &ett_spoolss_spoolss_DriverInfo6,
+               &ett_spoolss_spoolss_DriverInfo7,
+               &ett_spoolss_spoolss_DriverInfo8,
+               &ett_spoolss_spoolss_DriverFileInfo,
+               &ett_spoolss_spoolss_DriverInfo101,
+               &ett_spoolss_spoolss_DriverInfo,
+               &ett_spoolss_spoolss_DriverDirectoryInfo1,
+               &ett_spoolss_spoolss_DriverDirectoryInfo,
+               &ett_spoolss_spoolss_PrintProcessorInfo1,
+               &ett_spoolss_spoolss_PrintProcessorInfo,
+               &ett_spoolss_spoolss_PrintProcessorDirectoryInfo1,
+               &ett_spoolss_spoolss_PrintProcessorDirectoryInfo,
+               &ett_spoolss_spoolss_DocumentInfo1,
+               &ett_spoolss_spoolss_DocumentInfo,
+               &ett_spoolss_spoolss_DocumentInfoCtr,
+               &ett_spoolss_spoolss_OSVersion,
+               &ett_spoolss_spoolss_OSVersionEx,
+               &ett_spoolss_spoolss_PrinterData,
+               &ett_spoolss_spoolss_FormSize,
+               &ett_spoolss_spoolss_FormArea,
+               &ett_spoolss_spoolss_FormInfo1,
+               &ett_spoolss_spoolss_FormStringType,
+               &ett_spoolss_spoolss_FormInfo2,
+               &ett_spoolss_spoolss_FormInfo,
+               &ett_spoolss_spoolss_AddFormInfo1,
+               &ett_spoolss_spoolss_AddFormInfo2,
+               &ett_spoolss_spoolss_AddFormInfo,
+               &ett_spoolss_spoolss_AddFormInfoCtr,
+               &ett_spoolss_spoolss_PortInfo1,
+               &ett_spoolss_spoolss_PortType,
+               &ett_spoolss_spoolss_PortInfo2,
+               &ett_spoolss_spoolss_PortInfo3,
+               &ett_spoolss_spoolss_PortInfoFF,
+               &ett_spoolss_spoolss_PortInfo,
+               &ett_spoolss_spoolss_MonitorInfo1,
+               &ett_spoolss_spoolss_MonitorInfo2,
+               &ett_spoolss_spoolss_MonitorInfo,
+               &ett_spoolss_spoolss_SetPortInfo1,
+               &ett_spoolss_spoolss_SetPortInfo2,
+               &ett_spoolss_spoolss_SetPortInfo3,
+               &ett_spoolss_spoolss_SetPortInfoFF,
+               &ett_spoolss_spoolss_SetPortInfo,
+               &ett_spoolss_spoolss_SetPortInfoContainer,
+               &ett_spoolss_UNIVERSAL_FONT_ID,
+               &ett_spoolss_UNIVERSAL_FONT_ID_ctr,
+               &ett_spoolss_spoolss_AddMonitorInfo1,
+               &ett_spoolss_spoolss_AddMonitorInfo2,
+               &ett_spoolss_spoolss_AddMonitorInfo,
+               &ett_spoolss_spoolss_MonitorContainer,
+               &ett_spoolss_spoolss_PrintProcDataTypesInfo1,
+               &ett_spoolss_spoolss_PrintProcDataTypesInfo,
+               &ett_spoolss_spoolss_PrinterChangeFlags,
+               &ett_spoolss_spoolss_PortVarContainer,
+               &ett_spoolss_spoolss_Field,
+               &ett_spoolss_spoolss_NotifyOptionType,
+               &ett_spoolss_spoolssNotifyOptionFlags,
+               &ett_spoolss_spoolss_NotifyOption,
+               &ett_spoolss_spoolss_NotifyString,
+               &ett_spoolss_spoolss_NotifyData,
+               &ett_spoolss_spoolss_Notify,
+               &ett_spoolss_spoolss_NotifyInfo,
+               &ett_spoolss_spoolss_ReplyPrinterInfo,
+               &ett_spoolss_spoolss_PrinterNotifyFlags,
+               &ett_spoolss_spoolss_UserLevel1,
+               &ett_spoolss_spoolss_UserLevel2,
+               &ett_spoolss_spoolss_UserLevel3,
+               &ett_spoolss_spoolss_UserLevel,
+               &ett_spoolss_spoolss_UserLevelCtr,
+               &ett_spoolss_spoolss_AccessRights,
+               &ett_spoolss_spoolss_PrinterEnumValues,
+               &ett_spoolss_spoolss_KeyNames,
+               &ett_spoolss_spoolss_DeleteDriverFlags,
+               &ett_spoolss_spoolss_PortData1,
+               &ett_spoolss_spoolss_PortData2,
+               &ett_spoolss_spoolss_MonitorUi,
+               &ett_spoolss_spoolss_AddPrinterDriverExFlags,
+               &ett_spoolss_RPC_BINARY_CONTAINER,
+               &ett_spoolss_RPC_BIDI_DATA_u,
+               &ett_spoolss_RPC_BIDI_DATA,
+               &ett_spoolss_RPC_BIDI_REQUEST_DATA,
+               &ett_spoolss_RPC_BIDI_REQUEST_CONTAINER,
+               &ett_spoolss_RPC_BIDI_RESPONSE_DATA,
+               &ett_spoolss_RPC_BIDI_RESPONSE_CONTAINER,
+               &ett_spoolss_spoolss_CorePrinterDriver,
+               &ett_spoolss_propertyBlob,
+               &ett_spoolss_RPC_PrintPropertyValueUnion,
+               &ett_spoolss_RPC_PrintPropertyValue,
+               &ett_spoolss_RPC_PrintNamedProperty,
+       };
+
+       proto_dcerpc_spoolss = proto_register_protocol("Spooler SubSystem", "SPOOLSS", "spoolss");
+       proto_register_field_array(proto_dcerpc_spoolss, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_spoolss(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_spoolss, ett_dcerpc_spoolss,
+               &uuid_dcerpc_spoolss, ver_dcerpc_spoolss,
+               spoolss_dissectors, hf_spoolss_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.h b/bin/default/librpc/gen_ndr/packet-dcerpc-spoolss.h
new file mode 100644 (file)
index 0000000..b744cc0
--- /dev/null
@@ -0,0 +1,797 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/spoolss.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/spoolss.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-winreg.h"
+
+#ifndef __PACKET_DCERPC_SPOOLSS_H
+#define __PACKET_DCERPC_SPOOLSS_H
+
+#define PRINTER_STATUS_OK      ( 0x00000000 )
+
+#define JOB_STATUS_QUEUED      ( 0x0000 )
+
+#define MAXDEVICENAME  ( 32 )
+
+#define PRINTER_ENUM_ICONMASK  ( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) )
+
+#define SPL_ARCH_WIN40 ( "WIN40" )
+
+#define SPL_ARCH_W32X86        ( "W32X86" )
+
+#define SPL_ARCH_W32MIPS       ( "W32MIPS" )
+
+#define SPL_ARCH_W32ALPHA      ( "W32ALPHA" )
+
+#define SPL_ARCH_W32PPC        ( "W32PPC" )
+
+#define SPL_ARCH_IA64  ( "IA64" )
+
+#define SPL_ARCH_X64   ( "x64" )
+
+#define SPL_ARCH_ARM   ( "ARM" )
+
+#define SPOOLSS_ARCHITECTURE_ALL       ( "All" )
+
+#define SPOOLSS_ARCHITECTURE_ALL_CLUSTER       ( "AllCluster" )
+
+#define SPOOLSS_ARCHITECTURE_NT_X86    ( "Windows NT x86" )
+
+#define SPOOLSS_ARCHITECTURE_IA_64     ( "Windows IA64" )
+
+#define SPOOLSS_ARCHITECTURE_x64       ( "Windows x64" )
+
+#define SPOOLSS_ARCHITECTURE_4_0       ( "Windows 4.0" )
+
+#define SPOOLSS_ARCHITECTURE_ARM       ( "Windows ARM" )
+
+#define SPOOLSS_DEFAULT_SERVER_PATH    ( "C:\\WINDOWS\\system32\\spool" )
+
+#define SPOOL_PRINTERDATA_KEY  ( "PrinterDriverData" )
+
+#define SPOOL_DSSPOOLER_KEY    ( "DsSpooler" )
+
+#define SPOOL_DSDRIVER_KEY     ( "DsDriver" )
+
+#define SPOOL_DSUSER_KEY       ( "DsUser" )
+
+#define SPOOL_PNPDATA_KEY      ( "PnPData" )
+
+#define SPOOL_OID_KEY  ( "OID" )
+
+#define SPOOL_REG_ASSETNUMBER  ( "assetNumber" )
+
+#define SPOOL_REG_BYTESPERMINUTE       ( "bytesPerMinute" )
+
+#define SPOOL_REG_DEFAULTPRIORITY      ( "defaultPriority" )
+
+#define SPOOL_REG_DESCRIPTION  ( "description" )
+
+#define SPOOL_REG_DRIVERNAME   ( "driverName" )
+
+#define SPOOL_REG_DRIVERVERSION        ( "driverVersion" )
+
+#define SPOOL_REG_FLAGS        ( "flags" )
+
+#define SPOOL_REG_LOCATION     ( "location" )
+
+#define SPOOL_REG_OPERATINGSYSTEM      ( "operatingSystem" )
+
+#define SPOOL_REG_OPERATINGSYSTEMHOTFIX        ( "operatingSystemHotfix" )
+
+#define SPOOL_REG_OPERATINGSYSTEMSERVICEPACK   ( "operatingSystemServicePack" )
+
+#define SPOOL_REG_OPERATINGSYSTEMVERSION       ( "operatingSystemVersion" )
+
+#define SPOOL_REG_PORTNAME     ( "portName" )
+
+#define SPOOL_REG_PRINTATTRIBUTES      ( "printAttributes" )
+
+#define SPOOL_REG_PRINTBINNAMES        ( "printBinNames" )
+
+#define SPOOL_REG_PRINTCOLLATE ( "printCollate" )
+
+#define SPOOL_REG_PRINTCOLOR   ( "printColor" )
+
+#define SPOOL_REG_PRINTDUPLEXSUPPORTED ( "printDuplexSupported" )
+
+#define SPOOL_REG_PRINTENDTIME ( "printEndTime" )
+
+#define SPOOL_REG_PRINTERNAME  ( "printerName" )
+
+#define SPOOL_REG_PRINTFORMNAME        ( "printFormName" )
+
+#define SPOOL_REG_PRINTKEEPPRINTEDJOBS ( "printKeepPrintedJobs" )
+
+#define SPOOL_REG_PRINTLANGUAGE        ( "printLanguage" )
+
+#define SPOOL_REG_PRINTMACADDRESS      ( "printMACAddress" )
+
+#define SPOOL_REG_PRINTMAXCOPIES       ( "printMaxCopies" )
+
+#define SPOOL_REG_PRINTMAXRESOLUTIONSUPPORTED  ( "printMaxResolutionSupported" )
+
+#define SPOOL_REG_PRINTMAXXEXTENT      ( "printMaxXExtent" )
+
+#define SPOOL_REG_PRINTMAXYEXTENT      ( "printMaxYExtent" )
+
+#define SPOOL_REG_PRINTMEDIAREADY      ( "printMediaReady" )
+
+#define SPOOL_REG_PRINTMEDIASUPPORTED  ( "printMediaSupported" )
+
+#define SPOOL_REG_PRINTMEMORY  ( "printMemory" )
+
+#define SPOOL_REG_PRINTMINXEXTENT      ( "printMinXExtent" )
+
+#define SPOOL_REG_PRINTMINYEXTENT      ( "printMinYExtent" )
+
+#define SPOOL_REG_PRINTNETWORKADDRESS  ( "printNetworkAddress" )
+
+#define SPOOL_REG_PRINTNOTIFY  ( "printNotify" )
+
+#define SPOOL_REG_PRINTNUMBERUP        ( "printNumberUp" )
+
+#define SPOOL_REG_PRINTORIENTATIONSSUPPORTED   ( "printOrientationsSupported" )
+
+#define SPOOL_REG_PRINTOWNER   ( "printOwner" )
+
+#define SPOOL_REG_PRINTPAGESPERMINUTE  ( "printPagesPerMinute" )
+
+#define SPOOL_REG_PRINTRATE    ( "printRate" )
+
+#define SPOOL_REG_PRINTRATEUNIT        ( "printRateUnit" )
+
+#define SPOOL_REG_PRINTSEPARATORFILE   ( "printSeparatorFile" )
+
+#define SPOOL_REG_PRINTSHARENAME       ( "printShareName" )
+
+#define SPOOL_REG_PRINTSPOOLING        ( "printSpooling" )
+
+#define SPOOL_REGVAL_PRINTWHILESPOOLING        ( "PrintWhileSpooling" )
+
+#define SPOOL_REGVAL_PRINTAFTERSPOOLED ( "PrintAfterSpooled" )
+
+#define SPOOL_REGVAL_PRINTDIRECT       ( "PrintDirect" )
+
+#define SPOOL_REG_PRINTSTAPLINGSUPPORTED       ( "printStaplingSupported" )
+
+#define SPOOL_REG_PRINTSTARTTIME       ( "printStartTime" )
+
+#define SPOOL_REG_PRINTSTATUS  ( "printStatus" )
+
+#define SPOOL_REG_PRIORITY     ( "priority" )
+
+#define SPOOL_REG_SERVERNAME   ( "serverName" )
+
+#define SPOOL_REG_SHORTSERVERNAME      ( "shortServerName" )
+
+#define SPOOL_REG_UNCNAME      ( "uNCName" )
+
+#define SPOOL_REG_URL  ( "url" )
+
+#define SPOOL_REG_VERSIONNUMBER        ( "versionNumber" )
+
+#define SPL_LOCAL_PORT ( "Local Port" )
+
+#define SPL_TCPIP_PORT ( "Standard TCP/IP Port" )
+
+#define SPL_XCV_MONITOR_LOCALMON       ( ",XcvMonitor Local Port" )
+
+#define SPL_XCV_MONITOR_TCPMON ( ",XcvMonitor Standard TCP/IP Port" )
+
+#define PRINTER_CHANGE_PRINTER ( 0x000000FF )
+
+#define PRINTER_CHANGE_JOB     ( 0x0000FF00 )
+
+#define PRINTER_CHANGE_FORM    ( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
+
+#define PRINTER_CHANGE_PORT    ( (PRINTER_CHANGE_ADD_PORT|PRINTER_CHANGE_CONFIGURE_PORT|PRINTER_CHANGE_DELETE_PORT) )
+
+#define PRINTER_CHANGE_PRINT_PROCESSOR ( 0x07000000 )
+
+#define PRINTER_CHANGE_PRINTER_DRIVER  ( (PRINTER_CHANGE_ADD_PRINTER_DRIVER|PRINTER_CHANGE_SET_PRINTER_DRIVER|PRINTER_CHANGE_DELETE_PRINTER_DRIVER) )
+
+#define PRINTER_CHANGE_ALL     ( (PRINTER_CHANGE_PRINTER|PRINTER_CHANGE_JOB|PRINTER_CHANGE_FORM|PRINTER_CHANGE_PORT|PRINTER_CHANGE_PRINT_PROCESSOR|PRINTER_CHANGE_PRINTER_DRIVER) )
+
+#define SERVER_ALL_ACCESS      ( SEC_STD_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
+
+#define SERVER_READ    ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
+
+#define SERVER_WRITE   ( STANDARD_RIGHTS_WRITE_ACCESS|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE )
+
+#define SERVER_EXECUTE ( SEC_STD_READ_CONTROL|SERVER_ACCESS_ENUMERATE )
+
+#define PRINTER_ALL_ACCESS     ( SEC_STD_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE )
+
+#define PRINTER_READ   ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
+
+#define PRINTER_WRITE  ( STANDARD_RIGHTS_WRITE_ACCESS|PRINTER_ACCESS_USE )
+
+#define PRINTER_EXECUTE        ( SEC_STD_READ_CONTROL|PRINTER_ACCESS_USE )
+
+#define JOB_ALL_ACCESS ( SEC_STD_REQUIRED|JOB_ACCESS_ADMINISTER )
+
+#define JOB_READ       ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
+
+#define JOB_WRITE      ( STANDARD_RIGHTS_WRITE_ACCESS|JOB_ACCESS_ADMINISTER )
+
+#define JOB_EXECUTE    ( SEC_STD_READ_CONTROL|JOB_ACCESS_ADMINISTER )
+
+#define PRINTER_ACE_FULL_CONTROL       ( SEC_GENERIC_ALL|PRINTER_ALL_ACCESS )
+
+#define PRINTER_ACE_MANAGE_DOCUMENTS   ( SEC_GENERIC_ALL|READ_CONTROL_ACCESS )
+
+#define PRINTER_ACE_PRINT      ( GENERIC_EXECUTE_ACCESS|READ_CONTROL_ACCESS|PRINTER_ACCESS_USE )
+
+#define BIDI_ACTION_ENUM_SCHEMA        ( "EnumSchema" )
+
+#define BIDI_ACTION_GET        ( "Get" )
+
+#define BIDI_ACTION_SET        ( "Set" )
+
+#define BIDI_ACTION_GET_ALL    ( "GetAll" )
+
+#define SPLFILE_CONTENT_TYPE_PROP_NAME ( "Spool File Contents" )
+
+#define SPLFILE_CONTENT_TYPE_XPS_MS    ( "TYPE_XPS_MS" )
+
+#define SPLFILE_CONTENT_TYPE_XPS_OPEN  ( "TYPE_XPS_OPEN" )
+
+#define SPLFILE_CONTENT_TYPE_PDL_POSTSCRIPT    ( "TYPE_PDL_POSTSCRIPT" )
+
+#define SPLFILE_CONTENT_TYPE_PDL_UNKNOWN       ( "TYPE_PDL_UNKNOWN" )
+
+extern const value_string spoolss_winreg_Type_vals[];
+int spoolss_dissect_enum_winreg_Type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_Time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_TimeCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define PROCESSOR_ARCHITECTURE_INTEL (0x0000)
+#define PROCESSOR_ARCHITECTURE_ARM (0x0005)
+#define PROCESSOR_ARCHITECTURE_IA64 (0x0006)
+#define PROCESSOR_ARCHITECTURE_AMD64 (0x0009)
+extern const value_string spoolss_spoolss_ProcessorArchitecture_vals[];
+int spoolss_dissect_enum_ProcessorArchitecture(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define PROCESSOR_ARM (0x00000000)
+#define PROCESSOR_INTEL_386 (0x00000182)
+#define PROCESSOR_INTEL_486 (0x000001E6)
+#define PROCESSOR_INTEL_PENTIUM (0x0000024A)
+#define PROCESSOR_INTEL_IA64 (0x00000898)
+#define PROCESSOR_AMD_X8664 (0x000022A0)
+extern const value_string spoolss_spoolss_ProcessorType_vals[];
+int spoolss_dissect_enum_ProcessorType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_MAJOR_VERSION_NT4_95_98_ME (0x00000004)
+#define SPOOLSS_MAJOR_VERSION_2000_2003_XP (0x00000005)
+#define SPOOLSS_MAJOR_VERSION_2008_VISTA (0x00000006)
+extern const value_string spoolss_spoolss_MajorVersion_vals[];
+int spoolss_dissect_enum_MajorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_MINOR_VERSION_0 (0x00000000)
+#define SPOOLSS_MINOR_VERSION_XP (0x00000001)
+#define SPOOLSS_MINOR_VERSION_2003_XP64 (0x00000002)
+#define SPOOLSS_MINOR_VERSION_98 (0x0000000a)
+#define SPOOLSS_MINOR_VERSION_ME (0x0000005a)
+extern const value_string spoolss_spoolss_MinorVersion_vals[];
+int spoolss_dissect_enum_MinorVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_bitmap_PrinterStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_JobStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_DEBUGGING_BUILD (0x00000000)
+#define SPOOLSS_RELEASE_BUILD (0x00000001)
+extern const value_string spoolss_spoolss_Build_vals[];
+int spoolss_dissect_enum_Build(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_PrinterInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA (0x554e4944)
+#define SPOOLSS_DM_SIGNATURE_JTEXP (0x4a544d53)
+#define SPOOLSS_DM_SIGNATURE_PSEXTRA (0x50524956)
+extern const value_string spoolss_spoolss_DM_Signature_vals[];
+int spoolss_dissect_enum_DM_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_LAYOUT_NUP_DISABLED (0x00000000)
+#define SPOOLSS_DM_LAYOUT_NUP_2 (0x00000001)
+#define SPOOLSS_DM_LAYOUT_NUP_4 (0x00000002)
+#define SPOOLSS_DM_LAYOUT_NUP_6 (0x00000003)
+#define SPOOLSS_DM_LAYOUT_NUP_9 (0x00000004)
+#define SPOOLSS_DM_LAYOUT_NUP_16 (0x00000005)
+#define SPOOLSS_DM_LAYOUT_BOOKLET (0x00000006)
+extern const value_string spoolss_spoolss_DM_Layout_vals[];
+int spoolss_dissect_enum_DM_Layout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_NUP_DIRECTION_L2R_T2B (0x00000001)
+#define SPOOLSS_DM_NUP_DIRECTION_T2B_L2R (0x00000002)
+#define SPOOLSS_DM_NUP_DIRECTION_R2L_T2B (0x00000004)
+#define SPOOLSS_DM_NUP_DIRECTION_T2B_R2L (0x00000008)
+extern const value_string spoolss_spoolss_DM_NupDirection_vals[];
+int spoolss_dissect_enum_DM_NupDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_NUP_BORDER_PRINT (0x00000000)
+#define SPOOLSS_DM_NUP_BORDER_NONE (0x00000001)
+extern const value_string spoolss_spoolss_DM_NupBorderFlags_vals[];
+int spoolss_dissect_enum_DM_NupBorderFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_BOOKLET_LEFT_FLIP (0x00000000)
+#define SPOOLSS_DM_BOOKLET_RIGHT_FLIP (0x00000001)
+extern const value_string spoolss_spoolss_DM_BookletFlags_vals[];
+int spoolss_dissect_enum_DM_BookletFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_bitmap_DMPS_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PSDRVEXTRA351(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PSDRVEXTRA400(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_DM_PS_OPTIMIZE_SPEED (0x00000000)
+#define SPOOLSS_DM_PS_OPTIMIZE_PORTABILITY (0x00000001)
+#define SPOOLSS_DM_PS_OPTIMIZE_EPS (0x00000002)
+#define SPOOLSS_DM_PS_OPTIMIZE_ARCHIVAL (0x00000003)
+extern const value_string spoolss_spoolss_DMPS_Dialect_vals[];
+int spoolss_dissect_enum_DMPS_Dialect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_PS_TTDLFMT_DEFAULT (0x00000000)
+#define SPOOLSS_DM_PS_TTDLFMT_TYPE_1 (0x00000001)
+#define SPOOLSS_DM_PS_TTDLFMT_TYPE_3 (0x00000002)
+#define SPOOLSS_DM_PS_TTDLFMT_TYPE_42 (0x00000003)
+extern const value_string spoolss_spoolss_DMPS_TTDLFmt_vals[];
+int spoolss_dissect_enum_DMPS_TTDLFmt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_PS_PSLEVEL_1 (0x00000001)
+#define SPOOLSS_DM_PS_PSLEVEL_2 (0x00000002)
+#define SPOOLSS_DM_PS_PSLEVEL_3 (0x00000003)
+extern const value_string spoolss_spoolss_DMPS_PSLevel_vals[];
+int spoolss_dissect_enum_DMPS_PSLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST (0x0000)
+#define SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST (0x0001)
+#define SPOOLSS_DM_PS_FEED_DIRECTION_LONG_EDGE_FIRST_UPSIDEDOWN (0x0002)
+#define SPOOLSS_DM_PS_FEED_DIRECTION_SHORT_EDGE_FIRST_UPSIDEDOWN (0x0003)
+extern const value_string spoolss_spoolss_DMPS_FeedDirection_vals[];
+int spoolss_dissect_enum_DMPS_FeedDirection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_PSDRVEXTRA500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PSDRVEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UNIDRVEXTRA3_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_DM_UNI_QUALITY_BEST (0x00000000)
+#define SPOOLSS_DM_UNI_QUALITY_MEDIUM (0x00000001)
+#define SPOOLSS_DM_UNI_QUALITY_DRAFT (0x00000002)
+extern const value_string spoolss_spoolss_DMUNI_Quality_vals[];
+int spoolss_dissect_enum_DMUNI_Quality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_bitmap_DMUNI_Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UNIDRVEXTRA500(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UNIDRVEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_JTEXP(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_OEM_DMEXTRA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_DeviceModeFields(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define DMSPEC_NT3 (0x320)
+#define DMSPEC_WIN95_98_ME (0x400)
+#define DMSPEC_NT4_AND_ABOVE (0x401)
+extern const value_string spoolss_spoolss_DeviceModeSpecVersion_vals[];
+int spoolss_dissect_enum_DeviceModeSpecVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMORIENT_PORTRAIT (0x0001)
+#define DMORIENT_LANDSCAPE (0x0002)
+extern const value_string spoolss_spoolss_DeviceModeOrientation_vals[];
+int spoolss_dissect_enum_DeviceModeOrientation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMPAPER_LETTER (0x0001)
+#define DMPAPER_LETTERSMALL (0x0002)
+#define DMPAPER_TABLOID (0x0003)
+#define DMPAPER_LEDGER (0x0004)
+#define DMPAPER_LEGAL (0x0005)
+#define DMPAPER_STATEMENT (0x0006)
+#define DMPAPER_EXECUTIVE (0x0007)
+#define DMPAPER_A3 (0x0008)
+#define DMPAPER_A4 (0x0009)
+#define DMPAPER_A4SMALL (0x000A)
+#define DMPAPER_A5 (0x000B)
+#define DMPAPER_B4 (0x000C)
+#define DMPAPER_B5 (0x000D)
+#define DMPAPER_FOLIO (0x000E)
+#define DMPAPER_QUARTO (0x000F)
+#define DMPAPER_10X14 (0x0010)
+#define DMPAPER_11X17 (0x0011)
+#define DMPAPER_NOTE (0x0012)
+#define DMPAPER_ENV_9 (0x0013)
+#define DMPAPER_ENV_10 (0x0014)
+#define DMPAPER_ENV_11 (0x0015)
+#define DMPAPER_ENV_12 (0x0016)
+#define DMPAPER_ENV_14 (0x0017)
+#define DMPAPER_CSHEET (0x0018)
+#define DMPAPER_DSHEET (0x0019)
+#define DMPAPER_ESHEET (0x001A)
+#define DMPAPER_ENV_DL (0x001B)
+#define DMPAPER_ENV_C5 (0x001C)
+#define DMPAPER_ENV_C3 (0x001D)
+#define DMPAPER_ENV_C4 (0x001E)
+#define DMPAPER_ENV_C6 (0x001F)
+#define DMPAPER_ENV_C65 (0x0020)
+#define DMPAPER_ENV_B4 (0x0021)
+#define DMPAPER_ENV_B5 (0x0022)
+#define DMPAPER_ENV_B6 (0x0023)
+#define DMPAPER_ENV_ITALY (0x0024)
+#define DMPAPER_ENV_MONARCH (0x0025)
+#define DMPAPER_ENV_PERSONAL (0x0026)
+#define DMPAPER_FANFOLD_US (0x0027)
+#define DMPAPER_FANFOLD_STD_GERMAN (0x0028)
+#define DMPAPER_FANFOLD_LGL_GERMAN (0x0029)
+#define DMPAPER_DBL_JAPANESE_POSTCARD (0x0045)
+#define DMPAPER_A6 (0x0046)
+#define DMPAPER_JENV_KAKU2 (0x0047)
+#define DMPAPER_JENV_KAKU3 (0x0048)
+#define DMPAPER_JENV_CHOU3 (0x0049)
+#define DMPAPER_JENV_CHOU4 (0x004A)
+#define DMPAPER_LETTER_ROTATED (0x004B)
+#define DMPAPER_A3_ROTATED (0x004C)
+#define DMPAPER_A4_ROTATED (0x004D)
+#define DMPAPER_A5_ROTATED (0x004E)
+#define DMPAPER_B4_JIS_ROTATED (0x004F)
+#define DMPAPER_B5_JIS_ROTATED (0x0050)
+#define DMPAPER_JAPANESE_POSTCARD_ROTATED (0x0051)
+#define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED (0x0052)
+#define DMPAPER_A6_ROTATED (0x0053)
+#define DMPAPER_JENV_KAKU2_ROTATED (0x0054)
+#define DMPAPER_JENV_KAKU3_ROTATED (0x0055)
+#define DMPAPER_JENV_CHOU3_ROTATED (0x0056)
+#define DMPAPER_JENV_CHOU4_ROTATED (0x0057)
+#define DMPAPER_B6_JIS (0x0058)
+#define DMPAPER_B6_JIS_ROTATED (0x0059)
+#define DMPAPER_12X11 (0x005A)
+#define DMPAPER_JENV_YOU4 (0x005B)
+#define DMPAPER_JENV_YOU4_ROTATED (0x005C)
+#define DMPAPER_P16K (0x005D)
+#define DMPAPER_P32K (0x005E)
+#define DMPAPER_P32KBIG (0x005F)
+#define DMPAPER_PENV_1 (0x0060)
+#define DMPAPER_PENV_2 (0x0061)
+#define DMPAPER_PENV_3 (0x0062)
+#define DMPAPER_PENV_4 (0x0063)
+#define DMPAPER_PENV_5 (0x0064)
+#define DMPAPER_PENV_6 (0x0065)
+#define DMPAPER_PENV_7 (0x0066)
+#define DMPAPER_PENV_8 (0x0067)
+#define DMPAPER_PENV_9 (0x0068)
+#define DMPAPER_PENV_10 (0x0069)
+#define DMPAPER_P16K_ROTATED (0x006A)
+#define DMPAPER_P32K_ROTATED (0x006B)
+#define DMPAPER_P32KBIG_ROTATED (0x006C)
+#define DMPAPER_PENV_1_ROTATED (0x006D)
+#define DMPAPER_PENV_2_ROTATED (0x006E)
+#define DMPAPER_PENV_3_ROTATED (0x006F)
+#define DMPAPER_PENV_4_ROTATED (0x0070)
+#define DMPAPER_PENV_5_ROTATED (0x0071)
+#define DMPAPER_PENV_6_ROTATED (0x0072)
+#define DMPAPER_PENV_7_ROTATED (0x0073)
+#define DMPAPER_PENV_8_ROTATED (0x0074)
+#define DMPAPER_PENV_9_ROTATED (0x0075)
+#define DMPAPER_PENV_10_ROTATED (0x0076)
+extern const value_string spoolss_spoolss_DeviceModePaperSize_vals[];
+int spoolss_dissect_enum_DeviceModePaperSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMBIN_UPPER (0x0001)
+#define DMBIN_LOWER (0x0002)
+#define DMBIN_MIDDLE (0x0003)
+#define DMBIN_MANUAL (0x0004)
+#define DMBIN_ENVELOPE (0x0005)
+#define DMBIN_ENVMANUAL (0x0006)
+#define DMBIN_AUTO (0x0007)
+#define DMBIN_TRACTOR (0x0008)
+#define DMBIN_SMALLFMT (0x0009)
+#define DMBIN_LARGEFMT (0x000a)
+#define DMBIN_LARGECAPACITY (0x000b)
+#define DMBIN_CASSETTE (0x000e)
+#define DMBIN_FORMSOURCE (0x000f)
+extern const value_string spoolss_spoolss_DeviceModeDefaultSource_vals[];
+int spoolss_dissect_enum_DeviceModeDefaultSource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMRES_HIGH (0xfffc)
+#define DMRES_MEDIUM (0xfffd)
+#define DMRES_LOW (0xfffe)
+#define DMRES_DRAFT (0xffff)
+extern const value_string spoolss_spoolss_DeviceModePrintQuality_vals[];
+int spoolss_dissect_enum_DeviceModePrintQuality(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMRES_MONOCHROME (0x0001)
+#define DMRES_COLOR (0x0002)
+extern const value_string spoolss_spoolss_DeviceModeColor_vals[];
+int spoolss_dissect_enum_DeviceModeColor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMDUP_SIMPLEX (0x0001)
+#define DMDUP_VERTICAL (0x0002)
+#define DMDUP_HORIZONTAL (0x0003)
+extern const value_string spoolss_spoolss_DeviceModeDuplex_vals[];
+int spoolss_dissect_enum_DeviceModeDuplex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMTT_BITMAP (0x0001)
+#define DMTT_DOWNLOAD (0x0002)
+#define DMTT_SUBDEV (0x0003)
+#define DMTT_DOWNLOAD_OUTLINE (0x0004)
+extern const value_string spoolss_spoolss_DeviceModeTTOption_vals[];
+int spoolss_dissect_enum_DeviceModeTTOption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMCOLLATE_FALSE (0x0000)
+#define DMCOLLATE_TRUE (0x0001)
+extern const value_string spoolss_spoolss_DeviceModeCollate_vals[];
+int spoolss_dissect_enum_DeviceModeCollate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMNUP_SYSTEM (0x00000001)
+#define DMNUP_ONEUP (0x00000002)
+extern const value_string spoolss_spoolss_DeviceModeNUp_vals[];
+int spoolss_dissect_enum_DeviceModeNUp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMICMMETHOD_NONE (0x00000001)
+#define DMICMMETHOD_SYSTEM (0x00000002)
+#define DMICMMETHOD_DRIVER (0x00000003)
+#define DMICMMETHOD_DEVICE (0x00000004)
+extern const value_string spoolss_spoolss_DeviceModeICMMethod_vals[];
+int spoolss_dissect_enum_DeviceModeICMMethod(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMICM_SATURATE (0x00000001)
+#define DMICM_CONTRAST (0x00000002)
+#define DMICM_COLORIMETRIC (0x00000003)
+#define DMICM_ABS_COLORIMETRIC (0x00000004)
+extern const value_string spoolss_spoolss_DeviceModeICMIntent_vals[];
+int spoolss_dissect_enum_DeviceModeICMIntent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMMEDIA_STANDARD (0x00000001)
+#define DMMEDIA_TRANSPARENCY (0x00000002)
+#define DMMEDIA_GLOSSY (0x00000003)
+extern const value_string spoolss_spoolss_DeviceModeMediaType_vals[];
+int spoolss_dissect_enum_DeviceModeMediaType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define DMDITHER_NONE (0x00000001)
+#define DMDITHER_COARSE (0x00000002)
+#define DMDITHER_FINE (0x00000003)
+#define DMDITHER_LINEART (0x00000004)
+#define DMDITHER_ERRORDIFFUSION (0x00000005)
+#define DMDITHER_RESERVED6 (0x00000006)
+#define DMDITHER_RESERVED7 (0x00000007)
+#define DMDITHER_RESERVED8 (0x00000008)
+#define DMDITHER_RESERVED9 (0x00000009)
+#define DMDITHER_GRAYSCALE (0x0000000A)
+extern const value_string spoolss_spoolss_DeviceModeDitherType_vals[];
+int spoolss_dissect_enum_DeviceModeDitherType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_DeviceMode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_EnumPrinterFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_PrinterAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_DsPrintAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DeviceModeInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DevmodeContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_JobInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_JobInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_JobInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_JobInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetJobInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetJobInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetJobInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_JobInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_JOB_CONTROL_PAUSE (1)
+#define SPOOLSS_JOB_CONTROL_RESUME (2)
+#define SPOOLSS_JOB_CONTROL_CANCEL (3)
+#define SPOOLSS_JOB_CONTROL_RESTART (4)
+#define SPOOLSS_JOB_CONTROL_DELETE (5)
+#define SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER (6)
+#define SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED (7)
+#define SPOOLSS_JOB_CONTROL_RETAIN (8)
+#define SPOOLSS_JOB_CONTROL_RELEASE (9)
+extern const value_string spoolss_spoolss_JobControl_vals[];
+int spoolss_dissect_enum_JobControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SPOOLSS_PRINTER_CONTROL_UNPAUSE (0)
+#define SPOOLSS_PRINTER_CONTROL_PAUSE (1)
+#define SPOOLSS_PRINTER_CONTROL_RESUME (2)
+#define SPOOLSS_PRINTER_CONTROL_PURGE (3)
+#define SPOOLSS_PRINTER_CONTROL_SET_STATUS (4)
+extern const value_string spoolss_spoolss_PrinterControl_vals[];
+int spoolss_dissect_enum_PrinterControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_SetPrinterInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfo9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPrinterInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_StringArray(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_DRIVER_VERSION_9X (0)
+#define SPOOLSS_DRIVER_VERSION_NT35 (1)
+#define SPOOLSS_DRIVER_VERSION_NT4 (2)
+#define SPOOLSS_DRIVER_VERSION_200X (3)
+#define SPOOLSS_DRIVER_VERSION_2012 (4)
+extern const value_string spoolss_spoolss_DriverOSVersion_vals[];
+int spoolss_dissect_enum_DriverOSVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_AddDriverInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_DriverAttributes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddDriverInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_DRIVER_FILE_TYPE_RENDERING (0x00000000)
+#define SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION (0x00000001)
+#define SPOOLSS_DRIVER_FILE_TYPE_DATA (0x00000002)
+#define SPOOLSS_DRIVER_FILE_TYPE_HELP (0x00000003)
+#define SPOOLSS_DRIVER_FILE_TYPE_OTHER (0x00000004)
+extern const value_string spoolss_spoolss_DriverFileType_vals[];
+int spoolss_dissect_enum_DriverFileType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_DriverFileInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverInfo101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DriverDirectoryInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrintProcessorInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrintProcessorDirectoryInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DocumentInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_DocumentInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_OSVersion(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_OSVersionEx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SPOOLSS_FORM_USER (0)
+#define SPOOLSS_FORM_BUILTIN (1)
+#define SPOOLSS_FORM_PRINTER (2)
+extern const value_string spoolss_spoolss_FormFlags_vals[];
+int spoolss_dissect_enum_FormFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_FormSize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_FormArea(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_FormInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_FormStringType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_FormInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddFormInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddFormInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddFormInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PortInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_PortType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PortInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define PORT_STATUS_CLEAR (0x00000000)
+#define PORT_STATUS_OFFLINE (0x00000001)
+#define PORT_STATUS_PAPER_JAM (0x00000002)
+#define PORT_STATUS_PAPER_OUT (0x00000003)
+#define PORT_STATUS_OUTPUT_BIN_FULL (0x00000004)
+#define PORT_STATUS_PAPER_PROBLEM (0x00000005)
+#define PORT_STATUS_NO_TONER (0x00000006)
+#define PORT_STATUS_DOOR_OPEN (0x00000007)
+#define PORT_STATUS_USER_INTERVENTION (0x00000008)
+#define PORT_STATUS_OUT_OF_MEMORY (0x00000009)
+#define PORT_STATUS_TONER_LOW (0x0000000A)
+#define PORT_STATUS_WARMING_UP (0x0000000B)
+#define PORT_STATUS_POWER_SAVE (0x0000000C)
+extern const value_string spoolss_spoolss_PortStatus_vals[];
+int spoolss_dissect_enum_PortStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define PORT_STATUS_TYPE_ERROR (0x00000001)
+#define PORT_STATUS_TYPE_WARNING (0x00000002)
+#define PORT_STATUS_TYPE_INFO (0x00000003)
+extern const value_string spoolss_spoolss_PortSeverity_vals[];
+int spoolss_dissect_enum_PortSeverity(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_PortInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PortInfoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_MonitorInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_MonitorInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPortInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPortInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPortInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPortInfoFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_SetPortInfoContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UNIVERSAL_FONT_ID(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UNIVERSAL_FONT_ID_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddMonitorInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_AddMonitorInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_MonitorContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrintProcDataTypesInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_PrinterChangeFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PortVarContainer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define JOB_NOTIFY_FIELD_PRINTER_NAME (0x00)
+#define JOB_NOTIFY_FIELD_MACHINE_NAME (0x01)
+#define JOB_NOTIFY_FIELD_PORT_NAME (0x02)
+#define JOB_NOTIFY_FIELD_USER_NAME (0x03)
+#define JOB_NOTIFY_FIELD_NOTIFY_NAME (0x04)
+#define JOB_NOTIFY_FIELD_DATATYPE (0x05)
+#define JOB_NOTIFY_FIELD_PRINT_PROCESSOR (0x06)
+#define JOB_NOTIFY_FIELD_PARAMETERS (0x07)
+#define JOB_NOTIFY_FIELD_DRIVER_NAME (0x08)
+#define JOB_NOTIFY_FIELD_DEVMODE (0x09)
+#define JOB_NOTIFY_FIELD_STATUS (0x0a)
+#define JOB_NOTIFY_FIELD_STATUS_STRING (0x0b)
+#define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR (0x0c)
+#define JOB_NOTIFY_FIELD_DOCUMENT (0x0d)
+#define JOB_NOTIFY_FIELD_PRIORITY (0x0e)
+#define JOB_NOTIFY_FIELD_POSITION (0x0f)
+#define JOB_NOTIFY_FIELD_SUBMITTED (0x10)
+#define JOB_NOTIFY_FIELD_START_TIME (0x11)
+#define JOB_NOTIFY_FIELD_UNTIL_TIME (0x12)
+#define JOB_NOTIFY_FIELD_TIME (0x13)
+#define JOB_NOTIFY_FIELD_TOTAL_PAGES (0x14)
+#define JOB_NOTIFY_FIELD_PAGES_PRINTED (0x15)
+#define JOB_NOTIFY_FIELD_TOTAL_BYTES (0x16)
+#define JOB_NOTIFY_FIELD_BYTES_PRINTED (0x17)
+extern const value_string spoolss_spoolss_JobNotifyField_vals[];
+int spoolss_dissect_enum_JobNotifyField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define PRINTER_NOTIFY_FIELD_SERVER_NAME (0x00)
+#define PRINTER_NOTIFY_FIELD_PRINTER_NAME (0x01)
+#define PRINTER_NOTIFY_FIELD_SHARE_NAME (0x02)
+#define PRINTER_NOTIFY_FIELD_PORT_NAME (0x03)
+#define PRINTER_NOTIFY_FIELD_DRIVER_NAME (0x04)
+#define PRINTER_NOTIFY_FIELD_COMMENT (0x05)
+#define PRINTER_NOTIFY_FIELD_LOCATION (0x06)
+#define PRINTER_NOTIFY_FIELD_DEVMODE (0x07)
+#define PRINTER_NOTIFY_FIELD_SEPFILE (0x08)
+#define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR (0x09)
+#define PRINTER_NOTIFY_FIELD_PARAMETERS (0x0a)
+#define PRINTER_NOTIFY_FIELD_DATATYPE (0x0b)
+#define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR (0x0c)
+#define PRINTER_NOTIFY_FIELD_ATTRIBUTES (0x0d)
+#define PRINTER_NOTIFY_FIELD_PRIORITY (0x0e)
+#define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY (0x0f)
+#define PRINTER_NOTIFY_FIELD_START_TIME (0x10)
+#define PRINTER_NOTIFY_FIELD_UNTIL_TIME (0x11)
+#define PRINTER_NOTIFY_FIELD_STATUS (0x12)
+#define PRINTER_NOTIFY_FIELD_STATUS_STRING (0x13)
+#define PRINTER_NOTIFY_FIELD_CJOBS (0x14)
+#define PRINTER_NOTIFY_FIELD_AVERAGE_PPM (0x15)
+#define PRINTER_NOTIFY_FIELD_TOTAL_PAGES (0x16)
+#define PRINTER_NOTIFY_FIELD_PAGES_PRINTED (0x17)
+#define PRINTER_NOTIFY_FIELD_TOTAL_BYTES (0x18)
+#define PRINTER_NOTIFY_FIELD_BYTES_PRINTED (0x19)
+#define PRINTER_NOTIFY_FIELD_OBJECT_GUID (0x1a)
+#define PRINTER_NOTIFY_FIELD_FRIENDLY_NAME (0x1b)
+extern const value_string spoolss_spoolss_PrintNotifyField_vals[];
+int spoolss_dissect_enum_PrintNotifyField(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define PRINTER_NOTIFY_TYPE (0x00)
+#define JOB_NOTIFY_TYPE (0x01)
+extern const value_string spoolss_spoolss_NotifyType_vals[];
+int spoolss_dissect_enum_NotifyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_NotifyOptionType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_spoolssNotifyOptionFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_NotifyOption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_NotifyString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NOTIFY_TABLE_DWORD (0x0001)
+#define NOTIFY_TABLE_STRING (0x0002)
+#define NOTIFY_TABLE_DEVMODE (0x0003)
+#define NOTIFY_TABLE_TIME (0x0004)
+#define NOTIFY_TABLE_SECURITYDESCRIPTOR (0x0005)
+extern const value_string spoolss_spoolss_NotifyTable_vals[];
+int spoolss_dissect_enum_NotifyTable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_Notify(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_NotifyInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_PrinterNotifyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UserLevel1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UserLevel2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UserLevel3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_UserLevelCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_AccessRights(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PrinterEnumValues(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_DeleteDriverFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define PROTOCOL_RAWTCP_TYPE (1)
+#define PROTOCOL_LPR_TYPE (2)
+extern const value_string spoolss_spoolss_PortProtocol_vals[];
+int spoolss_dissect_enum_PortProtocol(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_PortData1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_PortData2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_MonitorUi(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_bitmap_AddPrinterDriverExFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define BIDI_NULL (0x00000000)
+#define BIDI_INT (0x00000001)
+#define BIDI_FLOAT (0x00000002)
+#define BIDI_BOOL (0x00000003)
+#define BIDI_STRING (0x00000004)
+#define BIDI_TEXT (0x00000005)
+#define BIDI_ENUM (0x00000006)
+#define BIDI_BLOB (0x00000007)
+extern const value_string spoolss_BIDI_TYPE_vals[];
+int spoolss_dissect_enum_BIDI_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_RPC_BINARY_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_BIDI_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_BIDI_REQUEST_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_BIDI_REQUEST_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_BIDI_RESPONSE_DATA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_BIDI_RESPONSE_CONTAINER(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_CorePrinterDriver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define kRpcPropertyTypeString (1)
+#define kRpcPropertyTypeInt32 (2)
+#define kRpcPropertyTypeInt64 (3)
+#define kRpcPropertyTypeByte (4)
+#define kRpcPropertyTypeBuffer (5)
+extern const value_string spoolss_RPC_EPrintPropertyType_vals[];
+int spoolss_dissect_enum_RPC_EPrintPropertyType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int spoolss_dissect_struct_propertyBlob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_PrintPropertyValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int spoolss_dissect_struct_RPC_PrintNamedProperty(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_SPOOLSS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.c
new file mode 100644 (file)
index 0000000..e1b3fc9
--- /dev/null
@@ -0,0 +1,21477 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/srvsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/srvsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-srvsvc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_srvsvc = -1;
+static gint ett_srvsvc_svcctl_ServerType = -1;
+static gint ett_srvsvc_security_secinfo = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevCtr0 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevInfo1 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevCtr1 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevInfo = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevCtr = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQCtr0 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQInfo1 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQCtr1 = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQInfo = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQCtr = -1;
+static gint ett_srvsvc_srvsvc_NetCharDevQInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetConnInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetConnCtr0 = -1;
+static gint ett_srvsvc_srvsvc_NetConnInfo1 = -1;
+static gint ett_srvsvc_srvsvc_NetConnCtr1 = -1;
+static gint ett_srvsvc_srvsvc_NetConnCtr = -1;
+static gint ett_srvsvc_srvsvc_NetConnInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetFileInfo2 = -1;
+static gint ett_srvsvc_srvsvc_NetFileCtr2 = -1;
+static gint ett_srvsvc_srvsvc_NetFileInfo3 = -1;
+static gint ett_srvsvc_srvsvc_NetFileCtr3 = -1;
+static gint ett_srvsvc_srvsvc_NetFileInfo = -1;
+static gint ett_srvsvc_srvsvc_NetFileCtr = -1;
+static gint ett_srvsvc_srvsvc_NetFileInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetSessInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetSessCtr0 = -1;
+static gint ett_srvsvc_srvsvc_NetSessInfo1 = -1;
+static gint ett_srvsvc_srvsvc_NetSessCtr1 = -1;
+static gint ett_srvsvc_srvsvc_NetSessInfo2 = -1;
+static gint ett_srvsvc_srvsvc_NetSessCtr2 = -1;
+static gint ett_srvsvc_srvsvc_NetSessInfo10 = -1;
+static gint ett_srvsvc_srvsvc_NetSessCtr10 = -1;
+static gint ett_srvsvc_srvsvc_NetSessInfo502 = -1;
+static gint ett_srvsvc_srvsvc_NetSessCtr502 = -1;
+static gint ett_srvsvc_srvsvc_NetSessCtr = -1;
+static gint ett_srvsvc_srvsvc_NetSessInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr0 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo1 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr1 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo2 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr2 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo501 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr501 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo502 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr502 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo1004 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr1004 = -1;
+static gint ett_srvsvc_NetShareInfo1005Flags = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo1005 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr1005 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo1006 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr1006 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo1007 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr1007 = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr1501 = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfo = -1;
+static gint ett_srvsvc_srvsvc_NetShareCtr = -1;
+static gint ett_srvsvc_srvsvc_NetShareInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo100 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo101 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo102 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo402 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo403 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo502 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo503 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo599 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1005 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1010 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1016 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1017 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1018 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1107 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1501 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1502 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1503 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1506 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1509 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1510 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1511 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1512 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1513 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1514 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1515 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1516 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1518 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1520 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1521 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1522 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1523 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1524 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1525 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1528 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1529 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1530 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1533 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1534 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1535 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1536 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1537 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1538 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1539 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1540 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1541 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1542 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1543 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1544 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1545 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1546 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1547 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1548 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1549 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1550 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1552 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1553 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1554 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1555 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo1556 = -1;
+static gint ett_srvsvc_srvsvc_NetSrvInfo = -1;
+static gint ett_srvsvc_srvsvc_NetDiskInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetDiskInfo = -1;
+static gint ett_srvsvc_srvsvc_Statistics = -1;
+static gint ett_srvsvc_srvsvc_NetTransportInfo0 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportCtr0 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportInfo1 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportCtr1 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportInfo2 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportCtr2 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportInfo3 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportCtr3 = -1;
+static gint ett_srvsvc_srvsvc_NetTransportCtr = -1;
+static gint ett_srvsvc_srvsvc_NetTransportInfoCtr = -1;
+static gint ett_srvsvc_srvsvc_NetRemoteTODInfo = -1;
+static gint ett_srvsvc_srvsvc_NetTransportInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_srvsvc_srvsvc_NetDiskInfo0_disk = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_user = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr1_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1536 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info502 = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_threadcountadd = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_hunds = -1;
+static gint hf_srvsvc_srvsvc_NetShareAdd_level = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelCommit_hnd = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_networkerrortreshold = -1;
+static gint hf_srvsvc_srvsvc_NetServerTransportAddEx_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxkeepcomplsearch = -1;
+static gint hf_srvsvc_srvsvc_NetDiskEnum_maxlen = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_mins = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_accessalert = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo_info0 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_initsesstable = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo1_num_open = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1509_maxrawbuflen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_sesssvc = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr1007 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQCtr1_count = -1;
+static gint hf_srvsvc_srvsvc_NetShareSetInfo_share_name = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1501_count = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_vcs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_minfreeconnections = -1;
+static gint hf_srvsvc_srvsvc_NetPRNameCompare_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxfreeconnections = -1;
+static gint hf_srvsvc_srvsvc_Statistics_bytessent_low = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1529 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_alertsched = -1;
+static gint hf_srvsvc_srvsvc_NetDiskInfo0___disk_length = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_numfiletasks = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_diskspacetreshold = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_announce = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_accessalert = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_transport = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr1_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info1501 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_name = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetFileClose_fid = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_auditedevents = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1554_linkinfovalidtime = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_user_flags = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxlinkdelay = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr2_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1540_enablesharednetdrives = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo_info3 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_comment = -1;
+static gint hf_srvsvc_srvsvc_Statistics_start = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnumAll_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_user = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_numfiletasks = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQGetInfo_queue_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_sessconns = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_sesssvc = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo_info1 = -1;
+static gint hf_srvsvc_srvsvc_NetGetFileSecurity_sd_buf = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo0_conn_id = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxmpxct = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_sessconns = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_unknown1 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_rawworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnumAll_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_minrcvqueue = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo_info1 = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENCRYPT_DATA = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_threadcountadd = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo3_user = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_weekday = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_addr_len = -1;
+static gint hf_srvsvc_srvsvc_Statistics_bytesrcvd_low = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1549_networkerrortreshold = -1;
+static gint hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_servicebitsofinterest = -1;
+static gint hf_srvsvc_srvsvc_NetTransportEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1542_maxfreeconnections = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enableoplockforceclose = -1;
+static gint hf_srvsvc_srvsvc_NetSrvGetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetNameValidate_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1511 = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr501 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo0_addr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_opensearch = -1;
+static gint hf_srvsvc_srvsvc_NetFileCtr3_array = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr_ctr0 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1552_maxlinkdelay = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxkeepcomplsearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enablefcbopens = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_version_minor = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1501 = -1;
+static gint hf_srvsvc_srvsvc_NetDiskEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1107 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1520 = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_FORCE_LEVELII_OPLOCK = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo_info0 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1006_max_users = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_openfiles = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_rawworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_oplockbreakresponsewait = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info502 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_initworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetTransportAdd_level = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_timesource = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSetServiceBits_updateimmediately = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1537 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1534 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1525_maxkeepcomplsearch = -1;
+static gint hf_srvsvc_srvsvc_NetFileCtr3_count = -1;
+static gint hf_srvsvc_srvsvc_NetShareCheck_device_name = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1528 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_scavtimeout = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_guestaccount = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1538_enablefcbopens = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_alist_mtime = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr0_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_alertsched = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1529_minrcvqueue = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_erroralert = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_share = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info599 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxcopywritelen = -1;
+static gint hf_srvsvc_srvsvc_NetShareSetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_num_open = -1;
+static gint hf_srvsvc_srvsvc_NetGetFileSecurity_share = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enablesharednetdrives = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxcopyreadlen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1509 = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo1_client = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1540 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1005_dfs_flags = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_sessusers = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo0_device = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_domain = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_chdevjobs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_threadpriority = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevCtr1_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1017_announce = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_guestaccount = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_client = -1;
+static gint hf_srvsvc_srvsvc_NetShareDel_share_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxmpxct = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevCtr0_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_alerts = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo101_comment = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1556_maxworkitemidletime = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelStart_hnd = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info403 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo501_csc_policy = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo1_addr_len = -1;
+static gint hf_srvsvc_srvsvc_NetSetServiceBits_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_srvheuristics = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_version_major = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr1004 = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENABLE_CA = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1510 = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo_info2 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvGetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelSticky_share_name = -1;
+static gint hf_srvsvc_srvsvc_NetConnEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr501_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enableoplockforceclose = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_vcs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_lmannounce = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_irpstacksize = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1018_anndelta = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_diskalert = -1;
+static gint hf_srvsvc_srvsvc_NetFileGetInfo_fid = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1544_initconntable = -1;
+static gint hf_srvsvc_srvsvc_NetTransportAdd_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelStart_reserved = -1;
+static gint hf_srvsvc_srvsvc_NetNameValidate_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQCtr1_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo501_type = -1;
+static gint hf_srvsvc_srvsvc_NetConnEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_minfreeworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_initworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetGetFileSecurity_securityinformation = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_permissions = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1555_scavqosinfoupdatetime = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_minfreeconnections = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_elapsed = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_maxaudits = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_timesource = -1;
+static gint hf_srvsvc_srvsvc_NetSessDel_client = -1;
+static gint hf_srvsvc_srvsvc_NetServerStatisticsGet_stats = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_chdevjobs = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo0_name = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQSetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1534_oplockbreakwait = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info0 = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_secs = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1007_flags = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_minkeepcomplsearch = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQEnum_user = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo1_priority = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo0_name = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr2_count = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTOD_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo0_addr_len = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxcopyreadlen = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo0_device = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_sesssvc = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_unknown3 = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1501_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareSetInfo_parm_error = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_platform_id = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr_ctr10 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo101_version_minor = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQSetInfo_parm_error = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1550_diskspacetreshold = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enableoplocks = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr501_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareDel_reserved = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_acceptdownlevelapis = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_security = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_conn_id = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_user_flags = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1502 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1541_minfreeconnections = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_linkinfovalidtime = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_AUTO_REINT = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_sessreqs = -1;
+static gint hf_srvsvc_srvsvc_NetShareAdd_parm_error = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info100 = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr502_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1514_enablesoftcompat = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_minlinkthroughput = -1;
+static gint hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_updateimmediately = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_conn_time = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1543_initsesstable = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_xactmemsize = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevGetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_Statistics_stimeouts = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_sessopen = -1;
+static gint hf_srvsvc_srvsvc_Statistics_bytessent_high = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo1_domain = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1007_alternate_directory_name = -1;
+static gint hf_srvsvc_srvsvc_NetConnCtr0_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_minkeepsearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_acceptdownlevelapis = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr2_array = -1;
+static gint hf_srvsvc_srvsvc_NetGetFileSecurity_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_maxpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo10_client = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr_ctr0 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQPurge_queue_name = -1;
+static gint hf_srvsvc_srvsvc_Statistics_jobsqueued = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1550 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info1007 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQGetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1513 = -1;
+static gint hf_srvsvc_srvsvc_NetSetFileSecurity_file = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_activelocks = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_addr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_anndelta = -1;
+static gint hf_srvsvc_srvsvc_NetFileGetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_unknown = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_threadpriority = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_idle_time = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1537_enableoplockforceclose = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxnonpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_opensearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enableforcedlogoff = -1;
+static gint hf_srvsvc_srvsvc_NetSrvSetInfo_parm_error = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnumAll_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_glist_mtime = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_comment = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1552 = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1004_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_minkeepcomplsearch = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_conn_type = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_year = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr_ctr1 = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo2_fid = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo1_time = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_prefix = -1;
+static gint hf_srvsvc_srvsvc_Statistics_syserrors = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr0 = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_path = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQSetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo1_device = -1;
+static gint hf_srvsvc_srvsvc_NetSetServiceBits_servicebits = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1522_minkeepsearch = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo1_idle_time = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_pathflags = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_logonalert = -1;
+static gint hf_srvsvc_srvsvc_NetShareGetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetDiskEnum_level = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_minfreeworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_connections = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQCtr_ctr1 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxfreeconnections = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_lanmask = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo10_idle_time = -1;
+static gint hf_srvsvc_srvsvc_NetSetServiceBits_transport = -1;
+static gint hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_emulated_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_tinterval = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1536_enableoplocks = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_hours = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENABLE_HASH = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo1_num_ahead = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_timesource = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_domain = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_opensearch = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr1006 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetShareAdd_info = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr0_array = -1;
+static gint hf_srvsvc_srvsvc_NetConnCtr_ctr1 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQSetInfo_queue_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo100_server_name = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1535 = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo1_time = -1;
+static gint hf_srvsvc_srvsvc_NetSetFileSecurity_sd_buf = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1521 = -1;
+static gint hf_srvsvc_srvsvc_NetShareGetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo10_time = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1004_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1502_sessvcs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_numadmin = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1548_errortreshold = -1;
+static gint hf_srvsvc_srvsvc_NetDiskInfo_disks = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr10_array = -1;
+static gint hf_srvsvc_opnum = -1;
+static gint hf_srvsvc_srvsvc_NetConnCtr1_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1006_count = -1;
+static gint hf_srvsvc_srvsvc_NetShareCheck_type = -1;
+static gint hf_srvsvc_srvsvc_NetSrvGetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr0_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_diskalert = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_server_type = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1542 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1512 = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_RESTRICT_EXCLUSIVE_OPENS = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1503 = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_client = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1_count = -1;
+static gint hf_srvsvc_srvsvc_NetTransportDel_info0 = -1;
+static gint hf_srvsvc_srvsvc_NetConnCtr0_array = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ALLOW_NAMESPACE_CACHING = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr502 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_ulist_mtime = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info1006 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1_type = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_shares = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1016_hidden = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo1_user = -1;
+static gint hf_srvsvc_srvsvc_NetFileGetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1543 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxrawbuflen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_opensearch = -1;
+static gint hf_srvsvc_srvsvc_NetDiskEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetDiskInfo0___disk_offset = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_client = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr2_array = -1;
+static gint hf_srvsvc_srvsvc_NetSessDel_user = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr3_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvSetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_Statistics_serrorout = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1005_comment = -1;
+static gint hf_srvsvc_srvsvc_Statistics_sopens = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1544 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1010 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1515 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_numbigbufs = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_addr = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnumAll_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1511_sesscons = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1545_initfiletable = -1;
+static gint hf_srvsvc_srvsvc_NetSetFileSecurity_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_acceptdownlevelapis = -1;
+static gint hf_srvsvc_srvsvc_NetGetFileSecurity_file = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_ulist_mtime = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1522 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevEnum_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo101_version_major = -1;
+static gint hf_srvsvc_srvsvc_NetNameValidate_name_type = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_scavqosinfoupdatetime = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enablesoftcompat = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_xactmemsize = -1;
+static gint hf_srvsvc_srvsvc_NetShareGetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetPRNameCompare_name2 = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_time = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxrawbuflen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_oplockbreakwait = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelSticky_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1524 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_maxaudits = -1;
+static gint hf_srvsvc_srvsvc_NetDiskEnum_info = -1;
+static gint hf_srvsvc_srvsvc_NetFileCtr_ctr2 = -1;
+static gint hf_srvsvc_srvsvc_NetSetFileSecurity_securityinformation = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info2 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1525 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1539_enableraw = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_alist_mtime = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1515_enableforcedlogoff = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevGetInfo_device_name = -1;
+static gint hf_srvsvc_srvsvc_NetFileCtr2_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1516 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_licenses = -1;
+static gint hf_srvsvc_srvsvc_NetConnEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetConnCtr_ctr0 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo101_platform_id = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_chdevs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxnonpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_domain = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_pathtype = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_sizereqbufs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1018 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo1_device = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_openfiles = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo0_net_addr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_shares = -1;
+static gint hf_srvsvc_srvsvc_Statistics_pwerrors = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1512_maxnonpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1533 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_maxworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1549 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_numlockthreads = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info101 = -1;
+static gint hf_srvsvc_srvsvc_NetPathCompare_pathtype = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info1005 = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1007_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1005 = -1;
+static gint hf_srvsvc_srvsvc_NetPathType_pathflags = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_oplockbreakwait = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevCtr1_array = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQCtr0_array = -1;
+static gint hf_srvsvc_srvsvc_NetServerTransportAddEx_info = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetFileCtr2_count = -1;
+static gint hf_srvsvc_srvsvc_NetPathCompare_pathflags = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelStart_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_num_open = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo501_name = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info501 = -1;
+static gint hf_srvsvc_srvsvc_NetPathCompare_path2 = -1;
+static gint hf_srvsvc_srvsvc_NetShareAdd_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_maxnonpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_client_type = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1554 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxworkitemidletime = -1;
+static gint hf_srvsvc_srvsvc_NetPathType_path = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_users = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr_ctr2 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_sd_buf = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enableforcedlogoff = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_time = -1;
+static gint hf_srvsvc_srvsvc_NetPRNameCompare_name_type = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_maxbuf = -1;
+static gint hf_srvsvc_srvsvc_NetShareGetInfo_share_name = -1;
+static gint hf_srvsvc_srvsvc_NetPRNameCompare_name1 = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelSticky_reserved = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1005_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1524_minkeepcomplsearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_numlockthreads = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_enableforcedlogoff = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevCtr_ctr1 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_errortreshold = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo1_user_flags = -1;
+static gint hf_srvsvc_srvsvc_Statistics_reqbufneed = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1004_comment = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enablesharednetdrives = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_permissions = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo1_addr = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_type = -1;
+static gint hf_srvsvc_srvsvc_NetShareCheck_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr0_count = -1;
+static gint hf_srvsvc_srvsvc_NetServerTransportAddEx_level = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevControl_opcode = -1;
+static gint hf_srvsvc_srvsvc_NetConnCtr1_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1516_timesource = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQGetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr1 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info503 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_chdevqs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_rawworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1017 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_unknown2 = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_idle_time = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_comment = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_sesssvc = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo1_status = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQPurge_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_path = -1;
+static gint hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_servicebits = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr0_array = -1;
+static gint hf_srvsvc_srvsvc_NetPathCompare_path1 = -1;
+static gint hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetFileGetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQCtr_ctr0 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_connections = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_sizereqbufs = -1;
+static gint hf_srvsvc_srvsvc_NetFileCtr_ctr3 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_initfiletable = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1528_scavtimeout = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_password = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevCtr_ctr0 = -1;
+static gint hf_srvsvc_srvsvc_NetFileClose_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_lmannounce = -1;
+static gint hf_srvsvc_srvsvc_NetTransportEnum_resume_handle = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_VDO = -1;
+static gint hf_srvsvc_srvsvc_NetShareDelStart_share = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_num_open = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo101_server_name = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr_ctr3 = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr2_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1518 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_netioalert = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info1004 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_numadmin = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_lmannounce = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_sizereqbufs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1523 = -1;
+static gint hf_srvsvc_srvsvc_NetSetFileSecurity_share = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_maxrawbuflen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1548 = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTOD_info = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr1_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1518_lmannounce = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo2_user = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo1_vcs = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_queue_name = -1;
+static gint hf_srvsvc_srvsvc_NetConnInfo1_num_users = -1;
+static gint hf_srvsvc_srvsvc_NetTransportDel_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_sessopen = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevCtr0_count = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr1_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_initconntable = -1;
+static gint hf_srvsvc_srvsvc_NetShareSetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1545 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1553 = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1514 = -1;
+static gint hf_srvsvc_srvsvc_NetShareSetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_Statistics_fopens = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1016 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetDiskInfo_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_glist_mtime = -1;
+static gint hf_srvsvc_srvsvc_Statistics_bigbufneed = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr2 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1510_sessusers = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_enablesoftcompat = -1;
+static gint hf_srvsvc_srvsvc_NetPathType_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1513_maxpagedmemoryusage = -1;
+static gint hf_srvsvc_srvsvc_NetServerStatisticsGet_service = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr3_array = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo1_devices = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo502_client_type = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_activelocks = -1;
+static gint hf_srvsvc_srvsvc_NetServerStatisticsGet_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr_ctr502 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_netioalert = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1553_minlinkthroughput = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_current_users = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_sessusers = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_irpstacksize = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQSetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_sizereqbufs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1530_minfreeworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_max_users = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_domain = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_type = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_minrcvqueue = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr0_count = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevControl_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_maxcopywritelen = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevGetInfo_info = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_sizereqbufs = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevInfo1_user = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_security = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevGetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSessDel_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1547_alertsched = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1546 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQGetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_Statistics_avresponse = -1;
+static gint hf_srvsvc_srvsvc_NetShareDel_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_addr_len = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_alerts = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevControl_device_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_sessopen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enableraw = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1523_maxkeepsearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_sessopen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1107_users = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_scavtimeout = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1520_maxcopyreadlen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1506 = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo0_client = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_initsearchtable = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_reserved = -1;
+static gint hf_srvsvc_srvsvc_NetSrvSetInfo_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetFileEnum_user = -1;
+static gint hf_srvsvc_srvsvc_Statistics_permerrors = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_path = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo3_fid = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1538 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportAdd_info = -1;
+static gint hf_srvsvc_srvsvc_NetDiskEnum_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo0_vcs = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo3_path = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1_name = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnum_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr10_count = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr1005 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportDel_level = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_sessconns = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_initworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_password = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1521_maxcopywritelen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_minkeepsearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_srvheuristics = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo_info2 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_lanmask = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1541 = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr_ctr2 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo1_comment = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr502_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1506_maxworkitems = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_current_users = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo_info1 = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_chdevs = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info402 = -1;
+static gint hf_srvsvc_srvsvc_NetConnEnum_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_name = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enablesoftcompat = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo_info3 = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_month = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1501_sessopens = -1;
+static gint hf_srvsvc_werror = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_day = -1;
+static gint hf_srvsvc_srvsvc_NetNameValidate_flags = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo3_permissions = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_sessusers = -1;
+static gint hf_srvsvc_srvsvc_NetConnEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enableoplocks = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo100_platform_id = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr502_array = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_msecs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_irpstacksize = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_enableraw = -1;
+static gint hf_srvsvc_srvsvc_NetServerStatisticsGet_level = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfoCtr_level = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfoCtr_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_sesssvc = -1;
+static gint hf_srvsvc_srvsvc_NetServerStatisticsGet_options = -1;
+static gint hf_srvsvc_srvsvc_Statistics_bytesrcvd_high = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info102 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_numbigbufs = -1;
+static gint hf_srvsvc_srvsvc_NetPathCanonicalize_can_path = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo_info1 = -1;
+static gint hf_srvsvc_srvsvc_NetTransportEnum_totalentries = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1007_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareEnumAll_resume_handle = -1;
+static gint hf_srvsvc_srvsvc_NetPRNameCompare_flags = -1;
+static gint hf_srvsvc_srvsvc_NetPathType_pathtype = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1533_maxmpxct = -1;
+static gint hf_srvsvc_srvsvc_Statistics_devopens = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1556 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQEnum_max_buffer = -1;
+static gint hf_srvsvc_srvsvc_NetConnEnum_path = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_sessopen = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_disc = -1;
+static gint hf_srvsvc_srvsvc_NetFileInfo3_num_locks = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo3_net_addr = -1;
+static gint hf_srvsvc_srvsvc_NetSrvSetInfo_level = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1006_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_sessreqs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_autopath = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_server_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1546_initsearchtable = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr1005_count = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo2_path = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_chdevqs = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_FORCE_SHARED_DELETE = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo2_net_addr = -1;
+static gint hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_transport = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_logonalert = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_auditprofile = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_enablefcbopens = -1;
+static gint hf_srvsvc_srvsvc_NetSessEnum_user = -1;
+static gint hf_srvsvc_srvsvc_NetRemoteTODInfo_timezone = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_oplockbreakresponsewait = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo1_net_addr = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQGetInfo_user = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo503_maxkeepsearch = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQCtr0_count = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1503_opensearch = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_userpath = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1555 = -1;
+static gint hf_srvsvc_srvsvc_NetSessInfo10_user = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo599_alertsched = -1;
+static gint hf_srvsvc_srvsvc_NetPathCompare_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1547 = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQEnum_info_ctr = -1;
+static gint hf_srvsvc_srvsvc_NetTransportInfo1_name = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_max_users = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo502_opensearch = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo_info0 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo402_numreqbufs = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_DFS_ROOT = -1;
+static gint hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_IN_DFS = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo102_hidden = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr_ctr1501 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1539 = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo501_comment = -1;
+static gint hf_srvsvc_srvsvc_NetTransportEnum_transports = -1;
+static gint hf_srvsvc_srvsvc_NetTransportCtr2_array = -1;
+static gint hf_srvsvc_srvsvc_NetShareInfo502_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1535_oplockbreakresponsewait = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQInfo1_users = -1;
+static gint hf_srvsvc_srvsvc_NetSessCtr_ctr1 = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_erroralert = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_server_unc = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo1010_disc = -1;
+static gint hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_computer_name = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo101_server_type = -1;
+static gint hf_srvsvc_srvsvc_NetShareCtr502_array = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo403_numreqbufs = -1;
+static gint hf_srvsvc_srvsvc_NetSrvInfo_info1530 = -1;
+
+static gint proto_dcerpc_srvsvc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_srvsvc = {
+       0x4b324fc8, 0x1670, 0x01d3,
+       { 0x12, 0x78, 0x5a, 0x47, 0xbf, 0x6e, 0xe1, 0x88 }
+};
+static guint16 ver_dcerpc_srvsvc = 3;
+
+static int srvsvc_dissect_element_NetCharDevInfo0_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo0_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo1_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo1_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo1_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetCharDevInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetCharDevQInfo0_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo0_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_devices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_devices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo1_num_ahead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetCharDevQInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetConnInfo0_conn_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_conn_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_conn_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_conn_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfo1_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetConnInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetFileInfo2_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_num_locks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo3_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileCtr_ctr3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetFileInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetSessInfo0_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo0_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo1_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_client_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo2_client_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo10_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo10_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo10_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo10_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo10_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo10_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr10_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr10_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr10_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr10_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_client_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_client_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfo502_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr502_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr502_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr502_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr502_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr10_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessCtr_ctr502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetSessInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+const value_string srvsvc_srvsvc_ShareType_vals[] = {
+       { STYPE_DISKTREE, "STYPE_DISKTREE" },
+       { STYPE_DISKTREE_TEMPORARY, "STYPE_DISKTREE_TEMPORARY" },
+       { STYPE_DISKTREE_HIDDEN, "STYPE_DISKTREE_HIDDEN" },
+       { STYPE_PRINTQ, "STYPE_PRINTQ" },
+       { STYPE_PRINTQ_TEMPORARY, "STYPE_PRINTQ_TEMPORARY" },
+       { STYPE_PRINTQ_HIDDEN, "STYPE_PRINTQ_HIDDEN" },
+       { STYPE_DEVICE, "STYPE_DEVICE" },
+       { STYPE_DEVICE_TEMPORARY, "STYPE_DEVICE_TEMPORARY" },
+       { STYPE_DEVICE_HIDDEN, "STYPE_DEVICE_HIDDEN" },
+       { STYPE_IPC, "STYPE_IPC" },
+       { STYPE_IPC_TEMPORARY, "STYPE_IPC_TEMPORARY" },
+       { STYPE_IPC_HIDDEN, "STYPE_IPC_HIDDEN" },
+{ 0, NULL }
+};
+static int srvsvc_dissect_element_NetShareInfo0_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_max_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_current_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo501_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo501_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo501_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo501_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo501_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo501_csc_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr501_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr501_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr501_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr501_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_max_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_current_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo502_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr502_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr502_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr502_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr502_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1004_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1004_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1004_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1004_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1004_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1004_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_IN_DFS_tfs = {
+   "SHARE_1005_IN_DFS is SET",
+   "SHARE_1005_IN_DFS is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_DFS_ROOT_tfs = {
+   "SHARE_1005_DFS_ROOT is SET",
+   "SHARE_1005_DFS_ROOT is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_AUTO_REINT_tfs = {
+   "SHARE_1005_CSC_CACHE_AUTO_REINT is SET",
+   "SHARE_1005_CSC_CACHE_AUTO_REINT is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_VDO_tfs = {
+   "SHARE_1005_CSC_CACHE_VDO is SET",
+   "SHARE_1005_CSC_CACHE_VDO is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE_tfs = {
+   "SHARE_1005_CSC_CACHE_NONE is SET",
+   "SHARE_1005_CSC_CACHE_NONE is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_RESTRICT_EXCLUSIVE_OPENS_tfs = {
+   "SHARE_1005_RESTRICT_EXCLUSIVE_OPENS is SET",
+   "SHARE_1005_RESTRICT_EXCLUSIVE_OPENS is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_FORCE_SHARED_DELETE_tfs = {
+   "SHARE_1005_FORCE_SHARED_DELETE is SET",
+   "SHARE_1005_FORCE_SHARED_DELETE is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_ALLOW_NAMESPACE_CACHING_tfs = {
+   "SHARE_1005_ALLOW_NAMESPACE_CACHING is SET",
+   "SHARE_1005_ALLOW_NAMESPACE_CACHING is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM_tfs = {
+   "SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM is SET",
+   "SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_FORCE_LEVELII_OPLOCK_tfs = {
+   "SHARE_1005_FORCE_LEVELII_OPLOCK is SET",
+   "SHARE_1005_FORCE_LEVELII_OPLOCK is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_ENABLE_HASH_tfs = {
+   "SHARE_1005_ENABLE_HASH is SET",
+   "SHARE_1005_ENABLE_HASH is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_ENABLE_CA_tfs = {
+   "SHARE_1005_ENABLE_CA is SET",
+   "SHARE_1005_ENABLE_CA is NOT SET",
+};
+static const true_false_string NetShareInfo1005Flags_SHARE_1005_ENCRYPT_DATA_tfs = {
+   "SHARE_1005_ENCRYPT_DATA is SET",
+   "SHARE_1005_ENCRYPT_DATA is NOT SET",
+};
+static int srvsvc_dissect_element_NetShareInfo1005_dfs_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1005_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1005_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1005_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1005_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1006_max_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1006_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1006_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1006_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1006_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1007_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1007_alternate_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo1007_alternate_directory_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1007_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1007_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1007_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1007_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1501_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1501_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1501_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr1501_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1004_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1005_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1006_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1007_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfo_info1501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1004_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1005_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1006_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1007_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCtr_ctr1501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetShareInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+const value_string srvsvc_srvsvc_PlatformId_vals[] = {
+       { PLATFORM_ID_DOS, "PLATFORM_ID_DOS" },
+       { PLATFORM_ID_OS2, "PLATFORM_ID_OS2" },
+       { PLATFORM_ID_NT, "PLATFORM_ID_NT" },
+       { PLATFORM_ID_OSF, "PLATFORM_ID_OSF" },
+       { PLATFORM_ID_VMS, "PLATFORM_ID_VMS" },
+{ 0, NULL }
+};
+static int srvsvc_dissect_element_NetSrvInfo100_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo100_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo100_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo101_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_disc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_hidden(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_announce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_anndelta(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_licenses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_userpath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo102_userpath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_ulist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_glist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_alist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_alerts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_alerts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_security(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_numadmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_lanmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_guestaccount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_guestaccount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_chdevs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_chdevqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_chdevjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_connections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_shares(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_openfiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_sessreqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_activelocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_numreqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_numbigbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_numfiletasks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_erroralert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_logonalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_accessalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_diskalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_netioalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_maxaudits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_srvheuristics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo402_srvheuristics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_ulist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_glist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_alist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_alerts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_alerts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_security(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_numadmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_lanmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_guestaccount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_guestaccount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_chdevs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_chdevqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_chdevjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_connections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_shares(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_openfiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_sessreqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_activelocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_numreqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_numbigbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_numfiletasks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_erroralert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_logonalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_accessalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_diskalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_netioalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_maxaudits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_srvheuristics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_srvheuristics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_auditedevents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_auditprofile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_autopath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo403_autopath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_initworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_rawworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_irpstacksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_sessconns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_acceptdownlevelapis(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo502_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_initworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_rawworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_irpstacksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_sessconns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_acceptdownlevelapis(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxcopyreadlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxcopywritelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_minkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_minkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_threadcountadd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_numlockthreads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_scavtimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_minrcvqueue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_minfreeworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_xactmemsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_threadpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxmpxct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_oplockbreakwait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_oplockbreakresponsewait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enableoplocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enableoplockforceclose(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enablefcbopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enableraw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_enablesharednetdrives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_minfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo503_maxfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_initworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_rawworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_irpstacksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_sessconns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_acceptdownlevelapis(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxcopyreadlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxcopywritelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_minkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_minkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_threadcountadd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_numlockthreads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_scavtimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_minrcvqueue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_minfreeworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_xactmemsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_threadpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxmpxct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_oplockbreakwait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_oplockbreakresponsewait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enableoplocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enableoplockforceclose(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enablefcbopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enableraw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_enablesharednetdrives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_minfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_initsesstable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_initconntable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_initfiletable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_initsearchtable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_errortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_networkerrortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_diskspacetreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxlinkdelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_minlinkthroughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_linkinfovalidtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_scavqosinfoupdatetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo599_maxworkitemidletime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1005_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1005_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1010_disc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1016_hidden(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1017_announce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1018_anndelta(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1107_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1501_sessopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1502_sessvcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1503_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1506_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1509_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1510_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1511_sesscons(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1512_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1513_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1514_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1515_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1516_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1518_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1520_maxcopyreadlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1521_maxcopywritelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1522_minkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1523_maxkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1524_minkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1525_maxkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1528_scavtimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1529_minrcvqueue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1530_minfreeworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1533_maxmpxct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1534_oplockbreakwait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1535_oplockbreakresponsewait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1536_enableoplocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1537_enableoplockforceclose(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1538_enablefcbopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1539_enableraw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1540_enablesharednetdrives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1541_minfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1542_maxfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1543_initsesstable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1544_initconntable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1545_initfiletable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1546_initsearchtable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1547_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1548_errortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1549_networkerrortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1550_diskspacetreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1552_maxlinkdelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1553_minlinkthroughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1554_linkinfovalidtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1555_scavqosinfoupdatetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo1556_maxworkitemidletime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info102_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info402(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info402_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info403(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info403_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info503_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info599(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info599_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1005_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1010_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1016(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1016_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1017(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1017_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1018_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1107(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1107_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1503_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1506(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1506_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1509(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1509_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1510(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1510_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1511(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1511_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1512(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1512_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1513(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1513_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1514(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1514_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1515(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1515_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1516(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1516_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1518(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1518_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1520(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1520_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1521(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1521_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1522(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1522_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1523(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1523_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1524(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1524_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1525(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1525_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1528(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1528_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1529(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1529_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1530(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1530_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1533(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1533_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1534(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1534_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1535(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1535_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1536(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1536_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1537(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1537_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1538(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1538_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1539(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1539_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1540(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1540_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1541(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1541_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1542(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1542_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1543(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1543_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1544(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1544_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1545(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1545_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1546(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1546_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1547(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1547_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1548(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1548_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1549(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1549_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1550(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1550_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1552(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1552_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1553(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1553_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1554(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1554_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1555(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1555_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1556(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvInfo_info1556_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo0___disk_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo0___disk_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo0_disk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo0_disk_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo_disks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo_disks_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskInfo_disks__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_fopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_devopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_jobsqueued(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_sopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_stimeouts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_serrorout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_pwerrors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_permerrors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_syserrors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_bytessent_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_bytessent_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_bytesrcvd_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_bytesrcvd_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_avresponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_reqbufneed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_Statistics_bigbufneed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo0_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo1_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo2_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportCtr_ctr3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetTransportInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int srvsvc_dissect_element_NetRemoteTODInfo_elapsed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_msecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_mins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_secs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_hunds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_timezone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_tinterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTODInfo_weekday(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevGetInfo_device_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevControl_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevControl_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevControl_device_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevControl_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurge_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurge_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurge_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurgeSelf_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurgeSelf_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurgeSelf_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetCharDevQPurgeSelf_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetConnEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileGetInfo_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileClose_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileClose_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetFileClose_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessDel_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessDel_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessDel_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessDel_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessDel_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSessDel_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareAdd_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnumAll_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareGetInfo_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDel_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDel_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDel_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDel_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelSticky_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelSticky_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelSticky_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelSticky_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCheck_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCheck_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCheck_device_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCheck_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareCheck_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSrvSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_maxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetDiskEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_stats(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_stats_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerStatisticsGet_stats__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportAdd_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportAdd_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportAdd_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_transports(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_transports_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportDel_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportDel_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportDel_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportDel_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetTransportDel_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTOD_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTOD_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTOD_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTOD_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetRemoteTOD_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetServiceBits_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetServiceBits_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetServiceBits_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetServiceBits_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetServiceBits_servicebits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetServiceBits_updateimmediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathType_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathType_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathType_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathType_pathflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathType_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathType_pathtype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_can_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_can_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_maxbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_pathtype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCanonicalize_pathflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCompare_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCompare_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCompare_path1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCompare_path2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCompare_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPathCompare_pathflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetNameValidate_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetNameValidate_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetNameValidate_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetNameValidate_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetNameValidate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPRNameCompare_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPRNameCompare_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPRNameCompare_name1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPRNameCompare_name2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPRNameCompare_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetPRNameCompare_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelStart_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelStart_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelStart_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelStart_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelStart_hnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelStart_hnd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelCommit_hnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetShareDelCommit_hnd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_securityinformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_sd_buf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetGetFileSecurity_sd_buf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_securityinformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetSetFileSecurity_sd_buf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerTransportAddEx_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerTransportAddEx_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerTransportAddEx_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerTransportAddEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_emulated_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_emulated_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_servicebitsofinterest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_servicebits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int srvsvc_dissect_element_NetServerSetServiceBitsEx_updateimmediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+srvsvc_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_srvsvc_svcctl_ServerType);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+srvsvc_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_srvsvc_security_secinfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *device; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevInfo0_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevInfo0_device_, NDR_POINTER_UNIQUE, "Pointer to Device (uint16)",hf_srvsvc_srvsvc_NetCharDevInfo0_device);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo0_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevInfo0_device, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevInfo0_device(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetCharDevInfo0 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetCharDevInfo0)",hf_srvsvc_srvsvc_NetCharDevCtr0_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevCtr0_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevCtr0_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevCtr0);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *device; */
+/* IDL:        uint32 status; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 time; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevInfo1_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevInfo1_device_, NDR_POINTER_UNIQUE, "Pointer to Device (uint16)",hf_srvsvc_srvsvc_NetCharDevInfo1_device);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo1_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevInfo1_device, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevInfo1_status, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevInfo1_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetCharDevInfo1_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevInfo1_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo1_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevInfo1_time, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevInfo1);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevInfo1_device(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevInfo1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevInfo1_user(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevInfo1_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetCharDevInfo1 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetCharDevInfo1)",hf_srvsvc_srvsvc_NetCharDevCtr1_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevCtr1_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevCtr1_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevCtr1);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetCharDevInfo0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetCharDevInfo1 *info1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (srvsvc_NetCharDevInfo0)",hf_srvsvc_srvsvc_NetCharDevInfo_info0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevInfo_info0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (srvsvc_NetCharDevInfo1)",hf_srvsvc_srvsvc_NetCharDevInfo_info1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevInfo_info1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetCharDevInfo");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetCharDevInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetCharDevInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetCharDevCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetCharDevCtr1 *ctr1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (srvsvc_NetCharDevCtr0)",hf_srvsvc_srvsvc_NetCharDevCtr_ctr0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevCtr0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (srvsvc_NetCharDevCtr1)",hf_srvsvc_srvsvc_NetCharDevCtr_ctr1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevCtr1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetCharDevCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetCharDevCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetCharDevCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetCharDevCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetCharDevCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetCharDevInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *device; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo0_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQInfo0_device_, NDR_POINTER_UNIQUE, "Pointer to Device (uint16)",hf_srvsvc_srvsvc_NetCharDevQInfo0_device);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo0_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQInfo0_device, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevQInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevQInfo0_device(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetCharDevQInfo0 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetCharDevQInfo0)",hf_srvsvc_srvsvc_NetCharDevQCtr0_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQCtr0_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQCtr0_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevQCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQCtr0);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevQCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *device; */
+/* IDL:        uint32 priority; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *devices; */
+/* IDL:        uint32 users; */
+/* IDL:        uint32 num_ahead; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_device(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQInfo1_device_, NDR_POINTER_UNIQUE, "Pointer to Device (uint16)",hf_srvsvc_srvsvc_NetCharDevQInfo1_device);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_device_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQInfo1_device, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_priority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQInfo1_priority, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_devices(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQInfo1_devices_, NDR_POINTER_UNIQUE, "Pointer to Devices (uint16)",hf_srvsvc_srvsvc_NetCharDevQInfo1_devices);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_devices_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQInfo1_devices, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQInfo1_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo1_num_ahead(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQInfo1_num_ahead, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevQInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQInfo1);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevQInfo1_device(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQInfo1_priority(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQInfo1_devices(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQInfo1_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQInfo1_num_ahead(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetCharDevQInfo1 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetCharDevQInfo1)",hf_srvsvc_srvsvc_NetCharDevQCtr1_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQCtr1_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQCtr1_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevQCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQCtr1);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevQCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetCharDevQInfo0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetCharDevQInfo1 *info1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (srvsvc_NetCharDevQInfo0)",hf_srvsvc_srvsvc_NetCharDevQInfo_info0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQInfo_info0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (srvsvc_NetCharDevQInfo1)",hf_srvsvc_srvsvc_NetCharDevQInfo_info1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQInfo_info1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetCharDevQInfo");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetCharDevQInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetCharDevQInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetCharDevQCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetCharDevQCtr1 *ctr1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (srvsvc_NetCharDevQCtr0)",hf_srvsvc_srvsvc_NetCharDevQCtr_ctr0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQCtr0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (srvsvc_NetCharDevQCtr1)",hf_srvsvc_srvsvc_NetCharDevQCtr_ctr1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQCtr1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetCharDevQCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetCharDevQCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetCharDevQCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetCharDevQCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetCharDevQInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetCharDevQCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetCharDevQInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetCharDevQInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetCharDevQInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetCharDevQInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 conn_id; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetConnInfo0_conn_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfo0_conn_id, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetConnInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetConnInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetConnInfo0_conn_id(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetConnInfo0 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetConnCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetConnInfo0)",hf_srvsvc_srvsvc_NetConnCtr0_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnCtr0_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetConnInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetConnCtr0_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetConnCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetConnCtr0);
+       }
+       
+       offset = srvsvc_dissect_element_NetConnCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 conn_id; */
+/* IDL:        uint32 conn_type; */
+/* IDL:        uint32 num_open; */
+/* IDL:        uint32 num_users; */
+/* IDL:        uint32 conn_time; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *share; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetConnInfo1_conn_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfo1_conn_id, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_conn_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfo1_conn_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfo1_num_open, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_num_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfo1_num_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_conn_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfo1_conn_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnInfo1_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetConnInfo1_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetConnInfo1_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnInfo1_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_srvsvc_srvsvc_NetConnInfo1_share);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfo1_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetConnInfo1_share, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetConnInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetConnInfo1);
+       }
+       
+       offset = srvsvc_dissect_element_NetConnInfo1_conn_id(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnInfo1_conn_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnInfo1_num_open(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnInfo1_num_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnInfo1_conn_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnInfo1_user(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnInfo1_share(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetConnInfo1 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetConnCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetConnInfo1)",hf_srvsvc_srvsvc_NetConnCtr1_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnCtr1_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetConnInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetConnCtr1_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetConnCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetConnCtr1);
+       }
+       
+       offset = srvsvc_dissect_element_NetConnCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetConnCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetConnCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetConnCtr1 *ctr1; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetConnCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (srvsvc_NetConnCtr0)",hf_srvsvc_srvsvc_NetConnCtr_ctr0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetConnCtr0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetConnCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (srvsvc_NetConnCtr1)",hf_srvsvc_srvsvc_NetConnCtr_ctr1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetConnCtr1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetConnCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetConnCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetConnCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetConnCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetConnCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetConnCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetConnCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetConnInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetConnCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetConnInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetConnInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetConnInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetConnInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 fid; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileInfo2_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileInfo2_fid, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetFileInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileInfo2);
+       }
+       
+       offset = srvsvc_dissect_element_NetFileInfo2_fid(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetFileInfo2 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetFileInfo2)",hf_srvsvc_srvsvc_NetFileCtr2_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileCtr2_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileCtr2_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetFileCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileCtr2);
+       }
+       
+       offset = srvsvc_dissect_element_NetFileCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetFileCtr2_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 fid; */
+/* IDL:        uint32 permissions; */
+/* IDL:        uint32 num_locks; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileInfo3_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileInfo3_fid, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo3_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileInfo3_permissions, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo3_num_locks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileInfo3_num_locks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo3_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileInfo3_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_srvsvc_srvsvc_NetFileInfo3_path);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo3_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileInfo3_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo3_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileInfo3_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetFileInfo3_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo3_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileInfo3_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetFileInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileInfo3);
+       }
+       
+       offset = srvsvc_dissect_element_NetFileInfo3_fid(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetFileInfo3_permissions(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetFileInfo3_num_locks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetFileInfo3_path(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetFileInfo3_user(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetFileInfo3 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileCtr3_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileCtr3_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetFileInfo3)",hf_srvsvc_srvsvc_NetFileCtr3_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileCtr3_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileInfo3(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileCtr3_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetFileCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileCtr3);
+       }
+       
+       offset = srvsvc_dissect_element_NetFileCtr3_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetFileCtr3_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(2)] [unique(1)] [case(2)] srvsvc_NetFileInfo2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] srvsvc_NetFileInfo3 *info3; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (srvsvc_NetFileInfo2)",hf_srvsvc_srvsvc_NetFileInfo_info2);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileInfo_info2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileInfo_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (srvsvc_NetFileInfo3)",hf_srvsvc_srvsvc_NetFileInfo_info3);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfo_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileInfo3(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileInfo_info3,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetFileInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetFileInfo");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 2:
+                       offset = srvsvc_dissect_element_NetFileInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = srvsvc_dissect_element_NetFileInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: union { */
+/* IDL: [case(2)] [unique(1)] [case(2)] srvsvc_NetFileCtr2 *ctr2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] srvsvc_NetFileCtr3 *ctr3; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileCtr_ctr2_, NDR_POINTER_UNIQUE, "Pointer to Ctr2 (srvsvc_NetFileCtr2)",hf_srvsvc_srvsvc_NetFileCtr_ctr2);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileCtr2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileCtr_ctr3_, NDR_POINTER_UNIQUE, "Pointer to Ctr3 (srvsvc_NetFileCtr3)",hf_srvsvc_srvsvc_NetFileCtr_ctr3);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileCtr_ctr3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileCtr3(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileCtr_ctr3,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetFileCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetFileCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 2:
+                       offset = srvsvc_dissect_element_NetFileCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = srvsvc_dissect_element_NetFileCtr_ctr3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetFileCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetFileInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetFileCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetFileInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetFileInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetFileInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetFileInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessInfo0_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo0_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessInfo0_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo0_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo0_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessInfo0_client(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetSessInfo0 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetSessInfo0)",hf_srvsvc_srvsvc_NetSessCtr0_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr0_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr0_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessCtr0);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 num_open; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 idle_time; */
+/* IDL:        uint32 user_flags; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessInfo1_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo1_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessInfo1_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo1_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo1_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetSessInfo1_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo1_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo1_num_open, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo1_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo1_idle_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo1_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo1_user_flags, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessInfo1);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessInfo1_client(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo1_user(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo1_num_open(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo1_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo1_idle_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo1_user_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetSessInfo1 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetSessInfo1)",hf_srvsvc_srvsvc_NetSessCtr1_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr1_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr1_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessCtr1);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 num_open; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 idle_time; */
+/* IDL:        uint32 user_flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client_type; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessInfo2_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo2_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessInfo2_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo2_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo2_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetSessInfo2_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo2_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo2_num_open, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo2_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo2_idle_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo2_user_flags, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_client_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo2_client_type_, NDR_POINTER_UNIQUE, "Pointer to Client Type (uint16)",hf_srvsvc_srvsvc_NetSessInfo2_client_type);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo2_client_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo2_client_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessInfo2);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessInfo2_client(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo2_user(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo2_num_open(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo2_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo2_idle_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo2_user_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo2_client_type(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetSessInfo2 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetSessInfo2)",hf_srvsvc_srvsvc_NetSessCtr2_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr2_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr2_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessCtr2);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessCtr2_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 idle_time; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessInfo10_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo10_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessInfo10_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo10_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo10_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo10_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo10_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetSessInfo10_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo10_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo10_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo10_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo10_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo10_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo10_idle_time, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessInfo10);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessInfo10_client(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo10_user(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo10_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo10_idle_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetSessInfo10 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessCtr10_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessCtr10_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr10_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr10_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetSessInfo10)",hf_srvsvc_srvsvc_NetSessCtr10_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr10_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr10_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr10_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessInfo10(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr10_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessCtr10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessCtr10);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessCtr10_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessCtr10_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user; */
+/* IDL:        uint32 num_open; */
+/* IDL:        uint32 time; */
+/* IDL:        uint32 idle_time; */
+/* IDL:        uint32 user_flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *client_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *transport; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessInfo502_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo502_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessInfo502_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo502_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo502_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetSessInfo502_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo502_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_num_open(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo502_num_open, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo502_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_idle_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo502_idle_time, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_user_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfo502_user_flags, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_client_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo502_client_type_, NDR_POINTER_UNIQUE, "Pointer to Client Type (uint16)",hf_srvsvc_srvsvc_NetSessInfo502_client_type);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_client_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo502_client_type, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessInfo502_transport_, NDR_POINTER_UNIQUE, "Pointer to Transport (uint16)",hf_srvsvc_srvsvc_NetSessInfo502_transport);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfo502_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessInfo502_transport, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessInfo502);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessInfo502_client(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_user(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_num_open(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_idle_time(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_user_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_client_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessInfo502_transport(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetSessInfo502 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessCtr502_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessCtr502_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr502_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr502_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetSessInfo502)",hf_srvsvc_srvsvc_NetSessCtr502_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr502_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr502_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr502_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessInfo502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr502_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessCtr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessCtr502);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessCtr502_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSessCtr502_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetSessCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetSessCtr1 *ctr1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] srvsvc_NetSessCtr2 *ctr2; */
+/* IDL: [case(10)] [unique(1)] [case(10)] srvsvc_NetSessCtr10 *ctr10; */
+/* IDL: [case(502)] [unique(1)] [case(502)] srvsvc_NetSessCtr502 *ctr502; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (srvsvc_NetSessCtr0)",hf_srvsvc_srvsvc_NetSessCtr_ctr0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessCtr0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (srvsvc_NetSessCtr1)",hf_srvsvc_srvsvc_NetSessCtr_ctr1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessCtr1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr_ctr2_, NDR_POINTER_UNIQUE, "Pointer to Ctr2 (srvsvc_NetSessCtr2)",hf_srvsvc_srvsvc_NetSessCtr_ctr2);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessCtr2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr_ctr10_, NDR_POINTER_UNIQUE, "Pointer to Ctr10 (srvsvc_NetSessCtr10)",hf_srvsvc_srvsvc_NetSessCtr_ctr10);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr10_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessCtr10(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr_ctr10,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessCtr_ctr502_, NDR_POINTER_UNIQUE, "Pointer to Ctr502 (srvsvc_NetSessCtr502)",hf_srvsvc_srvsvc_NetSessCtr_ctr502);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessCtr_ctr502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessCtr502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessCtr_ctr502,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSessCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetSessCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetSessCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetSessCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = srvsvc_dissect_element_NetSessCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 10:
+                       offset = srvsvc_dissect_element_NetSessCtr_ctr10(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 502:
+                       offset = srvsvc_dissect_element_NetSessCtr_ctr502(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetSessCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSessInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetSessCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSessInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSessInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetSessInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetSessInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        STYPE_DISKTREE=0, */
+/* IDL:        STYPE_DISKTREE_TEMPORARY=STYPE_DISKTREE|STYPE_TEMPORARY, */
+/* IDL:        STYPE_DISKTREE_HIDDEN=STYPE_DISKTREE|STYPE_HIDDEN, */
+/* IDL:        STYPE_PRINTQ=1, */
+/* IDL:        STYPE_PRINTQ_TEMPORARY=STYPE_PRINTQ|STYPE_TEMPORARY, */
+/* IDL:        STYPE_PRINTQ_HIDDEN=STYPE_PRINTQ|STYPE_HIDDEN, */
+/* IDL:        STYPE_DEVICE=2, */
+/* IDL:        STYPE_DEVICE_TEMPORARY=STYPE_DEVICE|STYPE_TEMPORARY, */
+/* IDL:        STYPE_DEVICE_HIDDEN=STYPE_DEVICE|STYPE_HIDDEN, */
+/* IDL:        STYPE_IPC=3, */
+/* IDL:        STYPE_IPC_TEMPORARY=STYPE_IPC|STYPE_TEMPORARY, */
+/* IDL:        STYPE_IPC_HIDDEN=STYPE_IPC|STYPE_HIDDEN, */
+/* IDL: } */
+
+int
+srvsvc_dissect_enum_ShareType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo0_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo0_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetShareInfo0_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo0_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo0_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo0 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo0)",hf_srvsvc_srvsvc_NetShareCtr0_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr0_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr0_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr0);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        srvsvc_ShareType type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo1_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetShareInfo1_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo1_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_ShareType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo1_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo1_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetShareInfo1_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo1_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo1);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo1_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo1_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo1_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo1 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo1)",hf_srvsvc_srvsvc_NetShareCtr1_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr1_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr1);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        srvsvc_ShareType type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        uint32 permissions; */
+/* IDL:        uint32 max_users; */
+/* IDL:        uint32 current_users; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *password; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo2_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetShareInfo2_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo2_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_ShareType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo2_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo2_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetShareInfo2_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo2_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo2_permissions, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_max_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo2_max_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_current_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo2_current_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo2_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_srvsvc_srvsvc_NetShareInfo2_path);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo2_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo2_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_srvsvc_srvsvc_NetShareInfo2_password);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo2_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo2);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo2_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_permissions(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_max_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_current_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_path(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo2_password(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo2 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo2)",hf_srvsvc_srvsvc_NetShareCtr2_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr2_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr2_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr2);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr2_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        srvsvc_ShareType type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        uint32 csc_policy; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo501_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo501_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetShareInfo501_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo501_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo501_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo501_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_ShareType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo501_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo501_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo501_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetShareInfo501_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo501_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo501_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo501_csc_policy(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo501_csc_policy, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo501);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo501_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo501_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo501_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo501_csc_policy(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo501 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr501_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr501_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr501_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr501_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo501)",hf_srvsvc_srvsvc_NetShareCtr501_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr501_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr501_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr501_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo501(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr501_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr501);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr501_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr501_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        srvsvc_ShareType type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        uint32 permissions; */
+/* IDL:        uint32 max_users; */
+/* IDL:        uint32 current_users; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *path; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *password; */
+/* IDL:        sec_desc_buf sd_buf; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo502_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo502_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetShareInfo502_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo502_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_ShareType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo502_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo502_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetShareInfo502_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo502_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_permissions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo502_permissions, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_max_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo502_max_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_current_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo502_current_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo502_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_srvsvc_srvsvc_NetShareInfo502_path);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo502_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo502_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_srvsvc_srvsvc_NetShareInfo502_password);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo502_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo502_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo502_sd_buf,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo502);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo502_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_permissions(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_max_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_current_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_path(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_password(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo502_sd_buf(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo502 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr502_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr502_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr502_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr502_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo502)",hf_srvsvc_srvsvc_NetShareCtr502_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr502_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr502_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr502_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr502_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr502);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr502_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr502_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo1004_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo1004_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetShareInfo1004_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1004_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo1004_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo1004);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo1004_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo1004 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr1004_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr1004_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1004_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1004_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo1004)",hf_srvsvc_srvsvc_NetShareCtr1004_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1004_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1004_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1004_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1004(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr1004_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr1004);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr1004_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr1004_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SHARE_1005_IN_DFS =  0x00000001 , */
+/* IDL:        SHARE_1005_DFS_ROOT =  0x00000002 , */
+/* IDL:        SHARE_1005_CSC_CACHE_AUTO_REINT =  0x00000010 , */
+/* IDL:        SHARE_1005_CSC_CACHE_VDO =  0x00000020 , */
+/* IDL:        SHARE_1005_CSC_CACHE_NONE =  0x00000030 , */
+/* IDL:        SHARE_1005_RESTRICT_EXCLUSIVE_OPENS =  0x00000100 , */
+/* IDL:        SHARE_1005_FORCE_SHARED_DELETE =  0x00000200 , */
+/* IDL:        SHARE_1005_ALLOW_NAMESPACE_CACHING =  0x00000400 , */
+/* IDL:        SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM =  0x00000800 , */
+/* IDL:        SHARE_1005_FORCE_LEVELII_OPLOCK =  0x00001000 , */
+/* IDL:        SHARE_1005_ENABLE_HASH =  0x00002000 , */
+/* IDL:        SHARE_1005_ENABLE_CA =  0x00004000 , */
+/* IDL:        SHARE_1005_ENCRYPT_DATA =  0x00008000 , */
+/* IDL: } */
+
+int
+srvsvc_dissect_bitmap_NetShareInfo1005Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_srvsvc_NetShareInfo1005Flags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_IN_DFS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SHARE_1005_IN_DFS");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_DFS_ROOT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SHARE_1005_DFS_ROOT");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_AUTO_REINT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SHARE_1005_CSC_CACHE_AUTO_REINT");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_VDO, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SHARE_1005_CSC_CACHE_VDO");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000030 )){
+               proto_item_append_text(item, "SHARE_1005_CSC_CACHE_NONE");
+               if (flags & (~( 0x00000030 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000030 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_RESTRICT_EXCLUSIVE_OPENS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "SHARE_1005_RESTRICT_EXCLUSIVE_OPENS");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_FORCE_SHARED_DELETE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "SHARE_1005_FORCE_SHARED_DELETE");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ALLOW_NAMESPACE_CACHING, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "SHARE_1005_ALLOW_NAMESPACE_CACHING");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000800 )){
+               proto_item_append_text(item, "SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM");
+               if (flags & (~( 0x00000800 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000800 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_FORCE_LEVELII_OPLOCK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001000 )){
+               proto_item_append_text(item, "SHARE_1005_FORCE_LEVELII_OPLOCK");
+               if (flags & (~( 0x00001000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001000 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENABLE_HASH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002000 )){
+               proto_item_append_text(item, "SHARE_1005_ENABLE_HASH");
+               if (flags & (~( 0x00002000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002000 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENABLE_CA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004000 )){
+               proto_item_append_text(item, "SHARE_1005_ENABLE_CA");
+               if (flags & (~( 0x00004000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004000 ));
+
+       proto_tree_add_boolean(tree, hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENCRYPT_DATA, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008000 )){
+               proto_item_append_text(item, "SHARE_1005_ENCRYPT_DATA");
+               if (flags & (~( 0x00008000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008000 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        NetShareInfo1005Flags dfs_flags; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo1005_dfs_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_bitmap_NetShareInfo1005Flags(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo1005_dfs_flags, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo1005);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo1005_dfs_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo1005 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr1005_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr1005_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1005_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1005_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo1005)",hf_srvsvc_srvsvc_NetShareCtr1005_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1005_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1005_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1005_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1005(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr1005_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr1005);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr1005_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr1005_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 max_users; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo1006_max_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo1006_max_users, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo1006);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo1006_max_users(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo1006 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr1006_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr1006_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1006_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1006_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo1006)",hf_srvsvc_srvsvc_NetShareCtr1006_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1006_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1006_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1006_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1006(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr1006_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr1006);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr1006_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr1006_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *alternate_directory_name; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo1007_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfo1007_flags, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1007_alternate_directory_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo1007_alternate_directory_name_, NDR_POINTER_UNIQUE, "Pointer to Alternate Directory Name (uint16)",hf_srvsvc_srvsvc_NetShareInfo1007_alternate_directory_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo1007_alternate_directory_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareInfo1007_alternate_directory_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfo1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo1007);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfo1007_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareInfo1007_alternate_directory_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetShareInfo1007 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr1007_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr1007_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1007_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1007_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetShareInfo1007)",hf_srvsvc_srvsvc_NetShareCtr1007_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1007_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1007_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1007_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1007(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr1007_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr1007);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr1007_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr1007_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] sec_desc_buf *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr1501_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCtr1501_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1501_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1501_array_, NDR_POINTER_UNIQUE, "Pointer to Array (sec_desc_buf)",hf_srvsvc_srvsvc_NetShareCtr1501_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1501_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr1501_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr1501_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr1501_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareCtr1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr1501);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareCtr1501_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetShareCtr1501_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetShareInfo0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetShareInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] srvsvc_NetShareInfo2 *info2; */
+/* IDL: [case(501)] [unique(1)] [case(501)] srvsvc_NetShareInfo501 *info501; */
+/* IDL: [case(502)] [unique(1)] [case(502)] srvsvc_NetShareInfo502 *info502; */
+/* IDL: [case(1004)] [unique(1)] [case(1004)] srvsvc_NetShareInfo1004 *info1004; */
+/* IDL: [case(1005)] [unique(1)] [case(1005)] srvsvc_NetShareInfo1005 *info1005; */
+/* IDL: [case(1006)] [unique(1)] [case(1006)] srvsvc_NetShareInfo1006 *info1006; */
+/* IDL: [case(1007)] [unique(1)] [case(1007)] srvsvc_NetShareInfo1007 *info1007; */
+/* IDL: [case(1501)] [unique(1)] [case(1501)] sec_desc_buf *info1501; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (srvsvc_NetShareInfo0)",hf_srvsvc_srvsvc_NetShareInfo_info0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (srvsvc_NetShareInfo1)",hf_srvsvc_srvsvc_NetShareInfo_info1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (srvsvc_NetShareInfo2)",hf_srvsvc_srvsvc_NetShareInfo_info2);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info501_, NDR_POINTER_UNIQUE, "Pointer to Info501 (srvsvc_NetShareInfo501)",hf_srvsvc_srvsvc_NetShareInfo_info501);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo501(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info501,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info502_, NDR_POINTER_UNIQUE, "Pointer to Info502 (srvsvc_NetShareInfo502)",hf_srvsvc_srvsvc_NetShareInfo_info502);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info502,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info1004_, NDR_POINTER_UNIQUE, "Pointer to Info1004 (srvsvc_NetShareInfo1004)",hf_srvsvc_srvsvc_NetShareInfo_info1004);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1004_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1004(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info1004,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info1005_, NDR_POINTER_UNIQUE, "Pointer to Info1005 (srvsvc_NetShareInfo1005)",hf_srvsvc_srvsvc_NetShareInfo_info1005);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1005_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1005(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info1005,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info1006_, NDR_POINTER_UNIQUE, "Pointer to Info1006 (srvsvc_NetShareInfo1006)",hf_srvsvc_srvsvc_NetShareInfo_info1006);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1006_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1006(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info1006,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info1007_, NDR_POINTER_UNIQUE, "Pointer to Info1007 (srvsvc_NetShareInfo1007)",hf_srvsvc_srvsvc_NetShareInfo_info1007);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1007_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfo1007(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info1007,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareInfo_info1501_, NDR_POINTER_UNIQUE, "Pointer to Info1501 (sec_desc_buf)",hf_srvsvc_srvsvc_NetShareInfo_info1501);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfo_info1501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareInfo_info1501,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetShareInfo");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetShareInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetShareInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = srvsvc_dissect_element_NetShareInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 501:
+                       offset = srvsvc_dissect_element_NetShareInfo_info501(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 502:
+                       offset = srvsvc_dissect_element_NetShareInfo_info502(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1004:
+                       offset = srvsvc_dissect_element_NetShareInfo_info1004(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1005:
+                       offset = srvsvc_dissect_element_NetShareInfo_info1005(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1006:
+                       offset = srvsvc_dissect_element_NetShareInfo_info1006(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1007:
+                       offset = srvsvc_dissect_element_NetShareInfo_info1007(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1501:
+                       offset = srvsvc_dissect_element_NetShareInfo_info1501(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetShareCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetShareCtr1 *ctr1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] srvsvc_NetShareCtr2 *ctr2; */
+/* IDL: [case(501)] [unique(1)] [case(501)] srvsvc_NetShareCtr501 *ctr501; */
+/* IDL: [case(502)] [unique(1)] [case(502)] srvsvc_NetShareCtr502 *ctr502; */
+/* IDL: [case(1004)] [unique(1)] [case(1004)] srvsvc_NetShareCtr1004 *ctr1004; */
+/* IDL: [case(1005)] [unique(1)] [case(1005)] srvsvc_NetShareCtr1005 *ctr1005; */
+/* IDL: [case(1006)] [unique(1)] [case(1006)] srvsvc_NetShareCtr1006 *ctr1006; */
+/* IDL: [case(1007)] [unique(1)] [case(1007)] srvsvc_NetShareCtr1007 *ctr1007; */
+/* IDL: [case(1501)] [unique(1)] [case(1501)] srvsvc_NetShareCtr1501 *ctr1501; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (srvsvc_NetShareCtr0)",hf_srvsvc_srvsvc_NetShareCtr_ctr0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (srvsvc_NetShareCtr1)",hf_srvsvc_srvsvc_NetShareCtr_ctr1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr2_, NDR_POINTER_UNIQUE, "Pointer to Ctr2 (srvsvc_NetShareCtr2)",hf_srvsvc_srvsvc_NetShareCtr_ctr2);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr501_, NDR_POINTER_UNIQUE, "Pointer to Ctr501 (srvsvc_NetShareCtr501)",hf_srvsvc_srvsvc_NetShareCtr_ctr501);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr501(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr501,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr502_, NDR_POINTER_UNIQUE, "Pointer to Ctr502 (srvsvc_NetShareCtr502)",hf_srvsvc_srvsvc_NetShareCtr_ctr502);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr502,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr1004_, NDR_POINTER_UNIQUE, "Pointer to Ctr1004 (srvsvc_NetShareCtr1004)",hf_srvsvc_srvsvc_NetShareCtr_ctr1004);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1004_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr1004(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr1004,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr1005_, NDR_POINTER_UNIQUE, "Pointer to Ctr1005 (srvsvc_NetShareCtr1005)",hf_srvsvc_srvsvc_NetShareCtr_ctr1005);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1005_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr1005(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr1005,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr1006_, NDR_POINTER_UNIQUE, "Pointer to Ctr1006 (srvsvc_NetShareCtr1006)",hf_srvsvc_srvsvc_NetShareCtr_ctr1006);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1006_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr1006(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr1006,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr1007_, NDR_POINTER_UNIQUE, "Pointer to Ctr1007 (srvsvc_NetShareCtr1007)",hf_srvsvc_srvsvc_NetShareCtr_ctr1007);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1007_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr1007(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr1007,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCtr_ctr1501_, NDR_POINTER_UNIQUE, "Pointer to Ctr1501 (srvsvc_NetShareCtr1501)",hf_srvsvc_srvsvc_NetShareCtr_ctr1501);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCtr_ctr1501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareCtr1501(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareCtr_ctr1501,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetShareCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 501:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr501(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 502:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr502(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1004:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr1004(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1005:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr1005(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1006:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr1006(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1007:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr1007(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1501:
+                       offset = srvsvc_dissect_element_NetShareCtr_ctr1501(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetShareCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetShareInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetShareCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetShareInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetShareInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetShareInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetShareInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        PLATFORM_ID_DOS=300, */
+/* IDL:        PLATFORM_ID_OS2=400, */
+/* IDL:        PLATFORM_ID_NT=500, */
+/* IDL:        PLATFORM_ID_OSF=600, */
+/* IDL:        PLATFORM_ID_VMS=700, */
+/* IDL: } */
+
+int
+srvsvc_dissect_enum_PlatformId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        srvsvc_PlatformId platform_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo100_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_PlatformId(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo100_platform_id, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo100_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo100_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_srvsvc_srvsvc_NetSrvInfo100_server_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo100_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo100_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo100);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo100_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo100_server_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        srvsvc_PlatformId platform_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        uint32 version_major; */
+/* IDL:        uint32 version_minor; */
+/* IDL:        svcctl_ServerType server_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_PlatformId(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo101_platform_id, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo101_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_srvsvc_srvsvc_NetSrvInfo101_server_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo101_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo101_version_major, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo101_version_minor, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_bitmap_svcctl_ServerType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo101_server_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo101_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetSrvInfo101_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo101_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo101_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo101);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo101_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo101_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo101_version_major(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo101_version_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo101_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo101_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        srvsvc_PlatformId platform_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        uint32 version_major; */
+/* IDL:        uint32 version_minor; */
+/* IDL:        svcctl_ServerType server_type; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL:        uint32 users; */
+/* IDL:        uint32 disc; */
+/* IDL:        uint32 hidden; */
+/* IDL:        uint32 announce; */
+/* IDL:        uint32 anndelta; */
+/* IDL:        uint32 licenses; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *userpath; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_PlatformId(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_platform_id, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo102_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_srvsvc_srvsvc_NetSrvInfo102_server_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo102_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_version_major, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_version_minor, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_server_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_bitmap_svcctl_ServerType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_server_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo102_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetSrvInfo102_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo102_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_users, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_disc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_disc, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_hidden(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_hidden, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_announce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_announce, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_anndelta(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_anndelta, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_licenses(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo102_licenses, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_userpath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo102_userpath_, NDR_POINTER_UNIQUE, "Pointer to Userpath (uint16)",hf_srvsvc_srvsvc_NetSrvInfo102_userpath);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo102_userpath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo102_userpath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo102);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo102_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_version_major(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_version_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_server_type(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_comment(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_users(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_disc(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_hidden(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_announce(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_anndelta(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_licenses(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo102_userpath(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 ulist_mtime; */
+/* IDL:        uint32 glist_mtime; */
+/* IDL:        uint32 alist_mtime; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *alerts; */
+/* IDL:        uint32 security; */
+/* IDL:        uint32 numadmin; */
+/* IDL:        uint32 lanmask; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *guestaccount; */
+/* IDL:        uint32 chdevs; */
+/* IDL:        uint32 chdevqs; */
+/* IDL:        uint32 chdevjobs; */
+/* IDL:        uint32 connections; */
+/* IDL:        uint32 shares; */
+/* IDL:        uint32 openfiles; */
+/* IDL:        uint32 sessopen; */
+/* IDL:        uint32 sesssvc; */
+/* IDL:        uint32 sessreqs; */
+/* IDL:        uint32 opensearch; */
+/* IDL:        uint32 activelocks; */
+/* IDL:        uint32 numreqbufs; */
+/* IDL:        uint32 sizereqbufs; */
+/* IDL:        uint32 numbigbufs; */
+/* IDL:        uint32 numfiletasks; */
+/* IDL:        uint32 alertsched; */
+/* IDL:        uint32 erroralert; */
+/* IDL:        uint32 logonalert; */
+/* IDL:        uint32 accessalert; */
+/* IDL:        uint32 diskalert; */
+/* IDL:        uint32 netioalert; */
+/* IDL:        uint32 maxaudits; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *srvheuristics; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_ulist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_ulist_mtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_glist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_glist_mtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_alist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_alist_mtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_alerts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo402_alerts_, NDR_POINTER_UNIQUE, "Pointer to Alerts (uint16)",hf_srvsvc_srvsvc_NetSrvInfo402_alerts);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_alerts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo402_alerts, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_security(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_security, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_numadmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_numadmin, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_lanmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_lanmask, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_guestaccount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo402_guestaccount_, NDR_POINTER_UNIQUE, "Pointer to Guestaccount (uint16)",hf_srvsvc_srvsvc_NetSrvInfo402_guestaccount);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_guestaccount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo402_guestaccount, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_chdevs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_chdevs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_chdevqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_chdevqs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_chdevjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_chdevjobs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_connections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_connections, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_shares(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_shares, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_openfiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_openfiles, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_sessopen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_sesssvc, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_sessreqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_sessreqs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_opensearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_activelocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_activelocks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_numreqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_numreqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_sizereqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_numbigbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_numbigbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_numfiletasks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_numfiletasks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_alertsched, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_erroralert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_erroralert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_logonalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_logonalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_accessalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_accessalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_diskalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_diskalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_netioalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_netioalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_maxaudits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo402_maxaudits, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_srvheuristics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo402_srvheuristics_, NDR_POINTER_UNIQUE, "Pointer to Srvheuristics (uint16)",hf_srvsvc_srvsvc_NetSrvInfo402_srvheuristics);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo402_srvheuristics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo402_srvheuristics, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo402(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo402);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo402_ulist_mtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_glist_mtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_alist_mtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_alerts(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_security(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_numadmin(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_lanmask(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_guestaccount(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_chdevs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_chdevqs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_chdevjobs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_connections(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_shares(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_openfiles(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_sessopen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_sesssvc(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_sessreqs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_opensearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_activelocks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_numreqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_sizereqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_numbigbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_numfiletasks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_alertsched(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_erroralert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_logonalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_accessalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_diskalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_netioalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_maxaudits(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo402_srvheuristics(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 ulist_mtime; */
+/* IDL:        uint32 glist_mtime; */
+/* IDL:        uint32 alist_mtime; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *alerts; */
+/* IDL:        uint32 security; */
+/* IDL:        uint32 numadmin; */
+/* IDL:        uint32 lanmask; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *guestaccount; */
+/* IDL:        uint32 chdevs; */
+/* IDL:        uint32 chdevqs; */
+/* IDL:        uint32 chdevjobs; */
+/* IDL:        uint32 connections; */
+/* IDL:        uint32 shares; */
+/* IDL:        uint32 openfiles; */
+/* IDL:        uint32 sessopen; */
+/* IDL:        uint32 sesssvc; */
+/* IDL:        uint32 sessreqs; */
+/* IDL:        uint32 opensearch; */
+/* IDL:        uint32 activelocks; */
+/* IDL:        uint32 numreqbufs; */
+/* IDL:        uint32 sizereqbufs; */
+/* IDL:        uint32 numbigbufs; */
+/* IDL:        uint32 numfiletasks; */
+/* IDL:        uint32 alertsched; */
+/* IDL:        uint32 erroralert; */
+/* IDL:        uint32 logonalert; */
+/* IDL:        uint32 accessalert; */
+/* IDL:        uint32 diskalert; */
+/* IDL:        uint32 netioalert; */
+/* IDL:        uint32 maxaudits; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *srvheuristics; */
+/* IDL:        uint32 auditedevents; */
+/* IDL:        uint32 auditprofile; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *autopath; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_ulist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_ulist_mtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_glist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_glist_mtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_alist_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_alist_mtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_alerts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo403_alerts_, NDR_POINTER_UNIQUE, "Pointer to Alerts (uint16)",hf_srvsvc_srvsvc_NetSrvInfo403_alerts);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_alerts_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo403_alerts, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_security(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_security, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_numadmin(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_numadmin, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_lanmask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_lanmask, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_guestaccount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo403_guestaccount_, NDR_POINTER_UNIQUE, "Pointer to Guestaccount (uint16)",hf_srvsvc_srvsvc_NetSrvInfo403_guestaccount);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_guestaccount_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo403_guestaccount, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_chdevs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_chdevs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_chdevqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_chdevqs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_chdevjobs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_chdevjobs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_connections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_connections, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_shares(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_shares, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_openfiles(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_openfiles, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_sessopen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_sesssvc, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_sessreqs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_sessreqs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_opensearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_activelocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_activelocks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_numreqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_numreqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_sizereqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_numbigbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_numbigbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_numfiletasks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_numfiletasks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_alertsched, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_erroralert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_erroralert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_logonalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_logonalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_accessalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_accessalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_diskalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_diskalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_netioalert(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_netioalert, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_maxaudits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_maxaudits, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_srvheuristics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo403_srvheuristics_, NDR_POINTER_UNIQUE, "Pointer to Srvheuristics (uint16)",hf_srvsvc_srvsvc_NetSrvInfo403_srvheuristics);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_srvheuristics_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo403_srvheuristics, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_auditedevents(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_auditedevents, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_auditprofile(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo403_auditprofile, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_autopath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo403_autopath_, NDR_POINTER_UNIQUE, "Pointer to Autopath (uint16)",hf_srvsvc_srvsvc_NetSrvInfo403_autopath);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo403_autopath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo403_autopath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo403(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo403);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo403_ulist_mtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_glist_mtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_alist_mtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_alerts(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_security(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_numadmin(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_lanmask(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_guestaccount(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_chdevs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_chdevqs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_chdevjobs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_connections(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_shares(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_openfiles(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_sessopen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_sesssvc(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_sessreqs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_opensearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_activelocks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_numreqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_sizereqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_numbigbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_numfiletasks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_alertsched(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_erroralert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_logonalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_accessalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_diskalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_netioalert(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_maxaudits(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_srvheuristics(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_auditedevents(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_auditprofile(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo403_autopath(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sessopen; */
+/* IDL:        uint32 sesssvc; */
+/* IDL:        uint32 opensearch; */
+/* IDL:        uint32 sizereqbufs; */
+/* IDL:        uint32 initworkitems; */
+/* IDL:        uint32 maxworkitems; */
+/* IDL:        uint32 rawworkitems; */
+/* IDL:        uint32 irpstacksize; */
+/* IDL:        uint32 maxrawbuflen; */
+/* IDL:        uint32 sessusers; */
+/* IDL:        uint32 sessconns; */
+/* IDL:        uint32 maxpagedmemoryusage; */
+/* IDL:        uint32 maxnonpagedmemoryusage; */
+/* IDL:        uint32 enablesoftcompat; */
+/* IDL:        uint32 enableforcedlogoff; */
+/* IDL:        uint32 timesource; */
+/* IDL:        uint32 acceptdownlevelapis; */
+/* IDL:        uint32 lmannounce; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_sessopen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_sesssvc, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_opensearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_sizereqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_initworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_initworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_maxworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_rawworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_rawworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_irpstacksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_irpstacksize, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_maxrawbuflen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_sessusers, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_sessconns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_sessconns, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_maxpagedmemoryusage, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_maxnonpagedmemoryusage, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_enablesoftcompat, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_enableforcedlogoff, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_timesource, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_acceptdownlevelapis(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_acceptdownlevelapis, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo502_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo502_lmannounce, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo502);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo502_sessopen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_sesssvc(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_opensearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_sizereqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_initworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_maxworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_rawworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_irpstacksize(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_maxrawbuflen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_sessusers(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_sessconns(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_maxpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_maxnonpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_enablesoftcompat(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_enableforcedlogoff(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_timesource(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_acceptdownlevelapis(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo502_lmannounce(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sessopen; */
+/* IDL:        uint32 sesssvc; */
+/* IDL:        uint32 opensearch; */
+/* IDL:        uint32 sizereqbufs; */
+/* IDL:        uint32 initworkitems; */
+/* IDL:        uint32 maxworkitems; */
+/* IDL:        uint32 rawworkitems; */
+/* IDL:        uint32 irpstacksize; */
+/* IDL:        uint32 maxrawbuflen; */
+/* IDL:        uint32 sessusers; */
+/* IDL:        uint32 sessconns; */
+/* IDL:        uint32 maxpagedmemoryusage; */
+/* IDL:        uint32 maxnonpagedmemoryusage; */
+/* IDL:        uint32 enablesoftcompat; */
+/* IDL:        uint32 enableforcedlogoff; */
+/* IDL:        uint32 timesource; */
+/* IDL:        uint32 acceptdownlevelapis; */
+/* IDL:        uint32 lmannounce; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL:        uint32 maxcopyreadlen; */
+/* IDL:        uint32 maxcopywritelen; */
+/* IDL:        uint32 minkeepsearch; */
+/* IDL:        uint32 maxkeepsearch; */
+/* IDL:        uint32 minkeepcomplsearch; */
+/* IDL:        uint32 maxkeepcomplsearch; */
+/* IDL:        uint32 threadcountadd; */
+/* IDL:        uint32 numlockthreads; */
+/* IDL:        uint32 scavtimeout; */
+/* IDL:        uint32 minrcvqueue; */
+/* IDL:        uint32 minfreeworkitems; */
+/* IDL:        uint32 xactmemsize; */
+/* IDL:        uint32 threadpriority; */
+/* IDL:        uint32 maxmpxct; */
+/* IDL:        uint32 oplockbreakwait; */
+/* IDL:        uint32 oplockbreakresponsewait; */
+/* IDL:        uint32 enableoplocks; */
+/* IDL:        uint32 enableoplockforceclose; */
+/* IDL:        uint32 enablefcbopens; */
+/* IDL:        uint32 enableraw; */
+/* IDL:        uint32 enablesharednetdrives; */
+/* IDL:        uint32 minfreeconnections; */
+/* IDL:        uint32 maxfreeconnections; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_sessopen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_sesssvc, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_opensearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_sizereqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_initworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_initworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_rawworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_rawworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_irpstacksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_irpstacksize, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxrawbuflen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_sessusers, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_sessconns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_sessconns, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxpagedmemoryusage, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxnonpagedmemoryusage, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enablesoftcompat, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enableforcedlogoff, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_timesource, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_acceptdownlevelapis(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_acceptdownlevelapis, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_lmannounce, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo503_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_srvsvc_srvsvc_NetSrvInfo503_domain);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo503_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxcopyreadlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxcopyreadlen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxcopywritelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxcopywritelen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_minkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_minkeepsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxkeepsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_minkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_minkeepcomplsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxkeepcomplsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_threadcountadd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_threadcountadd, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_numlockthreads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_numlockthreads, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_scavtimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_scavtimeout, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_minrcvqueue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_minrcvqueue, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_minfreeworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_minfreeworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_xactmemsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_xactmemsize, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_threadpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_threadpriority, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxmpxct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxmpxct, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_oplockbreakwait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_oplockbreakwait, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_oplockbreakresponsewait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_oplockbreakresponsewait, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enableoplocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enableoplocks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enableoplockforceclose(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enableoplockforceclose, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enablefcbopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enablefcbopens, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enableraw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enableraw, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_enablesharednetdrives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_enablesharednetdrives, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_minfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_minfreeconnections, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo503_maxfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo503_maxfreeconnections, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo503);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo503_sessopen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_sesssvc(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_opensearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_sizereqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_initworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_rawworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_irpstacksize(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxrawbuflen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_sessusers(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_sessconns(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxnonpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enablesoftcompat(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enableforcedlogoff(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_timesource(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_acceptdownlevelapis(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_lmannounce(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxcopyreadlen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxcopywritelen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_minkeepsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxkeepsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_minkeepcomplsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxkeepcomplsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_threadcountadd(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_numlockthreads(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_scavtimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_minrcvqueue(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_minfreeworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_xactmemsize(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_threadpriority(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxmpxct(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_oplockbreakwait(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_oplockbreakresponsewait(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enableoplocks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enableoplockforceclose(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enablefcbopens(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enableraw(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_enablesharednetdrives(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_minfreeconnections(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo503_maxfreeconnections(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sessopen; */
+/* IDL:        uint32 sesssvc; */
+/* IDL:        uint32 opensearch; */
+/* IDL:        uint32 sizereqbufs; */
+/* IDL:        uint32 initworkitems; */
+/* IDL:        uint32 maxworkitems; */
+/* IDL:        uint32 rawworkitems; */
+/* IDL:        uint32 irpstacksize; */
+/* IDL:        uint32 maxrawbuflen; */
+/* IDL:        uint32 sessusers; */
+/* IDL:        uint32 sessconns; */
+/* IDL:        uint32 maxpagedmemoryusage; */
+/* IDL:        uint32 maxnonpagedmemoryusage; */
+/* IDL:        uint32 enablesoftcompat; */
+/* IDL:        uint32 enableforcedlogoff; */
+/* IDL:        uint32 timesource; */
+/* IDL:        uint32 acceptdownlevelapis; */
+/* IDL:        uint32 lmannounce; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL:        uint32 maxcopyreadlen; */
+/* IDL:        uint32 maxcopywritelen; */
+/* IDL:        uint32 minkeepsearch; */
+/* IDL:        uint32 minkeepcomplsearch; */
+/* IDL:        uint32 maxkeepcomplsearch; */
+/* IDL:        uint32 threadcountadd; */
+/* IDL:        uint32 numlockthreads; */
+/* IDL:        uint32 scavtimeout; */
+/* IDL:        uint32 minrcvqueue; */
+/* IDL:        uint32 minfreeworkitems; */
+/* IDL:        uint32 xactmemsize; */
+/* IDL:        uint32 threadpriority; */
+/* IDL:        uint32 maxmpxct; */
+/* IDL:        uint32 oplockbreakwait; */
+/* IDL:        uint32 oplockbreakresponsewait; */
+/* IDL:        uint32 enableoplocks; */
+/* IDL:        uint32 enableoplockforceclose; */
+/* IDL:        uint32 enablefcbopens; */
+/* IDL:        uint32 enableraw; */
+/* IDL:        uint32 enablesharednetdrives; */
+/* IDL:        uint32 minfreeconnections; */
+/* IDL:        uint32 maxfreeconnections; */
+/* IDL:        uint32 initsesstable; */
+/* IDL:        uint32 initconntable; */
+/* IDL:        uint32 initfiletable; */
+/* IDL:        uint32 initsearchtable; */
+/* IDL:        uint32 alertsched; */
+/* IDL:        uint32 errortreshold; */
+/* IDL:        uint32 networkerrortreshold; */
+/* IDL:        uint32 diskspacetreshold; */
+/* IDL:        uint32 reserved; */
+/* IDL:        uint32 maxlinkdelay; */
+/* IDL:        uint32 minlinkthroughput; */
+/* IDL:        uint32 linkinfovalidtime; */
+/* IDL:        uint32 scavqosinfoupdatetime; */
+/* IDL:        uint32 maxworkitemidletime; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_sessopen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_sessopen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_sesssvc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_sesssvc, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_opensearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_sizereqbufs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_sizereqbufs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_initworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_initworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_rawworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_rawworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_irpstacksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_irpstacksize, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxrawbuflen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_sessusers, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_sessconns(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_sessconns, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxpagedmemoryusage, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxnonpagedmemoryusage, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enablesoftcompat, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enableforcedlogoff, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_timesource, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_acceptdownlevelapis(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_acceptdownlevelapis, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_lmannounce, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo599_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_srvsvc_srvsvc_NetSrvInfo599_domain);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo599_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxcopyreadlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxcopyreadlen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxcopywritelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxcopywritelen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_minkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_minkeepsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_minkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_minkeepcomplsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxkeepcomplsearch, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_threadcountadd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_threadcountadd, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_numlockthreads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_numlockthreads, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_scavtimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_scavtimeout, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_minrcvqueue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_minrcvqueue, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_minfreeworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_minfreeworkitems, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_xactmemsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_xactmemsize, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_threadpriority(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_threadpriority, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxmpxct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxmpxct, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_oplockbreakwait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_oplockbreakwait, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_oplockbreakresponsewait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_oplockbreakresponsewait, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enableoplocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enableoplocks, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enableoplockforceclose(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enableoplockforceclose, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enablefcbopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enablefcbopens, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enableraw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enableraw, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_enablesharednetdrives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_enablesharednetdrives, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_minfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_minfreeconnections, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxfreeconnections, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_initsesstable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_initsesstable, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_initconntable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_initconntable, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_initfiletable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_initfiletable, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_initsearchtable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_initsearchtable, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_alertsched, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_errortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_errortreshold, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_networkerrortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_networkerrortreshold, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_diskspacetreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_diskspacetreshold, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_reserved, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxlinkdelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxlinkdelay, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_minlinkthroughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_minlinkthroughput, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_linkinfovalidtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_linkinfovalidtime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_scavqosinfoupdatetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_scavqosinfoupdatetime, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo599_maxworkitemidletime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo599_maxworkitemidletime, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo599(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo599);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo599_sessopen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_sesssvc(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_opensearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_sizereqbufs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_initworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_rawworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_irpstacksize(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxrawbuflen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_sessusers(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_sessconns(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxnonpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enablesoftcompat(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enableforcedlogoff(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_timesource(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_acceptdownlevelapis(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_lmannounce(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxcopyreadlen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxcopywritelen(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_minkeepsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_minkeepcomplsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxkeepcomplsearch(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_threadcountadd(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_numlockthreads(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_scavtimeout(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_minrcvqueue(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_minfreeworkitems(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_xactmemsize(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_threadpriority(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxmpxct(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_oplockbreakwait(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_oplockbreakresponsewait(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enableoplocks(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enableoplockforceclose(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enablefcbopens(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enableraw(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_enablesharednetdrives(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_minfreeconnections(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxfreeconnections(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_initsesstable(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_initconntable(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_initfiletable(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_initsearchtable(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_alertsched(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_errortreshold(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_networkerrortreshold(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_diskspacetreshold(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_reserved(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxlinkdelay(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_minlinkthroughput(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_linkinfovalidtime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_scavqosinfoupdatetime(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetSrvInfo599_maxworkitemidletime(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *comment; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1005_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo1005_comment_, NDR_POINTER_UNIQUE, "Pointer to Comment (uint16)",hf_srvsvc_srvsvc_NetSrvInfo1005_comment);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo1005_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvInfo1005_comment, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1005);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1005_comment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 disc; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1010_disc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1010_disc, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1010);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1010_disc(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 hidden; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1016_hidden(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1016_hidden, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1016(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1016);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1016_hidden(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 announce; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1017_announce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1017_announce, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1017(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1017);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1017_announce(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 anndelta; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1018_anndelta(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1018_anndelta, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1018);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1018_anndelta(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 users; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1107_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1107_users, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1107(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1107);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1107_users(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sessopens; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1501_sessopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1501_sessopens, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1501);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1501_sessopens(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sessvcs; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1502_sessvcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1502_sessvcs, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1502);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1502_sessvcs(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 opensearch; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1503_opensearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1503_opensearch, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1503);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1503_opensearch(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxworkitems; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1506_maxworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1506_maxworkitems, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1506(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1506);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1506_maxworkitems(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxrawbuflen; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1509_maxrawbuflen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1509_maxrawbuflen, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1509(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1509);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1509_maxrawbuflen(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sessusers; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1510_sessusers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1510_sessusers, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1510(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1510);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1510_sessusers(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 sesscons; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1511_sesscons(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1511_sesscons, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1511(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1511);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1511_sesscons(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxnonpagedmemoryusage; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1512_maxnonpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1512_maxnonpagedmemoryusage, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1512(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1512);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1512_maxnonpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxpagedmemoryusage; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1513_maxpagedmemoryusage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1513_maxpagedmemoryusage, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1513(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1513);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1513_maxpagedmemoryusage(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enablesoftcompat; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1514_enablesoftcompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1514_enablesoftcompat, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1514(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1514);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1514_enablesoftcompat(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enableforcedlogoff; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1515_enableforcedlogoff(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1515_enableforcedlogoff, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1515(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1515);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1515_enableforcedlogoff(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 timesource; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1516_timesource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1516_timesource, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1516(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1516);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1516_timesource(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 lmannounce; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1518_lmannounce(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1518_lmannounce, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1518(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1518);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1518_lmannounce(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxcopyreadlen; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1520_maxcopyreadlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1520_maxcopyreadlen, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1520(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1520);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1520_maxcopyreadlen(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxcopywritelen; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1521_maxcopywritelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1521_maxcopywritelen, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1521(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1521);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1521_maxcopywritelen(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 minkeepsearch; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1522_minkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1522_minkeepsearch, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1522(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1522);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1522_minkeepsearch(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxkeepsearch; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1523_maxkeepsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1523_maxkeepsearch, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1523(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1523);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1523_maxkeepsearch(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 minkeepcomplsearch; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1524_minkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1524_minkeepcomplsearch, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1524(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1524);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1524_minkeepcomplsearch(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxkeepcomplsearch; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1525_maxkeepcomplsearch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1525_maxkeepcomplsearch, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1525(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1525);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1525_maxkeepcomplsearch(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 scavtimeout; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1528_scavtimeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1528_scavtimeout, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1528(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1528);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1528_scavtimeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 minrcvqueue; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1529_minrcvqueue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1529_minrcvqueue, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1529(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1529);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1529_minrcvqueue(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 minfreeworkitems; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1530_minfreeworkitems(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1530_minfreeworkitems, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1530(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1530);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1530_minfreeworkitems(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxmpxct; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1533_maxmpxct(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1533_maxmpxct, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1533(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1533);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1533_maxmpxct(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 oplockbreakwait; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1534_oplockbreakwait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1534_oplockbreakwait, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1534(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1534);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1534_oplockbreakwait(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 oplockbreakresponsewait; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1535_oplockbreakresponsewait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1535_oplockbreakresponsewait, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1535(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1535);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1535_oplockbreakresponsewait(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enableoplocks; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1536_enableoplocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1536_enableoplocks, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1536(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1536);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1536_enableoplocks(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enableoplockforceclose; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1537_enableoplockforceclose(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1537_enableoplockforceclose, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1537(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1537);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1537_enableoplockforceclose(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enablefcbopens; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1538_enablefcbopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1538_enablefcbopens, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1538(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1538);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1538_enablefcbopens(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enableraw; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1539_enableraw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1539_enableraw, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1539(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1539);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1539_enableraw(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 enablesharednetdrives; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1540_enablesharednetdrives(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1540_enablesharednetdrives, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1540(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1540);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1540_enablesharednetdrives(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 minfreeconnections; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1541_minfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1541_minfreeconnections, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1541(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1541);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1541_minfreeconnections(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxfreeconnections; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1542_maxfreeconnections(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1542_maxfreeconnections, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1542(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1542);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1542_maxfreeconnections(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 initsesstable; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1543_initsesstable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1543_initsesstable, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1543(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1543);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1543_initsesstable(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 initconntable; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1544_initconntable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1544_initconntable, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1544(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1544);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1544_initconntable(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 initfiletable; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1545_initfiletable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1545_initfiletable, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1545(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1545);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1545_initfiletable(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 initsearchtable; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1546_initsearchtable(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1546_initsearchtable, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1546(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1546);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1546_initsearchtable(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 alertsched; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1547_alertsched(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1547_alertsched, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1547(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1547);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1547_alertsched(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 errortreshold; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1548_errortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1548_errortreshold, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1548(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1548);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1548_errortreshold(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 networkerrortreshold; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1549_networkerrortreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1549_networkerrortreshold, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1549(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1549);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1549_networkerrortreshold(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 diskspacetreshold; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1550_diskspacetreshold(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1550_diskspacetreshold, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1550(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1550);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1550_diskspacetreshold(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxlinkdelay; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1552_maxlinkdelay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1552_maxlinkdelay, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1552(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1552);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1552_maxlinkdelay(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 minlinkthroughput; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1553_minlinkthroughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1553_minlinkthroughput, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1553(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1553);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1553_minlinkthroughput(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 linkinfovalidtime; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1554_linkinfovalidtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1554_linkinfovalidtime, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1554(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1554);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1554_linkinfovalidtime(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 scavqosinfoupdatetime; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1555_scavqosinfoupdatetime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1555_scavqosinfoupdatetime, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1555(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1555);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1555_scavqosinfoupdatetime(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maxworkitemidletime; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo1556_maxworkitemidletime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvInfo1556_maxworkitemidletime, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetSrvInfo1556(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo1556);
+       }
+       
+       offset = srvsvc_dissect_element_NetSrvInfo1556_maxworkitemidletime(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(100)] [unique(1)] [case(100)] srvsvc_NetSrvInfo100 *info100; */
+/* IDL: [case(101)] [unique(1)] [case(101)] srvsvc_NetSrvInfo101 *info101; */
+/* IDL: [case(102)] [unique(1)] [case(102)] srvsvc_NetSrvInfo102 *info102; */
+/* IDL: [case(402)] [unique(1)] [case(402)] srvsvc_NetSrvInfo402 *info402; */
+/* IDL: [case(403)] [unique(1)] [case(403)] srvsvc_NetSrvInfo403 *info403; */
+/* IDL: [case(502)] [unique(1)] [case(502)] srvsvc_NetSrvInfo502 *info502; */
+/* IDL: [case(503)] [unique(1)] [case(503)] srvsvc_NetSrvInfo503 *info503; */
+/* IDL: [case(599)] [unique(1)] [case(599)] srvsvc_NetSrvInfo599 *info599; */
+/* IDL: [case(1005)] [unique(1)] [case(1005)] srvsvc_NetSrvInfo1005 *info1005; */
+/* IDL: [case(1010)] [unique(1)] [case(1010)] srvsvc_NetSrvInfo1010 *info1010; */
+/* IDL: [case(1016)] [unique(1)] [case(1016)] srvsvc_NetSrvInfo1016 *info1016; */
+/* IDL: [case(1017)] [unique(1)] [case(1017)] srvsvc_NetSrvInfo1017 *info1017; */
+/* IDL: [case(1018)] [unique(1)] [case(1018)] srvsvc_NetSrvInfo1018 *info1018; */
+/* IDL: [case(1107)] [unique(1)] [case(1107)] srvsvc_NetSrvInfo1107 *info1107; */
+/* IDL: [case(1501)] [unique(1)] [case(1501)] srvsvc_NetSrvInfo1501 *info1501; */
+/* IDL: [case(1502)] [unique(1)] [case(1502)] srvsvc_NetSrvInfo1502 *info1502; */
+/* IDL: [case(1503)] [unique(1)] [case(1503)] srvsvc_NetSrvInfo1503 *info1503; */
+/* IDL: [case(1506)] [unique(1)] [case(1506)] srvsvc_NetSrvInfo1506 *info1506; */
+/* IDL: [case(1509)] [unique(1)] [case(1509)] srvsvc_NetSrvInfo1509 *info1509; */
+/* IDL: [case(1510)] [unique(1)] [case(1510)] srvsvc_NetSrvInfo1510 *info1510; */
+/* IDL: [case(1511)] [unique(1)] [case(1511)] srvsvc_NetSrvInfo1511 *info1511; */
+/* IDL: [case(1512)] [unique(1)] [case(1512)] srvsvc_NetSrvInfo1512 *info1512; */
+/* IDL: [case(1513)] [unique(1)] [case(1513)] srvsvc_NetSrvInfo1513 *info1513; */
+/* IDL: [case(1514)] [unique(1)] [case(1514)] srvsvc_NetSrvInfo1514 *info1514; */
+/* IDL: [case(1515)] [unique(1)] [case(1515)] srvsvc_NetSrvInfo1515 *info1515; */
+/* IDL: [case(1516)] [unique(1)] [case(1516)] srvsvc_NetSrvInfo1516 *info1516; */
+/* IDL: [case(1518)] [unique(1)] [case(1518)] srvsvc_NetSrvInfo1518 *info1518; */
+/* IDL: [case(1520)] [unique(1)] [case(1520)] srvsvc_NetSrvInfo1520 *info1520; */
+/* IDL: [case(1521)] [unique(1)] [case(1521)] srvsvc_NetSrvInfo1521 *info1521; */
+/* IDL: [case(1522)] [unique(1)] [case(1522)] srvsvc_NetSrvInfo1522 *info1522; */
+/* IDL: [case(1523)] [unique(1)] [case(1523)] srvsvc_NetSrvInfo1523 *info1523; */
+/* IDL: [case(1524)] [unique(1)] [case(1524)] srvsvc_NetSrvInfo1524 *info1524; */
+/* IDL: [case(1525)] [unique(1)] [case(1525)] srvsvc_NetSrvInfo1525 *info1525; */
+/* IDL: [case(1528)] [unique(1)] [case(1528)] srvsvc_NetSrvInfo1528 *info1528; */
+/* IDL: [case(1529)] [unique(1)] [case(1529)] srvsvc_NetSrvInfo1529 *info1529; */
+/* IDL: [case(1530)] [unique(1)] [case(1530)] srvsvc_NetSrvInfo1530 *info1530; */
+/* IDL: [case(1533)] [unique(1)] [case(1533)] srvsvc_NetSrvInfo1533 *info1533; */
+/* IDL: [case(1534)] [unique(1)] [case(1534)] srvsvc_NetSrvInfo1534 *info1534; */
+/* IDL: [case(1535)] [unique(1)] [case(1535)] srvsvc_NetSrvInfo1535 *info1535; */
+/* IDL: [case(1536)] [unique(1)] [case(1536)] srvsvc_NetSrvInfo1536 *info1536; */
+/* IDL: [case(1537)] [unique(1)] [case(1537)] srvsvc_NetSrvInfo1537 *info1537; */
+/* IDL: [case(1538)] [unique(1)] [case(1538)] srvsvc_NetSrvInfo1538 *info1538; */
+/* IDL: [case(1539)] [unique(1)] [case(1539)] srvsvc_NetSrvInfo1539 *info1539; */
+/* IDL: [case(1540)] [unique(1)] [case(1540)] srvsvc_NetSrvInfo1540 *info1540; */
+/* IDL: [case(1541)] [unique(1)] [case(1541)] srvsvc_NetSrvInfo1541 *info1541; */
+/* IDL: [case(1542)] [unique(1)] [case(1542)] srvsvc_NetSrvInfo1542 *info1542; */
+/* IDL: [case(1543)] [unique(1)] [case(1543)] srvsvc_NetSrvInfo1543 *info1543; */
+/* IDL: [case(1544)] [unique(1)] [case(1544)] srvsvc_NetSrvInfo1544 *info1544; */
+/* IDL: [case(1545)] [unique(1)] [case(1545)] srvsvc_NetSrvInfo1545 *info1545; */
+/* IDL: [case(1546)] [unique(1)] [case(1546)] srvsvc_NetSrvInfo1546 *info1546; */
+/* IDL: [case(1547)] [unique(1)] [case(1547)] srvsvc_NetSrvInfo1547 *info1547; */
+/* IDL: [case(1548)] [unique(1)] [case(1548)] srvsvc_NetSrvInfo1548 *info1548; */
+/* IDL: [case(1549)] [unique(1)] [case(1549)] srvsvc_NetSrvInfo1549 *info1549; */
+/* IDL: [case(1550)] [unique(1)] [case(1550)] srvsvc_NetSrvInfo1550 *info1550; */
+/* IDL: [case(1552)] [unique(1)] [case(1552)] srvsvc_NetSrvInfo1552 *info1552; */
+/* IDL: [case(1553)] [unique(1)] [case(1553)] srvsvc_NetSrvInfo1553 *info1553; */
+/* IDL: [case(1554)] [unique(1)] [case(1554)] srvsvc_NetSrvInfo1554 *info1554; */
+/* IDL: [case(1555)] [unique(1)] [case(1555)] srvsvc_NetSrvInfo1555 *info1555; */
+/* IDL: [case(1556)] [unique(1)] [case(1556)] srvsvc_NetSrvInfo1556 *info1556; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info100_, NDR_POINTER_UNIQUE, "Pointer to Info100 (srvsvc_NetSrvInfo100)",hf_srvsvc_srvsvc_NetSrvInfo_info100);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo100(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info100,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info101_, NDR_POINTER_UNIQUE, "Pointer to Info101 (srvsvc_NetSrvInfo101)",hf_srvsvc_srvsvc_NetSrvInfo_info101);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo101(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info101,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info102_, NDR_POINTER_UNIQUE, "Pointer to Info102 (srvsvc_NetSrvInfo102)",hf_srvsvc_srvsvc_NetSrvInfo_info102);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info102_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo102(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info102,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info402(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info402_, NDR_POINTER_UNIQUE, "Pointer to Info402 (srvsvc_NetSrvInfo402)",hf_srvsvc_srvsvc_NetSrvInfo_info402);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info402_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo402(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info402,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info403(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info403_, NDR_POINTER_UNIQUE, "Pointer to Info403 (srvsvc_NetSrvInfo403)",hf_srvsvc_srvsvc_NetSrvInfo_info403);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info403_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo403(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info403,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info502_, NDR_POINTER_UNIQUE, "Pointer to Info502 (srvsvc_NetSrvInfo502)",hf_srvsvc_srvsvc_NetSrvInfo_info502);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info502,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info503_, NDR_POINTER_UNIQUE, "Pointer to Info503 (srvsvc_NetSrvInfo503)",hf_srvsvc_srvsvc_NetSrvInfo_info503);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info503_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo503(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info503,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info599(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info599_, NDR_POINTER_UNIQUE, "Pointer to Info599 (srvsvc_NetSrvInfo599)",hf_srvsvc_srvsvc_NetSrvInfo_info599);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info599_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo599(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info599,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1005_, NDR_POINTER_UNIQUE, "Pointer to Info1005 (srvsvc_NetSrvInfo1005)",hf_srvsvc_srvsvc_NetSrvInfo_info1005);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1005_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1005(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1005,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1010_, NDR_POINTER_UNIQUE, "Pointer to Info1010 (srvsvc_NetSrvInfo1010)",hf_srvsvc_srvsvc_NetSrvInfo_info1010);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1010_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1010(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1010,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1016(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1016_, NDR_POINTER_UNIQUE, "Pointer to Info1016 (srvsvc_NetSrvInfo1016)",hf_srvsvc_srvsvc_NetSrvInfo_info1016);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1016_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1016(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1016,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1017(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1017_, NDR_POINTER_UNIQUE, "Pointer to Info1017 (srvsvc_NetSrvInfo1017)",hf_srvsvc_srvsvc_NetSrvInfo_info1017);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1017_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1017(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1017,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1018_, NDR_POINTER_UNIQUE, "Pointer to Info1018 (srvsvc_NetSrvInfo1018)",hf_srvsvc_srvsvc_NetSrvInfo_info1018);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1018_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1018(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1018,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1107(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1107_, NDR_POINTER_UNIQUE, "Pointer to Info1107 (srvsvc_NetSrvInfo1107)",hf_srvsvc_srvsvc_NetSrvInfo_info1107);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1107_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1107(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1107,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1501_, NDR_POINTER_UNIQUE, "Pointer to Info1501 (srvsvc_NetSrvInfo1501)",hf_srvsvc_srvsvc_NetSrvInfo_info1501);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1501_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1501(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1501,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1502_, NDR_POINTER_UNIQUE, "Pointer to Info1502 (srvsvc_NetSrvInfo1502)",hf_srvsvc_srvsvc_NetSrvInfo_info1502);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1502(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1502,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1503_, NDR_POINTER_UNIQUE, "Pointer to Info1503 (srvsvc_NetSrvInfo1503)",hf_srvsvc_srvsvc_NetSrvInfo_info1503);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1503_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1503(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1503,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1506(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1506_, NDR_POINTER_UNIQUE, "Pointer to Info1506 (srvsvc_NetSrvInfo1506)",hf_srvsvc_srvsvc_NetSrvInfo_info1506);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1506_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1506(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1506,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1509(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1509_, NDR_POINTER_UNIQUE, "Pointer to Info1509 (srvsvc_NetSrvInfo1509)",hf_srvsvc_srvsvc_NetSrvInfo_info1509);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1509_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1509(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1509,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1510(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1510_, NDR_POINTER_UNIQUE, "Pointer to Info1510 (srvsvc_NetSrvInfo1510)",hf_srvsvc_srvsvc_NetSrvInfo_info1510);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1510_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1510(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1510,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1511(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1511_, NDR_POINTER_UNIQUE, "Pointer to Info1511 (srvsvc_NetSrvInfo1511)",hf_srvsvc_srvsvc_NetSrvInfo_info1511);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1511_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1511(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1511,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1512(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1512_, NDR_POINTER_UNIQUE, "Pointer to Info1512 (srvsvc_NetSrvInfo1512)",hf_srvsvc_srvsvc_NetSrvInfo_info1512);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1512_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1512(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1512,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1513(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1513_, NDR_POINTER_UNIQUE, "Pointer to Info1513 (srvsvc_NetSrvInfo1513)",hf_srvsvc_srvsvc_NetSrvInfo_info1513);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1513_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1513(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1513,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1514(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1514_, NDR_POINTER_UNIQUE, "Pointer to Info1514 (srvsvc_NetSrvInfo1514)",hf_srvsvc_srvsvc_NetSrvInfo_info1514);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1514_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1514(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1514,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1515(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1515_, NDR_POINTER_UNIQUE, "Pointer to Info1515 (srvsvc_NetSrvInfo1515)",hf_srvsvc_srvsvc_NetSrvInfo_info1515);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1515_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1515(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1515,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1516(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1516_, NDR_POINTER_UNIQUE, "Pointer to Info1516 (srvsvc_NetSrvInfo1516)",hf_srvsvc_srvsvc_NetSrvInfo_info1516);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1516_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1516(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1516,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1518(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1518_, NDR_POINTER_UNIQUE, "Pointer to Info1518 (srvsvc_NetSrvInfo1518)",hf_srvsvc_srvsvc_NetSrvInfo_info1518);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1518_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1518(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1518,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1520(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1520_, NDR_POINTER_UNIQUE, "Pointer to Info1520 (srvsvc_NetSrvInfo1520)",hf_srvsvc_srvsvc_NetSrvInfo_info1520);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1520_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1520(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1520,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1521(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1521_, NDR_POINTER_UNIQUE, "Pointer to Info1521 (srvsvc_NetSrvInfo1521)",hf_srvsvc_srvsvc_NetSrvInfo_info1521);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1521_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1521(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1521,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1522(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1522_, NDR_POINTER_UNIQUE, "Pointer to Info1522 (srvsvc_NetSrvInfo1522)",hf_srvsvc_srvsvc_NetSrvInfo_info1522);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1522_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1522(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1522,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1523(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1523_, NDR_POINTER_UNIQUE, "Pointer to Info1523 (srvsvc_NetSrvInfo1523)",hf_srvsvc_srvsvc_NetSrvInfo_info1523);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1523_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1523(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1523,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1524(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1524_, NDR_POINTER_UNIQUE, "Pointer to Info1524 (srvsvc_NetSrvInfo1524)",hf_srvsvc_srvsvc_NetSrvInfo_info1524);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1524_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1524(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1524,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1525(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1525_, NDR_POINTER_UNIQUE, "Pointer to Info1525 (srvsvc_NetSrvInfo1525)",hf_srvsvc_srvsvc_NetSrvInfo_info1525);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1525_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1525(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1525,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1528(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1528_, NDR_POINTER_UNIQUE, "Pointer to Info1528 (srvsvc_NetSrvInfo1528)",hf_srvsvc_srvsvc_NetSrvInfo_info1528);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1528_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1528(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1528,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1529(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1529_, NDR_POINTER_UNIQUE, "Pointer to Info1529 (srvsvc_NetSrvInfo1529)",hf_srvsvc_srvsvc_NetSrvInfo_info1529);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1529_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1529(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1529,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1530(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1530_, NDR_POINTER_UNIQUE, "Pointer to Info1530 (srvsvc_NetSrvInfo1530)",hf_srvsvc_srvsvc_NetSrvInfo_info1530);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1530_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1530(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1530,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1533(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1533_, NDR_POINTER_UNIQUE, "Pointer to Info1533 (srvsvc_NetSrvInfo1533)",hf_srvsvc_srvsvc_NetSrvInfo_info1533);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1533_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1533(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1533,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1534(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1534_, NDR_POINTER_UNIQUE, "Pointer to Info1534 (srvsvc_NetSrvInfo1534)",hf_srvsvc_srvsvc_NetSrvInfo_info1534);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1534_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1534(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1534,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1535(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1535_, NDR_POINTER_UNIQUE, "Pointer to Info1535 (srvsvc_NetSrvInfo1535)",hf_srvsvc_srvsvc_NetSrvInfo_info1535);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1535_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1535(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1535,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1536(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1536_, NDR_POINTER_UNIQUE, "Pointer to Info1536 (srvsvc_NetSrvInfo1536)",hf_srvsvc_srvsvc_NetSrvInfo_info1536);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1536_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1536(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1536,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1537(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1537_, NDR_POINTER_UNIQUE, "Pointer to Info1537 (srvsvc_NetSrvInfo1537)",hf_srvsvc_srvsvc_NetSrvInfo_info1537);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1537_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1537(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1537,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1538(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1538_, NDR_POINTER_UNIQUE, "Pointer to Info1538 (srvsvc_NetSrvInfo1538)",hf_srvsvc_srvsvc_NetSrvInfo_info1538);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1538_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1538(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1538,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1539(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1539_, NDR_POINTER_UNIQUE, "Pointer to Info1539 (srvsvc_NetSrvInfo1539)",hf_srvsvc_srvsvc_NetSrvInfo_info1539);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1539_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1539(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1539,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1540(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1540_, NDR_POINTER_UNIQUE, "Pointer to Info1540 (srvsvc_NetSrvInfo1540)",hf_srvsvc_srvsvc_NetSrvInfo_info1540);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1540_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1540(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1540,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1541(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1541_, NDR_POINTER_UNIQUE, "Pointer to Info1541 (srvsvc_NetSrvInfo1541)",hf_srvsvc_srvsvc_NetSrvInfo_info1541);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1541_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1541(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1541,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1542(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1542_, NDR_POINTER_UNIQUE, "Pointer to Info1542 (srvsvc_NetSrvInfo1542)",hf_srvsvc_srvsvc_NetSrvInfo_info1542);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1542_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1542(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1542,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1543(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1543_, NDR_POINTER_UNIQUE, "Pointer to Info1543 (srvsvc_NetSrvInfo1543)",hf_srvsvc_srvsvc_NetSrvInfo_info1543);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1543_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1543(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1543,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1544(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1544_, NDR_POINTER_UNIQUE, "Pointer to Info1544 (srvsvc_NetSrvInfo1544)",hf_srvsvc_srvsvc_NetSrvInfo_info1544);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1544_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1544(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1544,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1545(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1545_, NDR_POINTER_UNIQUE, "Pointer to Info1545 (srvsvc_NetSrvInfo1545)",hf_srvsvc_srvsvc_NetSrvInfo_info1545);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1545_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1545(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1545,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1546(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1546_, NDR_POINTER_UNIQUE, "Pointer to Info1546 (srvsvc_NetSrvInfo1546)",hf_srvsvc_srvsvc_NetSrvInfo_info1546);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1546_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1546(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1546,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1547(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1547_, NDR_POINTER_UNIQUE, "Pointer to Info1547 (srvsvc_NetSrvInfo1547)",hf_srvsvc_srvsvc_NetSrvInfo_info1547);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1547_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1547(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1547,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1548(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1548_, NDR_POINTER_UNIQUE, "Pointer to Info1548 (srvsvc_NetSrvInfo1548)",hf_srvsvc_srvsvc_NetSrvInfo_info1548);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1548_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1548(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1548,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1549(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1549_, NDR_POINTER_UNIQUE, "Pointer to Info1549 (srvsvc_NetSrvInfo1549)",hf_srvsvc_srvsvc_NetSrvInfo_info1549);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1549_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1549(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1549,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1550(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1550_, NDR_POINTER_UNIQUE, "Pointer to Info1550 (srvsvc_NetSrvInfo1550)",hf_srvsvc_srvsvc_NetSrvInfo_info1550);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1550_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1550(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1550,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1552(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1552_, NDR_POINTER_UNIQUE, "Pointer to Info1552 (srvsvc_NetSrvInfo1552)",hf_srvsvc_srvsvc_NetSrvInfo_info1552);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1552_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1552(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1552,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1553(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1553_, NDR_POINTER_UNIQUE, "Pointer to Info1553 (srvsvc_NetSrvInfo1553)",hf_srvsvc_srvsvc_NetSrvInfo_info1553);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1553_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1553(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1553,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1554(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1554_, NDR_POINTER_UNIQUE, "Pointer to Info1554 (srvsvc_NetSrvInfo1554)",hf_srvsvc_srvsvc_NetSrvInfo_info1554);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1554_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1554(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1554,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1555(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1555_, NDR_POINTER_UNIQUE, "Pointer to Info1555 (srvsvc_NetSrvInfo1555)",hf_srvsvc_srvsvc_NetSrvInfo_info1555);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1555_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1555(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1555,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1556(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvInfo_info1556_, NDR_POINTER_UNIQUE, "Pointer to Info1556 (srvsvc_NetSrvInfo1556)",hf_srvsvc_srvsvc_NetSrvInfo_info1556);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvInfo_info1556_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSrvInfo1556(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSrvInfo_info1556,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSrvInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetSrvInfo");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetSrvInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 100:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info100(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 101:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info101(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 102:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info102(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 402:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info402(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 403:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info403(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 502:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info502(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 503:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info503(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 599:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info599(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1005:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1005(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1010:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1010(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1016:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1016(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1017:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1017(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1018:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1018(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1107:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1107(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1501:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1501(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1502:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1502(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1503:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1503(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1506:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1506(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1509:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1509(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1510:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1510(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1511:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1511(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1512:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1512(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1513:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1513(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1514:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1514(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1515:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1515(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1516:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1516(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1518:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1518(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1520:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1520(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1521:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1521(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1522:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1522(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1523:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1523(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1524:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1524(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1525:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1525(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1528:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1528(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1529:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1529(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1530:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1530(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1533:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1533(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1534:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1534(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1535:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1535(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1536:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1536(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1537:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1537(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1538:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1538(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1539:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1539(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1540:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1540(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1541:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1541(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1542:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1542(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1543:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1543(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1544:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1544(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1545:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1545(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1546:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1546(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1547:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1547(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1548:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1548(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1549:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1549(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1550:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1550(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1552:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1552(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1553:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1553(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1554:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1554(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1555:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1555(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1556:
+                       offset = srvsvc_dissect_element_NetSrvInfo_info1556(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [value(0)] uint32 __disk_offset; */
+/* IDL:        [value(strlen(disk)+1)] uint32 __disk_length; */
+/* IDL:        [charset(UTF16)] uint16 disk[__disk_length]; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetDiskInfo0___disk_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskInfo0___disk_offset, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskInfo0___disk_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskInfo0___disk_length, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskInfo0_disk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskInfo0_disk_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskInfo0_disk, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetDiskInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetDiskInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetDiskInfo0___disk_offset(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetDiskInfo0___disk_length(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetDiskInfo0_disk(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [length_is(count)] [size_is(count)] srvsvc_NetDiskInfo0 *disks; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetDiskInfo_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskInfo_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskInfo_disks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetDiskInfo_disks_, NDR_POINTER_UNIQUE, "Pointer to Disks (srvsvc_NetDiskInfo0)",hf_srvsvc_srvsvc_NetDiskInfo_disks);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskInfo_disks_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetDiskInfo_disks__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskInfo_disks__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetDiskInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetDiskInfo_disks,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetDiskInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetDiskInfo);
+       }
+       
+       offset = srvsvc_dissect_element_NetDiskInfo_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetDiskInfo_disks(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 start; */
+/* IDL:        uint32 fopens; */
+/* IDL:        uint32 devopens; */
+/* IDL:        uint32 jobsqueued; */
+/* IDL:        uint32 sopens; */
+/* IDL:        uint32 stimeouts; */
+/* IDL:        uint32 serrorout; */
+/* IDL:        uint32 pwerrors; */
+/* IDL:        uint32 permerrors; */
+/* IDL:        uint32 syserrors; */
+/* IDL:        uint32 bytessent_low; */
+/* IDL:        uint32 bytessent_high; */
+/* IDL:        uint32 bytesrcvd_low; */
+/* IDL:        uint32 bytesrcvd_high; */
+/* IDL:        uint32 avresponse; */
+/* IDL:        uint32 reqbufneed; */
+/* IDL:        uint32 bigbufneed; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_Statistics_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_start, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_fopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_fopens, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_devopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_devopens, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_jobsqueued(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_jobsqueued, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_sopens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_sopens, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_stimeouts(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_stimeouts, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_serrorout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_serrorout, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_pwerrors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_pwerrors, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_permerrors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_permerrors, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_syserrors(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_syserrors, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_bytessent_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_bytessent_low, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_bytessent_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_bytessent_high, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_bytesrcvd_low(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_bytesrcvd_low, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_bytesrcvd_high(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_bytesrcvd_high, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_avresponse(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_avresponse, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_reqbufneed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_reqbufneed, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_Statistics_bigbufneed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_Statistics_bigbufneed, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_Statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_Statistics);
+       }
+       
+       offset = srvsvc_dissect_element_Statistics_start(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_fopens(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_devopens(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_jobsqueued(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_sopens(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_stimeouts(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_serrorout(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_pwerrors(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_permerrors(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_syserrors(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_bytessent_low(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_bytessent_high(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_bytesrcvd_low(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_bytesrcvd_high(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_avresponse(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_reqbufneed(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_Statistics_bigbufneed(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 vcs; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        [unique(1)] [size_is(addr_len)] uint8 *addr; */
+/* IDL:        uint32 addr_len; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *net_addr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo0_vcs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo0_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetTransportInfo0_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo0_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo0_addr_, NDR_POINTER_UNIQUE, "Pointer to Addr (uint8)",hf_srvsvc_srvsvc_NetTransportInfo0_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo0_addr__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo0_addr, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo0_addr_len, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo0_net_addr_, NDR_POINTER_UNIQUE, "Pointer to Net Addr (uint16)",hf_srvsvc_srvsvc_NetTransportInfo0_net_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo0_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo0_net_addr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportInfo0);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportInfo0_vcs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo0_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo0_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo0_addr_len(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo0_net_addr(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetTransportInfo0 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetTransportInfo0)",hf_srvsvc_srvsvc_NetTransportCtr0_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr0_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr0_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportCtr0);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 vcs; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        [unique(1)] [size_is(addr_len)] uint8 *addr; */
+/* IDL:        uint32 addr_len; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *net_addr; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo1_vcs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetTransportInfo1_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo1_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_addr_, NDR_POINTER_UNIQUE, "Pointer to Addr (uint8)",hf_srvsvc_srvsvc_NetTransportInfo1_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_addr__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo1_addr, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo1_addr_len, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_net_addr_, NDR_POINTER_UNIQUE, "Pointer to Net Addr (uint16)",hf_srvsvc_srvsvc_NetTransportInfo1_net_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo1_net_addr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo1_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_srvsvc_srvsvc_NetTransportInfo1_domain);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo1_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo1_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportInfo1);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportInfo1_vcs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo1_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo1_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo1_addr_len(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo1_net_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo1_domain(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetTransportInfo1 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetTransportInfo1)",hf_srvsvc_srvsvc_NetTransportCtr1_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr1_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr1_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportCtr1);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 vcs; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        [unique(1)] [size_is(addr_len)] uint8 *addr; */
+/* IDL:        uint32 addr_len; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *net_addr; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL:        uint32 unknown; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo2_vcs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetTransportInfo2_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo2_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_addr_, NDR_POINTER_UNIQUE, "Pointer to Addr (uint8)",hf_srvsvc_srvsvc_NetTransportInfo2_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_addr__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo2_addr, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo2_addr_len, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_net_addr_, NDR_POINTER_UNIQUE, "Pointer to Net Addr (uint16)",hf_srvsvc_srvsvc_NetTransportInfo2_net_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo2_net_addr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo2_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_srvsvc_srvsvc_NetTransportInfo2_domain);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo2_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo2_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo2_unknown, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportInfo2);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportInfo2_vcs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo2_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo2_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo2_addr_len(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo2_net_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo2_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo2_unknown(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetTransportInfo2 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetTransportInfo2)",hf_srvsvc_srvsvc_NetTransportCtr2_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr2_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr2_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportCtr2);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportCtr2_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 vcs; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        [unique(1)] [size_is(addr_len)] uint8 *addr; */
+/* IDL:        uint32 addr_len; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *net_addr; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain; */
+/* IDL:        uint32 unknown1; */
+/* IDL:        uint32 unknown2; */
+/* IDL:        uint8 unknown3[256]; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_vcs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_vcs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_srvsvc_srvsvc_NetTransportInfo3_name);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo3_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_addr_, NDR_POINTER_UNIQUE, "Pointer to Addr (uint8)",hf_srvsvc_srvsvc_NetTransportInfo3_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_addr__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_addr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_addr, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_addr_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_addr_len, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_net_addr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_net_addr_, NDR_POINTER_UNIQUE, "Pointer to Net Addr (uint16)",hf_srvsvc_srvsvc_NetTransportInfo3_net_addr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_net_addr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo3_net_addr, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportInfo3_domain_, NDR_POINTER_UNIQUE, "Pointer to Domain (uint16)",hf_srvsvc_srvsvc_NetTransportInfo3_domain);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportInfo3_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_unknown1, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_unknown2, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 256; i++)
+               offset = srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo3_unknown3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfo3_unknown3, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportInfo3);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportInfo3_vcs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_name(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_addr_len(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_net_addr(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportInfo3_unknown3(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] srvsvc_NetTransportInfo3 *array; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportCtr3_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportCtr3_count, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr3_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr3_array_, NDR_POINTER_UNIQUE, "Pointer to Array (srvsvc_NetTransportInfo3)",hf_srvsvc_srvsvc_NetTransportCtr3_array);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr3_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr3_array__);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr3_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo3(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr3_array,0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportCtr3);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportCtr3_count(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetTransportCtr3_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] srvsvc_NetTransportCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] srvsvc_NetTransportCtr1 *ctr1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] srvsvc_NetTransportCtr2 *ctr2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] srvsvc_NetTransportCtr3 *ctr3; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (srvsvc_NetTransportCtr0)",hf_srvsvc_srvsvc_NetTransportCtr_ctr0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportCtr0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (srvsvc_NetTransportCtr1)",hf_srvsvc_srvsvc_NetTransportCtr_ctr1);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportCtr1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr_ctr2_, NDR_POINTER_UNIQUE, "Pointer to Ctr2 (srvsvc_NetTransportCtr2)",hf_srvsvc_srvsvc_NetTransportCtr_ctr2);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportCtr2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportCtr_ctr3_, NDR_POINTER_UNIQUE, "Pointer to Ctr3 (srvsvc_NetTransportCtr3)",hf_srvsvc_srvsvc_NetTransportCtr_ctr3);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportCtr_ctr3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportCtr3(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportCtr_ctr3,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetTransportCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetTransportCtr");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetTransportCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetTransportCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = srvsvc_dissect_element_NetTransportCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = srvsvc_dissect_element_NetTransportCtr_ctr3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] srvsvc_NetTransportCtr ctr; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportInfoCtr_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfoCtr_level, level);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfoCtr_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = srvsvc_dissect_NetTransportCtr(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportInfoCtr_ctr, *level);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetTransportInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportInfoCtr);
+       }
+       
+       offset = srvsvc_dissect_element_NetTransportInfoCtr_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = srvsvc_dissect_element_NetTransportInfoCtr_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 elapsed; */
+/* IDL:        uint32 msecs; */
+/* IDL:        uint32 hours; */
+/* IDL:        uint32 mins; */
+/* IDL:        uint32 secs; */
+/* IDL:        uint32 hunds; */
+/* IDL:        int32 timezone; */
+/* IDL:        uint32 tinterval; */
+/* IDL:        uint32 day; */
+/* IDL:        uint32 month; */
+/* IDL:        uint32 year; */
+/* IDL:        uint32 weekday; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_elapsed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_elapsed, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_msecs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_msecs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_hours(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_hours, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_mins(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_mins, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_secs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_secs, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_hunds(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_hunds, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_timezone(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_timezone, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_tinterval(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_tinterval, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_day(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_day, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_month(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_month, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_year(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_year, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTODInfo_weekday(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetRemoteTODInfo_weekday, 0);
+
+       return offset;
+}
+
+int
+srvsvc_dissect_struct_NetRemoteTODInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetRemoteTODInfo);
+       }
+       
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_elapsed(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_msecs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_hours(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_mins(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_secs(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_hunds(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_timezone(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_tinterval(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_day(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_month(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_year(tvb, offset, pinfo, tree, drep);
+
+       offset = srvsvc_dissect_element_NetRemoteTODInfo_weekday(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(0)] [case(0)] srvsvc_NetTransportInfo0 info0; */
+/* IDL: [case(1)] [case(1)] srvsvc_NetTransportInfo1 info1; */
+/* IDL: [case(2)] [case(2)] srvsvc_NetTransportInfo2 info2; */
+/* IDL: [case(3)] [case(3)] srvsvc_NetTransportInfo3 info3; */
+/* IDL: } */
+
+static int
+srvsvc_dissect_element_NetTransportInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportInfo_info0,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo1(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportInfo_info1,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo2(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportInfo_info2,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo3(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportInfo_info3,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetTransportInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "srvsvc_NetTransportInfo");
+               tree = proto_item_add_subtree(item, ett_srvsvc_srvsvc_NetTransportInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = srvsvc_dissect_element_NetTransportInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = srvsvc_dissect_element_NetTransportInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = srvsvc_dissect_element_NetTransportInfo_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = srvsvc_dissect_element_NetTransportInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+static int
+srvsvc_dissect_element_NetCharDevEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevEnum_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetCharDevInfoCtr)",hf_srvsvc_srvsvc_NetCharDevEnum_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevEnum_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetCharDevEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetCharDevEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [out] [in] [ref] srvsvc_NetCharDevInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevEnum";
+       offset = srvsvc_dissect_element_NetCharDevEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevEnum";
+       offset = srvsvc_dissect_element_NetCharDevEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevGetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevGetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevGetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevGetInfo_device_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevGetInfo_device_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetCharDevInfo)",hf_srvsvc_srvsvc_NetCharDevGetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetCharDevInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 device_name[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] srvsvc_NetCharDevInfo *info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevGetInfo";
+       offset = srvsvc_dissect_element_NetCharDevGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevGetInfo";
+       offset = srvsvc_dissect_element_NetCharDevGetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevGetInfo_device_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevControl_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevControl_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevControl_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevControl_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevControl_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevControl_device_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevControl_device_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevControl_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevControl_opcode, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevControl( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 device_name[*], */
+/* IDL: [in] uint32 opcode */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevControl_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevControl";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevControl_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevControl";
+       offset = srvsvc_dissect_element_NetCharDevControl_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevControl_device_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevControl_opcode(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevQEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQEnum_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetCharDevQEnum_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQEnum_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQEnum_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetCharDevQInfoCtr)",hf_srvsvc_srvsvc_NetCharDevQEnum_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetCharDevQInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetCharDevQEnum_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetCharDevQEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetCharDevQEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevQEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *user, */
+/* IDL: [out] [in] [ref] srvsvc_NetCharDevQInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevQEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevQEnum";
+       offset = srvsvc_dissect_element_NetCharDevQEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetCharDevQEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevQEnum";
+       offset = srvsvc_dissect_element_NetCharDevQEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQEnum_user(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQGetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevQGetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQGetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQGetInfo_queue_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQGetInfo_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetCharDevQInfo)",hf_srvsvc_srvsvc_NetCharDevQGetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetCharDevQInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevQGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 queue_name[*], */
+/* IDL: [in] [charset(UTF16)] uint16 user[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] srvsvc_NetCharDevQInfo *info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevQGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevQGetInfo";
+       offset = srvsvc_dissect_element_NetCharDevQGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevQGetInfo";
+       offset = srvsvc_dissect_element_NetCharDevQGetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQGetInfo_queue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQGetInfo_user(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQSetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevQSetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQSetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQSetInfo_queue_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQSetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetCharDevQInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQSetInfo_info, *0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQSetInfo_parm_error_, NDR_POINTER_UNIQUE, "Pointer to Parm Error (uint32)",hf_srvsvc_srvsvc_NetCharDevQSetInfo_parm_error);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetCharDevQSetInfo_parm_error, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevQSetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 queue_name[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] srvsvc_NetCharDevQInfo info, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_error */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevQSetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevQSetInfo";
+       offset = srvsvc_dissect_element_NetCharDevQSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQSetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevQSetInfo";
+       offset = srvsvc_dissect_element_NetCharDevQSetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQSetInfo_queue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQSetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQSetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurge_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQPurge_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevQPurge_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurge_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQPurge_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurge_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQPurge_queue_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevQPurge( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 queue_name[*] */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevQPurge_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevQPurge";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQPurge_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevQPurge";
+       offset = srvsvc_dissect_element_NetCharDevQPurge_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQPurge_queue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurgeSelf_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetCharDevQPurgeSelf_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurgeSelf_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurgeSelf_queue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_queue_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetCharDevQPurgeSelf_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_computer_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetCharDevQPurgeSelf( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 queue_name[*], */
+/* IDL: [in] [charset(UTF16)] uint16 computer_name[*] */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetCharDevQPurgeSelf_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetCharDevQPurgeSelf";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetCharDevQPurgeSelf_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetCharDevQPurgeSelf";
+       offset = srvsvc_dissect_element_NetCharDevQPurgeSelf_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQPurgeSelf_queue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetCharDevQPurgeSelf_computer_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetConnEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetConnEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnEnum_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_srvsvc_srvsvc_NetConnEnum_path);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetConnEnum_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnEnum_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetConnInfoCtr)",hf_srvsvc_srvsvc_NetConnEnum_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetConnInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetConnEnum_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetConnEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetConnEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetConnEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetConnEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetConnEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetConnEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *path, */
+/* IDL: [out] [in] [ref] srvsvc_NetConnInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetConnEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetConnEnum";
+       offset = srvsvc_dissect_element_NetConnEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetConnEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetConnEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetConnEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetConnEnum";
+       offset = srvsvc_dissect_element_NetConnEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetConnEnum_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetConnEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetConnEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetConnEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetFileEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileEnum_path_, NDR_POINTER_UNIQUE, "Pointer to Path (uint16)",hf_srvsvc_srvsvc_NetFileEnum_path);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileEnum_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileEnum_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetFileEnum_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileEnum_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileEnum_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetFileInfoCtr)",hf_srvsvc_srvsvc_NetFileEnum_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetFileInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetFileEnum_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetFileEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetFileEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetFileEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *path, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *user, */
+/* IDL: [out] [in] [ref] srvsvc_NetFileInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetFileEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetFileEnum";
+       offset = srvsvc_dissect_element_NetFileEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetFileEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetFileEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetFileEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetFileEnum";
+       offset = srvsvc_dissect_element_NetFileEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileEnum_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileEnum_user(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileGetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetFileGetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileGetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileGetInfo_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileGetInfo_fid, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetFileInfo)",hf_srvsvc_srvsvc_NetFileGetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetFileInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetFileGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 fid, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] srvsvc_NetFileInfo *info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetFileGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetFileGetInfo";
+       offset = srvsvc_dissect_element_NetFileGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetFileGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetFileGetInfo";
+       offset = srvsvc_dissect_element_NetFileGetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileGetInfo_fid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileClose_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetFileClose_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetFileClose_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileClose_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetFileClose_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetFileClose_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetFileClose_fid, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetFileClose( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 fid */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetFileClose_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetFileClose";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetFileClose_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetFileClose";
+       offset = srvsvc_dissect_element_NetFileClose_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetFileClose_fid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetSessEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessEnum_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessEnum_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessEnum_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessEnum_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetSessEnum_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessEnum_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessEnum_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetSessInfoCtr)",hf_srvsvc_srvsvc_NetSessEnum_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetSessInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSessEnum_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetSessEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetSessEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSessEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetSessEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *client, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *user, */
+/* IDL: [out] [in] [ref] srvsvc_NetSessInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetSessEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetSessEnum";
+       offset = srvsvc_dissect_element_NetSessEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetSessEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetSessEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSessEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetSessEnum";
+       offset = srvsvc_dissect_element_NetSessEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessEnum_client(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessEnum_user(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessDel_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessDel_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetSessDel_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessDel_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessDel_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessDel_client(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessDel_client_, NDR_POINTER_UNIQUE, "Pointer to Client (uint16)",hf_srvsvc_srvsvc_NetSessDel_client);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessDel_client_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessDel_client, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessDel_user(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSessDel_user_, NDR_POINTER_UNIQUE, "Pointer to User (uint16)",hf_srvsvc_srvsvc_NetSessDel_user);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSessDel_user_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSessDel_user, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetSessDel( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *client, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *user */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetSessDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetSessDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSessDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetSessDel";
+       offset = srvsvc_dissect_element_NetSessDel_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessDel_client(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSessDel_user(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareAdd_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareAdd_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareAdd_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareAdd_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareAdd_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetShareInfo)",hf_srvsvc_srvsvc_NetShareAdd_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetShareInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareAdd_info, *0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareAdd_parm_error_, NDR_POINTER_UNIQUE, "Pointer to Parm Error (uint32)",hf_srvsvc_srvsvc_NetShareAdd_parm_error);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareAdd_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareAdd_parm_error, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareAdd( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] srvsvc_NetShareInfo *info, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_error */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareAdd";
+       offset = srvsvc_dissect_element_NetShareAdd_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareAdd";
+       offset = srvsvc_dissect_element_NetShareAdd_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareAdd_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareAdd_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareAdd_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnumAll_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareEnumAll_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareEnumAll_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnumAll_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetShareInfoCtr)",hf_srvsvc_srvsvc_NetShareEnumAll_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareEnumAll_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareEnumAll_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnumAll_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetShareEnumAll_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareEnumAll_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnumAll_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetShareEnumAll_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnumAll_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareEnumAll_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareEnumAll( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [out] [in] [ref] srvsvc_NetShareInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareEnumAll_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareEnumAll";
+       offset = srvsvc_dissect_element_NetShareEnumAll_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetShareEnumAll_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetShareEnumAll_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareEnumAll_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareEnumAll";
+       offset = srvsvc_dissect_element_NetShareEnumAll_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareEnumAll_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareEnumAll_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareEnumAll_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareGetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareGetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareGetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareGetInfo_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareGetInfo_share_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetShareInfo)",hf_srvsvc_srvsvc_NetShareGetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetShareInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 share_name[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] srvsvc_NetShareInfo *info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareGetInfo";
+       offset = srvsvc_dissect_element_NetShareGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareGetInfo";
+       offset = srvsvc_dissect_element_NetShareGetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareGetInfo_share_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareSetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareSetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareSetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareSetInfo_share_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareSetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareSetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetShareInfo)",hf_srvsvc_srvsvc_NetShareSetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetShareInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareSetInfo_info, *0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareSetInfo_parm_error_, NDR_POINTER_UNIQUE, "Pointer to Parm Error (uint32)",hf_srvsvc_srvsvc_NetShareSetInfo_parm_error);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareSetInfo_parm_error, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareSetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 share_name[*], */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] srvsvc_NetShareInfo *info, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_error */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareSetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareSetInfo";
+       offset = srvsvc_dissect_element_NetShareSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareSetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareSetInfo";
+       offset = srvsvc_dissect_element_NetShareSetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareSetInfo_share_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareSetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareSetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDel_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareDel_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareDel_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDel_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareDel_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDel_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareDel_share_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDel_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareDel_reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareDel( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 share_name[*], */
+/* IDL: [in] uint32 reserved */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareDel";
+       offset = srvsvc_dissect_element_NetShareDel_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareDel_share_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareDel_reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelSticky_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareDelSticky_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareDelSticky_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelSticky_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareDelSticky_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelSticky_share_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareDelSticky_share_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelSticky_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareDelSticky_reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareDelSticky( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 share_name[*], */
+/* IDL: [in] uint32 reserved */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareDelSticky_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareDelSticky";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareDelSticky_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareDelSticky";
+       offset = srvsvc_dissect_element_NetShareDelSticky_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareDelSticky_share_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareDelSticky_reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCheck_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCheck_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareCheck_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCheck_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareCheck_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCheck_device_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareCheck_device_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCheck_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareCheck_type_, NDR_POINTER_REF, "Pointer to Type (srvsvc_ShareType)",hf_srvsvc_srvsvc_NetShareCheck_type);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareCheck_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_enum_ShareType(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareCheck_type, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareCheck( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 device_name[*], */
+/* IDL: [out] [ref] srvsvc_ShareType *type */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareCheck_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareCheck";
+       offset = srvsvc_dissect_element_NetShareCheck_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareCheck_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareCheck";
+       offset = srvsvc_dissect_element_NetShareCheck_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareCheck_device_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvGetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvGetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetSrvGetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvGetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvGetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetSrvInfo)",hf_srvsvc_srvsvc_NetSrvGetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetSrvInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetSrvGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] srvsvc_NetSrvInfo *info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetSrvGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetSrvGetInfo";
+       offset = srvsvc_dissect_element_NetSrvGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSrvGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetSrvGetInfo";
+       offset = srvsvc_dissect_element_NetSrvGetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSrvGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvSetInfo_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetSrvSetInfo_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSrvSetInfo_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvSetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvSetInfo_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetSrvInfo)",hf_srvsvc_srvsvc_NetSrvSetInfo_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetSrvInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvSetInfo_info, *0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSrvSetInfo_parm_error_, NDR_POINTER_UNIQUE, "Pointer to Parm Error (uint32)",hf_srvsvc_srvsvc_NetSrvSetInfo_parm_error);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSrvSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSrvSetInfo_parm_error, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetSrvSetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] srvsvc_NetSrvInfo *info, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_error */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetSrvSetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetSrvSetInfo";
+       offset = srvsvc_dissect_element_NetSrvSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSrvSetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetSrvSetInfo";
+       offset = srvsvc_dissect_element_NetSrvSetInfo_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSrvSetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSrvSetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSrvSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetDiskEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetDiskEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetDiskEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskEnum_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetDiskEnum_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetDiskInfo)",hf_srvsvc_srvsvc_NetDiskEnum_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetDiskInfo(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetDiskEnum_info,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_maxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskEnum_maxlen, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetDiskEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetDiskEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetDiskEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetDiskEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetDiskEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetDiskEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetDiskEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [in] [ref] srvsvc_NetDiskInfo *info, */
+/* IDL: [in] uint32 maxlen, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetDiskEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetDiskEnum";
+       offset = srvsvc_dissect_element_NetDiskEnum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetDiskEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetDiskEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetDiskEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetDiskEnum";
+       offset = srvsvc_dissect_element_NetDiskEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetDiskEnum_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetDiskEnum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetDiskEnum_maxlen(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetDiskEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerStatisticsGet_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetServerStatisticsGet_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetServerStatisticsGet_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerStatisticsGet_service_, NDR_POINTER_UNIQUE, "Pointer to Service (uint16)",hf_srvsvc_srvsvc_NetServerStatisticsGet_service);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetServerStatisticsGet_service, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerStatisticsGet_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerStatisticsGet_options, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_stats(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerStatisticsGet_stats_, NDR_POINTER_REF, "Pointer to Stats (srvsvc_Statistics)",hf_srvsvc_srvsvc_NetServerStatisticsGet_stats);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_stats_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerStatisticsGet_stats__, NDR_POINTER_UNIQUE, "Pointer to Stats (srvsvc_Statistics)",hf_srvsvc_srvsvc_NetServerStatisticsGet_stats);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerStatisticsGet_stats__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_Statistics(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetServerStatisticsGet_stats,0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetServerStatisticsGet( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] uint32 options, */
+/* IDL: [out] [ref] srvsvc_Statistics **stats */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetServerStatisticsGet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetServerStatisticsGet";
+       offset = srvsvc_dissect_element_NetServerStatisticsGet_stats(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetServerStatisticsGet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetServerStatisticsGet";
+       offset = srvsvc_dissect_element_NetServerStatisticsGet_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerStatisticsGet_service(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerStatisticsGet_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerStatisticsGet_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportAdd_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportAdd_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetTransportAdd_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportAdd_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportAdd_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportAdd_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportAdd_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetTransportInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportAdd_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetTransportAdd( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] srvsvc_NetTransportInfo info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetTransportAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetTransportAdd";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetTransportAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetTransportAdd";
+       offset = srvsvc_dissect_element_NetTransportAdd_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportAdd_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportAdd_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetTransportEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_transports(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportEnum_transports_, NDR_POINTER_REF, "Pointer to Transports (srvsvc_NetTransportInfoCtr)",hf_srvsvc_srvsvc_NetTransportEnum_transports);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_transports_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportEnum_transports,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetTransportEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetTransportEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetTransportEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [out] [in] [ref] srvsvc_NetTransportInfoCtr *transports, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetTransportEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetTransportEnum";
+       offset = srvsvc_dissect_element_NetTransportEnum_transports(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetTransportEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetTransportEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetTransportEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetTransportEnum";
+       offset = srvsvc_dissect_element_NetTransportEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportEnum_transports(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportDel_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportDel_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetTransportDel_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportDel_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetTransportDel_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportDel_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetTransportDel_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportDel_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetTransportDel_info0_, NDR_POINTER_REF, "Pointer to Info0 (srvsvc_NetTransportInfo0)",hf_srvsvc_srvsvc_NetTransportDel_info0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetTransportDel_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetTransportInfo0(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetTransportDel_info0,0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetTransportDel( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] srvsvc_NetTransportInfo0 *info0 */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetTransportDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetTransportDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetTransportDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetTransportDel";
+       offset = srvsvc_dissect_element_NetTransportDel_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportDel_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetTransportDel_info0(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTOD_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetRemoteTOD_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetRemoteTOD_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTOD_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetRemoteTOD_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTOD_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetRemoteTOD_info_, NDR_POINTER_REF, "Pointer to Info (srvsvc_NetRemoteTODInfo)",hf_srvsvc_srvsvc_NetRemoteTOD_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTOD_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetRemoteTOD_info__, NDR_POINTER_UNIQUE, "Pointer to Info (srvsvc_NetRemoteTODInfo)",hf_srvsvc_srvsvc_NetRemoteTOD_info);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetRemoteTOD_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetRemoteTODInfo(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetRemoteTOD_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetRemoteTOD( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [out] [ref] srvsvc_NetRemoteTODInfo **info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetRemoteTOD_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetRemoteTOD";
+       offset = srvsvc_dissect_element_NetRemoteTOD_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetRemoteTOD_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetRemoteTOD";
+       offset = srvsvc_dissect_element_NetRemoteTOD_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetServiceBits_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSetServiceBits_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetSetServiceBits_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetServiceBits_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSetServiceBits_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetServiceBits_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSetServiceBits_transport_, NDR_POINTER_UNIQUE, "Pointer to Transport (uint16)",hf_srvsvc_srvsvc_NetSetServiceBits_transport);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetServiceBits_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSetServiceBits_transport, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetServiceBits_servicebits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSetServiceBits_servicebits, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetServiceBits_updateimmediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSetServiceBits_updateimmediately, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetSetServiceBits( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *transport, */
+/* IDL: [in] uint32 servicebits, */
+/* IDL: [in] uint32 updateimmediately */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetSetServiceBits_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetSetServiceBits";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSetServiceBits_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetSetServiceBits";
+       offset = srvsvc_dissect_element_NetSetServiceBits_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetServiceBits_transport(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetServiceBits_servicebits(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetServiceBits_updateimmediately(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathType_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathType_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetPathType_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathType_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathType_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathType_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathType_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathType_pathflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathType_pathflags, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathType_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathType_pathtype_, NDR_POINTER_REF, "Pointer to Pathtype (uint32)",hf_srvsvc_srvsvc_NetPathType_pathtype);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathType_pathtype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathType_pathtype, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetPathType( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 path[*], */
+/* IDL: [in] uint32 pathflags, */
+/* IDL: [out] [ref] uint32 *pathtype */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetPathType_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetPathType";
+       offset = srvsvc_dissect_element_NetPathType_pathtype(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetPathType_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetPathType";
+       offset = srvsvc_dissect_element_NetPathType_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathType_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathType_pathflags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathCanonicalize_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetPathCanonicalize_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathCanonicalize_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathCanonicalize_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_can_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathCanonicalize_can_path_);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_can_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCanonicalize_can_path, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_maxbuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCanonicalize_maxbuf, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_prefix(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathCanonicalize_prefix, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathCanonicalize_pathtype_, NDR_POINTER_REF, "Pointer to Pathtype (uint32)",hf_srvsvc_srvsvc_NetPathCanonicalize_pathtype);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_pathtype_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCanonicalize_pathtype, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCanonicalize_pathflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCanonicalize_pathflags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetPathCanonicalize( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 path[*], */
+/* IDL: [out] [size_is(maxbuf)] uint8 can_path[*], */
+/* IDL: [in] uint32 maxbuf, */
+/* IDL: [in] [charset(UTF16)] uint16 prefix[*], */
+/* IDL: [out] [in] [ref] uint32 *pathtype, */
+/* IDL: [in] uint32 pathflags */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetPathCanonicalize_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetPathCanonicalize";
+       offset = srvsvc_dissect_element_NetPathCanonicalize_can_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetPathCanonicalize_pathtype(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetPathCanonicalize_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetPathCanonicalize";
+       offset = srvsvc_dissect_element_NetPathCanonicalize_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCanonicalize_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCanonicalize_maxbuf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCanonicalize_prefix(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCanonicalize_pathtype(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCanonicalize_pathflags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCompare_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPathCompare_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetPathCompare_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCompare_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathCompare_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCompare_path1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathCompare_path1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCompare_path2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPathCompare_path2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCompare_pathtype(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCompare_pathtype, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPathCompare_pathflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPathCompare_pathflags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetPathCompare( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 path1[*], */
+/* IDL: [in] [charset(UTF16)] uint16 path2[*], */
+/* IDL: [in] uint32 pathtype, */
+/* IDL: [in] uint32 pathflags */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetPathCompare_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetPathCompare";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetPathCompare_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetPathCompare";
+       offset = srvsvc_dissect_element_NetPathCompare_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCompare_path1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCompare_path2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCompare_pathtype(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPathCompare_pathflags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetNameValidate_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetNameValidate_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetNameValidate_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetNameValidate_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetNameValidate_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetNameValidate_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetNameValidate_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetNameValidate_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetNameValidate_name_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetNameValidate_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetNameValidate_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetNameValidate( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 name[*], */
+/* IDL: [in] uint32 name_type, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetNameValidate_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetNameValidate";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetNameValidate_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetNameValidate";
+       offset = srvsvc_dissect_element_NetNameValidate_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetNameValidate_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetNameValidate_name_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetNameValidate_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRPRNAMECANONICALIZE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRPRNAMECANONICALIZE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRPRNAMECANONICALIZE";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRPRNAMECANONICALIZE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRPRNAMECANONICALIZE";
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPRNameCompare_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetPRNameCompare_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetPRNameCompare_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPRNameCompare_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPRNameCompare_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPRNameCompare_name1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPRNameCompare_name1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPRNameCompare_name2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetPRNameCompare_name2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPRNameCompare_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPRNameCompare_name_type, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetPRNameCompare_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetPRNameCompare_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetPRNameCompare( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 name1[*], */
+/* IDL: [in] [charset(UTF16)] uint16 name2[*], */
+/* IDL: [in] uint32 name_type, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetPRNameCompare_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetPRNameCompare";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetPRNameCompare_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetPRNameCompare";
+       offset = srvsvc_dissect_element_NetPRNameCompare_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPRNameCompare_name1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPRNameCompare_name2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPRNameCompare_name_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetPRNameCompare_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnum_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareEnum_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareEnum_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_info_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnum_info_ctr_, NDR_POINTER_REF, "Pointer to Info Ctr (srvsvc_NetShareInfoCtr)",hf_srvsvc_srvsvc_NetShareEnum_info_ctr);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_info_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_NetShareInfoCtr(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetShareEnum_info_ctr,0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_totalentries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnum_totalentries_, NDR_POINTER_REF, "Pointer to Totalentries (uint32)",hf_srvsvc_srvsvc_NetShareEnum_totalentries);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_totalentries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareEnum_totalentries, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_srvsvc_srvsvc_NetShareEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [out] [in] [ref] srvsvc_NetShareInfoCtr *info_ctr, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *totalentries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareEnum";
+       offset = srvsvc_dissect_element_NetShareEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetShareEnum_totalentries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = srvsvc_dissect_element_NetShareEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareEnum";
+       offset = srvsvc_dissect_element_NetShareEnum_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareEnum_info_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelStart_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareDelStart_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetShareDelStart_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelStart_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareDelStart_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelStart_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetShareDelStart_share, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelStart_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareDelStart_reserved, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelStart_hnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareDelStart_hnd_, NDR_POINTER_UNIQUE, "Pointer to Hnd (policy_handle)",hf_srvsvc_srvsvc_NetShareDelStart_hnd);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelStart_hnd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareDelStart_hnd, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareDelStart( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] [charset(UTF16)] uint16 share[*], */
+/* IDL: [in] uint32 reserved, */
+/* IDL: [out] [unique(1)] policy_handle *hnd */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareDelStart_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareDelStart";
+       offset = srvsvc_dissect_element_NetShareDelStart_hnd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareDelStart_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareDelStart";
+       offset = srvsvc_dissect_element_NetShareDelStart_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareDelStart_share(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetShareDelStart_reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelCommit_hnd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetShareDelCommit_hnd_, NDR_POINTER_UNIQUE, "Pointer to Hnd (policy_handle)",hf_srvsvc_srvsvc_NetShareDelCommit_hnd);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetShareDelCommit_hnd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetShareDelCommit_hnd, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetShareDelCommit( */
+/* IDL: [out] [unique(1)] [in] policy_handle *hnd */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetShareDelCommit_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetShareDelCommit";
+       offset = srvsvc_dissect_element_NetShareDelCommit_hnd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetShareDelCommit_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetShareDelCommit";
+       offset = srvsvc_dissect_element_NetShareDelCommit_hnd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetGetFileSecurity_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetGetFileSecurity_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetGetFileSecurity_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetGetFileSecurity_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_srvsvc_srvsvc_NetGetFileSecurity_share);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetGetFileSecurity_share, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetGetFileSecurity_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_securityinformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetGetFileSecurity_securityinformation, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetGetFileSecurity_sd_buf_, NDR_POINTER_REF, "Pointer to Sd Buf (sec_desc_buf)",hf_srvsvc_srvsvc_NetGetFileSecurity_sd_buf);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_sd_buf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetGetFileSecurity_sd_buf__, NDR_POINTER_UNIQUE, "Pointer to Sd Buf (sec_desc_buf)",hf_srvsvc_srvsvc_NetGetFileSecurity_sd_buf);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetGetFileSecurity_sd_buf__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetGetFileSecurity_sd_buf,0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetGetFileSecurity( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *share, */
+/* IDL: [in] [charset(UTF16)] uint16 file[*], */
+/* IDL: [in] security_secinfo securityinformation, */
+/* IDL: [out] [ref] sec_desc_buf **sd_buf */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetGetFileSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetGetFileSecurity";
+       offset = srvsvc_dissect_element_NetGetFileSecurity_sd_buf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetGetFileSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetGetFileSecurity";
+       offset = srvsvc_dissect_element_NetGetFileSecurity_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetGetFileSecurity_share(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetGetFileSecurity_file(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetGetFileSecurity_securityinformation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSetFileSecurity_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetSetFileSecurity_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSetFileSecurity_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_share(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSetFileSecurity_share_, NDR_POINTER_UNIQUE, "Pointer to Share (uint16)",hf_srvsvc_srvsvc_NetSetFileSecurity_share);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_share_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSetFileSecurity_share, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetSetFileSecurity_file, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_securityinformation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_bitmap_security_secinfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetSetFileSecurity_securityinformation, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_sd_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetSetFileSecurity_sd_buf_, NDR_POINTER_REF, "Pointer to Sd Buf (sec_desc_buf)",hf_srvsvc_srvsvc_NetSetFileSecurity_sd_buf);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetSetFileSecurity_sd_buf_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_struct_sec_desc_buf(tvb,offset,pinfo,tree,drep,hf_srvsvc_srvsvc_NetSetFileSecurity_sd_buf,0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetSetFileSecurity( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *share, */
+/* IDL: [in] [charset(UTF16)] uint16 file[*], */
+/* IDL: [in] security_secinfo securityinformation, */
+/* IDL: [in] [ref] sec_desc_buf *sd_buf */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetSetFileSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetSetFileSecurity";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetSetFileSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetSetFileSecurity";
+       offset = srvsvc_dissect_element_NetSetFileSecurity_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetFileSecurity_share(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetFileSecurity_file(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetFileSecurity_securityinformation(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetSetFileSecurity_sd_buf(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerTransportAddEx_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerTransportAddEx_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetServerTransportAddEx_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerTransportAddEx_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetServerTransportAddEx_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerTransportAddEx_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerTransportAddEx_level, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerTransportAddEx_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = srvsvc_dissect_NetTransportInfo(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerTransportAddEx_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetServerTransportAddEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [switch_is(level)] srvsvc_NetTransportInfo info */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetServerTransportAddEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetServerTransportAddEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetServerTransportAddEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetServerTransportAddEx";
+       offset = srvsvc_dissect_element_NetServerTransportAddEx_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerTransportAddEx_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerTransportAddEx_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerSetServiceBitsEx_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Server Unc (uint16)",hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_emulated_server_unc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerSetServiceBitsEx_emulated_server_unc_, NDR_POINTER_UNIQUE, "Pointer to Emulated Server Unc (uint16)",hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_emulated_server_unc);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_emulated_server_unc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_emulated_server_unc, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_transport(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, srvsvc_dissect_element_NetServerSetServiceBitsEx_transport_, NDR_POINTER_UNIQUE, "Pointer to Transport (uint16)",hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_transport);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_transport_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_transport, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_servicebitsofinterest(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_servicebitsofinterest, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_servicebits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_servicebits, 0);
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_element_NetServerSetServiceBitsEx_updateimmediately(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_updateimmediately, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NetServerSetServiceBitsEx( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *emulated_server_unc, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *transport, */
+/* IDL: [in] uint32 servicebitsofinterest, */
+/* IDL: [in] uint32 servicebits, */
+/* IDL: [in] uint32 updateimmediately */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NetServerSetServiceBitsEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetServerSetServiceBitsEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NetServerSetServiceBitsEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetServerSetServiceBitsEx";
+       offset = srvsvc_dissect_element_NetServerSetServiceBitsEx_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerSetServiceBitsEx_emulated_server_unc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerSetServiceBitsEx_transport(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerSetServiceBitsEx_servicebitsofinterest(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerSetServiceBitsEx_servicebits(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = srvsvc_dissect_element_NetServerSetServiceBitsEx_updateimmediately(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSGETVERSION( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSGETVERSION_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSGETVERSION";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSGETVERSION_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSGETVERSION";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSCREATELOCALPARTITION( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSCREATELOCALPARTITION_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSCREATELOCALPARTITION";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSCREATELOCALPARTITION_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSCREATELOCALPARTITION";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSDELETELOCALPARTITION( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSDELETELOCALPARTITION_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSDELETELOCALPARTITION";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSDELETELOCALPARTITION_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSDELETELOCALPARTITION";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSSETLOCALVOLUMESTATE( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSSETLOCALVOLUMESTATE_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSSETLOCALVOLUMESTATE";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSSETLOCALVOLUMESTATE_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSSETLOCALVOLUMESTATE";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSSETSERVERINFO( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSSETSERVERINFO_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSSETSERVERINFO";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSSETSERVERINFO_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSSETSERVERINFO";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSCREATEEXITPOINT( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSCREATEEXITPOINT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSCREATEEXITPOINT";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSCREATEEXITPOINT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSCREATEEXITPOINT";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSDELETEEXITPOINT( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSDELETEEXITPOINT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSDELETEEXITPOINT";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSDELETEEXITPOINT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSDELETEEXITPOINT";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSMODIFYPREFIX( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSMODIFYPREFIX_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSMODIFYPREFIX";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSMODIFYPREFIX_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSMODIFYPREFIX";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSFIXLOCALVOLUME( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSFIXLOCALVOLUME_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSFIXLOCALVOLUME";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSFIXLOCALVOLUME_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSFIXLOCALVOLUME";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRDFSMANAGERREPORTSITEINFO( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRDFSMANAGERREPORTSITEINFO_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRDFSMANAGERREPORTSITEINFO";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRDFSMANAGERREPORTSITEINFO_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRDFSMANAGERREPORTSITEINFO";
+       return offset;
+}
+
+/* IDL: WERROR srvsvc_NETRSERVERTRANSPORTDELEX( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+srvsvc_dissect_NETRSERVERTRANSPORTDELEX_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NETRSERVERTRANSPORTDELEX";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_srvsvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+srvsvc_dissect_NETRSERVERTRANSPORTDELEX_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NETRSERVERTRANSPORTDELEX";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector srvsvc_dissectors[] = {
+       { 0, "NetCharDevEnum",
+          srvsvc_dissect_NetCharDevEnum_request, srvsvc_dissect_NetCharDevEnum_response},
+       { 1, "NetCharDevGetInfo",
+          srvsvc_dissect_NetCharDevGetInfo_request, srvsvc_dissect_NetCharDevGetInfo_response},
+       { 2, "NetCharDevControl",
+          srvsvc_dissect_NetCharDevControl_request, srvsvc_dissect_NetCharDevControl_response},
+       { 3, "NetCharDevQEnum",
+          srvsvc_dissect_NetCharDevQEnum_request, srvsvc_dissect_NetCharDevQEnum_response},
+       { 4, "NetCharDevQGetInfo",
+          srvsvc_dissect_NetCharDevQGetInfo_request, srvsvc_dissect_NetCharDevQGetInfo_response},
+       { 5, "NetCharDevQSetInfo",
+          srvsvc_dissect_NetCharDevQSetInfo_request, srvsvc_dissect_NetCharDevQSetInfo_response},
+       { 6, "NetCharDevQPurge",
+          srvsvc_dissect_NetCharDevQPurge_request, srvsvc_dissect_NetCharDevQPurge_response},
+       { 7, "NetCharDevQPurgeSelf",
+          srvsvc_dissect_NetCharDevQPurgeSelf_request, srvsvc_dissect_NetCharDevQPurgeSelf_response},
+       { 8, "NetConnEnum",
+          srvsvc_dissect_NetConnEnum_request, srvsvc_dissect_NetConnEnum_response},
+       { 9, "NetFileEnum",
+          srvsvc_dissect_NetFileEnum_request, srvsvc_dissect_NetFileEnum_response},
+       { 10, "NetFileGetInfo",
+          srvsvc_dissect_NetFileGetInfo_request, srvsvc_dissect_NetFileGetInfo_response},
+       { 11, "NetFileClose",
+          srvsvc_dissect_NetFileClose_request, srvsvc_dissect_NetFileClose_response},
+       { 12, "NetSessEnum",
+          srvsvc_dissect_NetSessEnum_request, srvsvc_dissect_NetSessEnum_response},
+       { 13, "NetSessDel",
+          srvsvc_dissect_NetSessDel_request, srvsvc_dissect_NetSessDel_response},
+       { 14, "NetShareAdd",
+          srvsvc_dissect_NetShareAdd_request, srvsvc_dissect_NetShareAdd_response},
+       { 15, "NetShareEnumAll",
+          srvsvc_dissect_NetShareEnumAll_request, srvsvc_dissect_NetShareEnumAll_response},
+       { 16, "NetShareGetInfo",
+          srvsvc_dissect_NetShareGetInfo_request, srvsvc_dissect_NetShareGetInfo_response},
+       { 17, "NetShareSetInfo",
+          srvsvc_dissect_NetShareSetInfo_request, srvsvc_dissect_NetShareSetInfo_response},
+       { 18, "NetShareDel",
+          srvsvc_dissect_NetShareDel_request, srvsvc_dissect_NetShareDel_response},
+       { 19, "NetShareDelSticky",
+          srvsvc_dissect_NetShareDelSticky_request, srvsvc_dissect_NetShareDelSticky_response},
+       { 20, "NetShareCheck",
+          srvsvc_dissect_NetShareCheck_request, srvsvc_dissect_NetShareCheck_response},
+       { 21, "NetSrvGetInfo",
+          srvsvc_dissect_NetSrvGetInfo_request, srvsvc_dissect_NetSrvGetInfo_response},
+       { 22, "NetSrvSetInfo",
+          srvsvc_dissect_NetSrvSetInfo_request, srvsvc_dissect_NetSrvSetInfo_response},
+       { 23, "NetDiskEnum",
+          srvsvc_dissect_NetDiskEnum_request, srvsvc_dissect_NetDiskEnum_response},
+       { 24, "NetServerStatisticsGet",
+          srvsvc_dissect_NetServerStatisticsGet_request, srvsvc_dissect_NetServerStatisticsGet_response},
+       { 25, "NetTransportAdd",
+          srvsvc_dissect_NetTransportAdd_request, srvsvc_dissect_NetTransportAdd_response},
+       { 26, "NetTransportEnum",
+          srvsvc_dissect_NetTransportEnum_request, srvsvc_dissect_NetTransportEnum_response},
+       { 27, "NetTransportDel",
+          srvsvc_dissect_NetTransportDel_request, srvsvc_dissect_NetTransportDel_response},
+       { 28, "NetRemoteTOD",
+          srvsvc_dissect_NetRemoteTOD_request, srvsvc_dissect_NetRemoteTOD_response},
+       { 29, "NetSetServiceBits",
+          srvsvc_dissect_NetSetServiceBits_request, srvsvc_dissect_NetSetServiceBits_response},
+       { 30, "NetPathType",
+          srvsvc_dissect_NetPathType_request, srvsvc_dissect_NetPathType_response},
+       { 31, "NetPathCanonicalize",
+          srvsvc_dissect_NetPathCanonicalize_request, srvsvc_dissect_NetPathCanonicalize_response},
+       { 32, "NetPathCompare",
+          srvsvc_dissect_NetPathCompare_request, srvsvc_dissect_NetPathCompare_response},
+       { 33, "NetNameValidate",
+          srvsvc_dissect_NetNameValidate_request, srvsvc_dissect_NetNameValidate_response},
+       { 34, "NETRPRNAMECANONICALIZE",
+          srvsvc_dissect_NETRPRNAMECANONICALIZE_request, srvsvc_dissect_NETRPRNAMECANONICALIZE_response},
+       { 35, "NetPRNameCompare",
+          srvsvc_dissect_NetPRNameCompare_request, srvsvc_dissect_NetPRNameCompare_response},
+       { 36, "NetShareEnum",
+          srvsvc_dissect_NetShareEnum_request, srvsvc_dissect_NetShareEnum_response},
+       { 37, "NetShareDelStart",
+          srvsvc_dissect_NetShareDelStart_request, srvsvc_dissect_NetShareDelStart_response},
+       { 38, "NetShareDelCommit",
+          srvsvc_dissect_NetShareDelCommit_request, srvsvc_dissect_NetShareDelCommit_response},
+       { 39, "NetGetFileSecurity",
+          srvsvc_dissect_NetGetFileSecurity_request, srvsvc_dissect_NetGetFileSecurity_response},
+       { 40, "NetSetFileSecurity",
+          srvsvc_dissect_NetSetFileSecurity_request, srvsvc_dissect_NetSetFileSecurity_response},
+       { 41, "NetServerTransportAddEx",
+          srvsvc_dissect_NetServerTransportAddEx_request, srvsvc_dissect_NetServerTransportAddEx_response},
+       { 42, "NetServerSetServiceBitsEx",
+          srvsvc_dissect_NetServerSetServiceBitsEx_request, srvsvc_dissect_NetServerSetServiceBitsEx_response},
+       { 43, "NETRDFSGETVERSION",
+          srvsvc_dissect_NETRDFSGETVERSION_request, srvsvc_dissect_NETRDFSGETVERSION_response},
+       { 44, "NETRDFSCREATELOCALPARTITION",
+          srvsvc_dissect_NETRDFSCREATELOCALPARTITION_request, srvsvc_dissect_NETRDFSCREATELOCALPARTITION_response},
+       { 45, "NETRDFSDELETELOCALPARTITION",
+          srvsvc_dissect_NETRDFSDELETELOCALPARTITION_request, srvsvc_dissect_NETRDFSDELETELOCALPARTITION_response},
+       { 46, "NETRDFSSETLOCALVOLUMESTATE",
+          srvsvc_dissect_NETRDFSSETLOCALVOLUMESTATE_request, srvsvc_dissect_NETRDFSSETLOCALVOLUMESTATE_response},
+       { 47, "NETRDFSSETSERVERINFO",
+          srvsvc_dissect_NETRDFSSETSERVERINFO_request, srvsvc_dissect_NETRDFSSETSERVERINFO_response},
+       { 48, "NETRDFSCREATEEXITPOINT",
+          srvsvc_dissect_NETRDFSCREATEEXITPOINT_request, srvsvc_dissect_NETRDFSCREATEEXITPOINT_response},
+       { 49, "NETRDFSDELETEEXITPOINT",
+          srvsvc_dissect_NETRDFSDELETEEXITPOINT_request, srvsvc_dissect_NETRDFSDELETEEXITPOINT_response},
+       { 50, "NETRDFSMODIFYPREFIX",
+          srvsvc_dissect_NETRDFSMODIFYPREFIX_request, srvsvc_dissect_NETRDFSMODIFYPREFIX_response},
+       { 51, "NETRDFSFIXLOCALVOLUME",
+          srvsvc_dissect_NETRDFSFIXLOCALVOLUME_request, srvsvc_dissect_NETRDFSFIXLOCALVOLUME_response},
+       { 52, "NETRDFSMANAGERREPORTSITEINFO",
+          srvsvc_dissect_NETRDFSMANAGERREPORTSITEINFO_request, srvsvc_dissect_NETRDFSMANAGERREPORTSITEINFO_response},
+       { 53, "NETRSERVERTRANSPORTDELEX",
+          srvsvc_dissect_NETRSERVERTRANSPORTDELEX_request, srvsvc_dissect_NETRSERVERTRANSPORTDELEX_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_srvsvc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_srvsvc_srvsvc_NetDiskInfo0_disk,
+         { "Disk", "srvsvc.srvsvc_NetDiskInfo0.disk", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_user,
+         { "User", "srvsvc.srvsvc_NetConnInfo1.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr1_count,
+         { "Count", "srvsvc.srvsvc_NetTransportCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1536,
+         { "Info1536", "srvsvc.srvsvc_NetSrvInfo.info1536", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info502,
+         { "Info502", "srvsvc.srvsvc_NetShareInfo.info502", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetFileEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_threadcountadd,
+         { "Threadcountadd", "srvsvc.srvsvc_NetSrvInfo599.threadcountadd", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_hunds,
+         { "Hunds", "srvsvc.srvsvc_NetRemoteTODInfo.hunds", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareAdd_level,
+         { "Level", "srvsvc.srvsvc_NetShareAdd.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelCommit_hnd,
+         { "Hnd", "srvsvc.srvsvc_NetShareDelCommit.hnd", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_networkerrortreshold,
+         { "Networkerrortreshold", "srvsvc.srvsvc_NetSrvInfo599.networkerrortreshold", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerTransportAddEx_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetServerTransportAddEx.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxkeepcomplsearch,
+         { "Maxkeepcomplsearch", "srvsvc.srvsvc_NetSrvInfo503.maxkeepcomplsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskEnum_maxlen,
+         { "Maxlen", "srvsvc.srvsvc_NetDiskEnum.maxlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_mins,
+         { "Mins", "srvsvc.srvsvc_NetRemoteTODInfo.mins", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_accessalert,
+         { "Accessalert", "srvsvc.srvsvc_NetSrvInfo403.accessalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo_info0,
+         { "Info0", "srvsvc.srvsvc_NetTransportInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_initsesstable,
+         { "Initsesstable", "srvsvc.srvsvc_NetSrvInfo599.initsesstable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo1_num_open,
+         { "Num Open", "srvsvc.srvsvc_NetSessInfo1.num_open", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1509_maxrawbuflen,
+         { "Maxrawbuflen", "srvsvc.srvsvc_NetSrvInfo1509.maxrawbuflen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_sesssvc,
+         { "Sesssvc", "srvsvc.srvsvc_NetSrvInfo599.sesssvc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr1007,
+         { "Ctr1007", "srvsvc.srvsvc_NetShareCtr.ctr1007", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQCtr1_count,
+         { "Count", "srvsvc.srvsvc_NetCharDevQCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareSetInfo_share_name,
+         { "Share Name", "srvsvc.srvsvc_NetShareSetInfo.share_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1501_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr1501.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetFileInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_vcs,
+         { "Vcs", "srvsvc.srvsvc_NetTransportInfo3.vcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_minfreeconnections,
+         { "Minfreeconnections", "srvsvc.srvsvc_NetSrvInfo599.minfreeconnections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPRNameCompare_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetPRNameCompare.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxfreeconnections,
+         { "Maxfreeconnections", "srvsvc.srvsvc_NetSrvInfo599.maxfreeconnections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_bytessent_low,
+         { "Bytessent Low", "srvsvc.srvsvc_Statistics.bytessent_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1529,
+         { "Info1529", "srvsvc.srvsvc_NetSrvInfo.info1529", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_alertsched,
+         { "Alertsched", "srvsvc.srvsvc_NetSrvInfo403.alertsched", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskInfo0___disk_length,
+         { "  Disk Length", "srvsvc.srvsvc_NetDiskInfo0.__disk_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_numfiletasks,
+         { "Numfiletasks", "srvsvc.srvsvc_NetSrvInfo402.numfiletasks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_diskspacetreshold,
+         { "Diskspacetreshold", "srvsvc.srvsvc_NetSrvInfo599.diskspacetreshold", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_announce,
+         { "Announce", "srvsvc.srvsvc_NetSrvInfo102.announce", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_accessalert,
+         { "Accessalert", "srvsvc.srvsvc_NetSrvInfo402.accessalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_transport,
+         { "Transport", "srvsvc.srvsvc_NetSessInfo502.transport", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr1_array,
+         { "Array", "srvsvc.srvsvc_NetTransportCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info1501,
+         { "Info1501", "srvsvc.srvsvc_NetShareInfo.info1501", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_name,
+         { "Name", "srvsvc.srvsvc_NetTransportInfo3.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetFileInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetShareInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileClose_fid,
+         { "Fid", "srvsvc.srvsvc_NetFileClose.fid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_auditedevents,
+         { "Auditedevents", "srvsvc.srvsvc_NetSrvInfo403.auditedevents", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1554_linkinfovalidtime,
+         { "Linkinfovalidtime", "srvsvc.srvsvc_NetSrvInfo1554.linkinfovalidtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_user_flags,
+         { "User Flags", "srvsvc.srvsvc_NetSessInfo2.user_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxlinkdelay,
+         { "Maxlinkdelay", "srvsvc.srvsvc_NetSrvInfo599.maxlinkdelay", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr2_count,
+         { "Count", "srvsvc.srvsvc_NetSessCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1540_enablesharednetdrives,
+         { "Enablesharednetdrives", "srvsvc.srvsvc_NetSrvInfo1540.enablesharednetdrives", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo_info3,
+         { "Info3", "srvsvc.srvsvc_NetFileInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_comment,
+         { "Comment", "srvsvc.srvsvc_NetShareInfo2.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_start,
+         { "Start", "srvsvc.srvsvc_Statistics.start", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnumAll_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetShareEnumAll.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_user,
+         { "User", "srvsvc.srvsvc_NetSessInfo502.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_numfiletasks,
+         { "Numfiletasks", "srvsvc.srvsvc_NetSrvInfo403.numfiletasks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQGetInfo_queue_name,
+         { "Queue Name", "srvsvc.srvsvc_NetCharDevQGetInfo.queue_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_sessconns,
+         { "Sessconns", "srvsvc.srvsvc_NetSrvInfo599.sessconns", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_sesssvc,
+         { "Sesssvc", "srvsvc.srvsvc_NetSrvInfo503.sesssvc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo_info1,
+         { "Info1", "srvsvc.srvsvc_NetCharDevInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetGetFileSecurity_sd_buf,
+         { "Sd Buf", "srvsvc.srvsvc_NetGetFileSecurity.sd_buf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo0_conn_id,
+         { "Conn Id", "srvsvc.srvsvc_NetConnInfo0.conn_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxmpxct,
+         { "Maxmpxct", "srvsvc.srvsvc_NetSrvInfo599.maxmpxct", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_sessconns,
+         { "Sessconns", "srvsvc.srvsvc_NetSrvInfo502.sessconns", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_unknown1,
+         { "Unknown1", "srvsvc.srvsvc_NetTransportInfo3.unknown1", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_rawworkitems,
+         { "Rawworkitems", "srvsvc.srvsvc_NetSrvInfo599.rawworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnumAll_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetShareEnumAll.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_minrcvqueue,
+         { "Minrcvqueue", "srvsvc.srvsvc_NetSrvInfo503.minrcvqueue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo_info1,
+         { "Info1", "srvsvc.srvsvc_NetTransportInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENCRYPT_DATA,
+         { "Share 1005 Encrypt Data", "srvsvc.NetShareInfo1005Flags.SHARE_1005_ENCRYPT_DATA", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_ENCRYPT_DATA_tfs), ( 0x00008000 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_threadcountadd,
+         { "Threadcountadd", "srvsvc.srvsvc_NetSrvInfo503.threadcountadd", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo3_user,
+         { "User", "srvsvc.srvsvc_NetFileInfo3.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_weekday,
+         { "Weekday", "srvsvc.srvsvc_NetRemoteTODInfo.weekday", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_addr_len,
+         { "Addr Len", "srvsvc.srvsvc_NetTransportInfo3.addr_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_bytesrcvd_low,
+         { "Bytesrcvd Low", "srvsvc.srvsvc_Statistics.bytesrcvd_low", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1549_networkerrortreshold,
+         { "Networkerrortreshold", "srvsvc.srvsvc_NetSrvInfo1549.networkerrortreshold", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_servicebitsofinterest,
+         { "Servicebitsofinterest", "srvsvc.srvsvc_NetServerSetServiceBitsEx.servicebitsofinterest", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetTransportEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1542_maxfreeconnections,
+         { "Maxfreeconnections", "srvsvc.srvsvc_NetSrvInfo1542.maxfreeconnections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enableoplockforceclose,
+         { "Enableoplockforceclose", "srvsvc.srvsvc_NetSrvInfo599.enableoplockforceclose", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvGetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetSrvGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetNameValidate_name,
+         { "Name", "srvsvc.srvsvc_NetNameValidate.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1511,
+         { "Info1511", "srvsvc.srvsvc_NetSrvInfo.info1511", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr501,
+         { "Ctr501", "srvsvc.srvsvc_NetShareCtr.ctr501", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo0_addr,
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo0.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_opensearch,
+         { "Opensearch", "srvsvc.srvsvc_NetSrvInfo599.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileCtr3_array,
+         { "Array", "srvsvc.srvsvc_NetFileCtr3.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr_ctr0,
+         { "Ctr0", "srvsvc.srvsvc_NetSessCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1552_maxlinkdelay,
+         { "Maxlinkdelay", "srvsvc.srvsvc_NetSrvInfo1552.maxlinkdelay", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxkeepcomplsearch,
+         { "Maxkeepcomplsearch", "srvsvc.srvsvc_NetSrvInfo599.maxkeepcomplsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enablefcbopens,
+         { "Enablefcbopens", "srvsvc.srvsvc_NetSrvInfo503.enablefcbopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_version_minor,
+         { "Version Minor", "srvsvc.srvsvc_NetSrvInfo102.version_minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1501,
+         { "Info1501", "srvsvc.srvsvc_NetSrvInfo.info1501", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetDiskEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1107,
+         { "Info1107", "srvsvc.srvsvc_NetSrvInfo.info1107", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1520,
+         { "Info1520", "srvsvc.srvsvc_NetSrvInfo.info1520", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_FORCE_LEVELII_OPLOCK,
+         { "Share 1005 Force Levelii Oplock", "srvsvc.NetShareInfo1005Flags.SHARE_1005_FORCE_LEVELII_OPLOCK", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_FORCE_LEVELII_OPLOCK_tfs), ( 0x00001000 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo_info0,
+         { "Info0", "srvsvc.srvsvc_NetCharDevInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1006_max_users,
+         { "Max Users", "srvsvc.srvsvc_NetShareInfo1006.max_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_openfiles,
+         { "Openfiles", "srvsvc.srvsvc_NetSrvInfo402.openfiles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_rawworkitems,
+         { "Rawworkitems", "srvsvc.srvsvc_NetSrvInfo502.rawworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_oplockbreakresponsewait,
+         { "Oplockbreakresponsewait", "srvsvc.srvsvc_NetSrvInfo599.oplockbreakresponsewait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetCharDevQEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info502,
+         { "Info502", "srvsvc.srvsvc_NetSrvInfo.info502", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_initworkitems,
+         { "Initworkitems", "srvsvc.srvsvc_NetSrvInfo503.initworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportAdd_level,
+         { "Level", "srvsvc.srvsvc_NetTransportAdd.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_timesource,
+         { "Timesource", "srvsvc.srvsvc_NetSrvInfo502.timesource", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetCharDevInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetFileEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetServiceBits_updateimmediately,
+         { "Updateimmediately", "srvsvc.srvsvc_NetSetServiceBits.updateimmediately", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1537,
+         { "Info1537", "srvsvc.srvsvc_NetSrvInfo.info1537", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1534,
+         { "Info1534", "srvsvc.srvsvc_NetSrvInfo.info1534", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1525_maxkeepcomplsearch,
+         { "Maxkeepcomplsearch", "srvsvc.srvsvc_NetSrvInfo1525.maxkeepcomplsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileCtr3_count,
+         { "Count", "srvsvc.srvsvc_NetFileCtr3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCheck_device_name,
+         { "Device Name", "srvsvc.srvsvc_NetShareCheck.device_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetFileEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1528,
+         { "Info1528", "srvsvc.srvsvc_NetSrvInfo.info1528", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_scavtimeout,
+         { "Scavtimeout", "srvsvc.srvsvc_NetSrvInfo503.scavtimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_guestaccount,
+         { "Guestaccount", "srvsvc.srvsvc_NetSrvInfo402.guestaccount", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetShareEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1538_enablefcbopens,
+         { "Enablefcbopens", "srvsvc.srvsvc_NetSrvInfo1538.enablefcbopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_alist_mtime,
+         { "Alist Mtime", "srvsvc.srvsvc_NetSrvInfo402.alist_mtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr0_count,
+         { "Count", "srvsvc.srvsvc_NetTransportCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_alertsched,
+         { "Alertsched", "srvsvc.srvsvc_NetSrvInfo402.alertsched", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1529_minrcvqueue,
+         { "Minrcvqueue", "srvsvc.srvsvc_NetSrvInfo1529.minrcvqueue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_erroralert,
+         { "Erroralert", "srvsvc.srvsvc_NetSrvInfo402.erroralert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_share,
+         { "Share", "srvsvc.srvsvc_NetConnInfo1.share", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info599,
+         { "Info599", "srvsvc.srvsvc_NetSrvInfo.info599", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxcopywritelen,
+         { "Maxcopywritelen", "srvsvc.srvsvc_NetSrvInfo503.maxcopywritelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareSetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetShareSetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_num_open,
+         { "Num Open", "srvsvc.srvsvc_NetSessInfo502.num_open", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetGetFileSecurity_share,
+         { "Share", "srvsvc.srvsvc_NetGetFileSecurity.share", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enablesharednetdrives,
+         { "Enablesharednetdrives", "srvsvc.srvsvc_NetSrvInfo503.enablesharednetdrives", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxcopyreadlen,
+         { "Maxcopyreadlen", "srvsvc.srvsvc_NetSrvInfo503.maxcopyreadlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1509,
+         { "Info1509", "srvsvc.srvsvc_NetSrvInfo.info1509", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo1_client,
+         { "Client", "srvsvc.srvsvc_NetSessInfo1.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1540,
+         { "Info1540", "srvsvc.srvsvc_NetSrvInfo.info1540", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1005_dfs_flags,
+         { "Dfs Flags", "srvsvc.srvsvc_NetShareInfo1005.dfs_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_sessusers,
+         { "Sessusers", "srvsvc.srvsvc_NetSrvInfo599.sessusers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo0_device,
+         { "Device", "srvsvc.srvsvc_NetCharDevInfo0.device", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_domain,
+         { "Domain", "srvsvc.srvsvc_NetTransportInfo3.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_chdevjobs,
+         { "Chdevjobs", "srvsvc.srvsvc_NetSrvInfo403.chdevjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_threadpriority,
+         { "Threadpriority", "srvsvc.srvsvc_NetSrvInfo599.threadpriority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevCtr1_count,
+         { "Count", "srvsvc.srvsvc_NetCharDevCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1017_announce,
+         { "Announce", "srvsvc.srvsvc_NetSrvInfo1017.announce", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxpagedmemoryusage,
+         { "Maxpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo599.maxpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_guestaccount,
+         { "Guestaccount", "srvsvc.srvsvc_NetSrvInfo403.guestaccount", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_client,
+         { "Client", "srvsvc.srvsvc_NetSessInfo502.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDel_share_name,
+         { "Share Name", "srvsvc.srvsvc_NetShareDel.share_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxmpxct,
+         { "Maxmpxct", "srvsvc.srvsvc_NetSrvInfo503.maxmpxct", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevCtr0_array,
+         { "Array", "srvsvc.srvsvc_NetCharDevCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_alerts,
+         { "Alerts", "srvsvc.srvsvc_NetSrvInfo402.alerts", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxpagedmemoryusage,
+         { "Maxpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo503.maxpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo101_comment,
+         { "Comment", "srvsvc.srvsvc_NetSrvInfo101.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1556_maxworkitemidletime,
+         { "Maxworkitemidletime", "srvsvc.srvsvc_NetSrvInfo1556.maxworkitemidletime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelStart_hnd,
+         { "Hnd", "srvsvc.srvsvc_NetShareDelStart.hnd", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info403,
+         { "Info403", "srvsvc.srvsvc_NetSrvInfo.info403", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo501_csc_policy,
+         { "Csc Policy", "srvsvc.srvsvc_NetShareInfo501.csc_policy", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo1_addr_len,
+         { "Addr Len", "srvsvc.srvsvc_NetTransportInfo1.addr_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetServiceBits_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetSetServiceBits.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_srvheuristics,
+         { "Srvheuristics", "srvsvc.srvsvc_NetSrvInfo402.srvheuristics", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_version_major,
+         { "Version Major", "srvsvc.srvsvc_NetSrvInfo102.version_major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr1004,
+         { "Ctr1004", "srvsvc.srvsvc_NetShareCtr.ctr1004", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENABLE_CA,
+         { "Share 1005 Enable Ca", "srvsvc.NetShareInfo1005Flags.SHARE_1005_ENABLE_CA", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_ENABLE_CA_tfs), ( 0x00004000 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1510,
+         { "Info1510", "srvsvc.srvsvc_NetSrvInfo.info1510", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo_info2,
+         { "Info2", "srvsvc.srvsvc_NetFileInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvGetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetSrvGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelSticky_share_name,
+         { "Share Name", "srvsvc.srvsvc_NetShareDelSticky.share_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetConnEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr501_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr501.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enableoplockforceclose,
+         { "Enableoplockforceclose", "srvsvc.srvsvc_NetSrvInfo503.enableoplockforceclose", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_vcs,
+         { "Vcs", "srvsvc.srvsvc_NetTransportInfo2.vcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_lmannounce,
+         { "Lmannounce", "srvsvc.srvsvc_NetSrvInfo502.lmannounce", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_irpstacksize,
+         { "Irpstacksize", "srvsvc.srvsvc_NetSrvInfo502.irpstacksize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1018_anndelta,
+         { "Anndelta", "srvsvc.srvsvc_NetSrvInfo1018.anndelta", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_diskalert,
+         { "Diskalert", "srvsvc.srvsvc_NetSrvInfo402.diskalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileGetInfo_fid,
+         { "Fid", "srvsvc.srvsvc_NetFileGetInfo.fid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1544_initconntable,
+         { "Initconntable", "srvsvc.srvsvc_NetSrvInfo1544.initconntable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportAdd_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetTransportAdd.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelStart_reserved,
+         { "Reserved", "srvsvc.srvsvc_NetShareDelStart.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetNameValidate_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetNameValidate.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQCtr1_array,
+         { "Array", "srvsvc.srvsvc_NetCharDevQCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo501_type,
+         { "Type", "srvsvc.srvsvc_NetShareInfo501.type", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_ShareType_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetConnEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_minfreeworkitems,
+         { "Minfreeworkitems", "srvsvc.srvsvc_NetSrvInfo599.minfreeworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_initworkitems,
+         { "Initworkitems", "srvsvc.srvsvc_NetSrvInfo502.initworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetGetFileSecurity_securityinformation,
+         { "Securityinformation", "srvsvc.srvsvc_NetGetFileSecurity.securityinformation", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_permissions,
+         { "Permissions", "srvsvc.srvsvc_NetShareInfo2.permissions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1555_scavqosinfoupdatetime,
+         { "Scavqosinfoupdatetime", "srvsvc.srvsvc_NetSrvInfo1555.scavqosinfoupdatetime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_minfreeconnections,
+         { "Minfreeconnections", "srvsvc.srvsvc_NetSrvInfo503.minfreeconnections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_elapsed,
+         { "Elapsed", "srvsvc.srvsvc_NetRemoteTODInfo.elapsed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_maxaudits,
+         { "Maxaudits", "srvsvc.srvsvc_NetSrvInfo402.maxaudits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetConnInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_timesource,
+         { "Timesource", "srvsvc.srvsvc_NetSrvInfo503.timesource", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessDel_client,
+         { "Client", "srvsvc.srvsvc_NetSessDel.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerStatisticsGet_stats,
+         { "Stats", "srvsvc.srvsvc_NetServerStatisticsGet.stats", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_chdevjobs,
+         { "Chdevjobs", "srvsvc.srvsvc_NetSrvInfo402.chdevjobs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo0_name,
+         { "Name", "srvsvc.srvsvc_NetTransportInfo0.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetSessEnum.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQSetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevQSetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1534_oplockbreakwait,
+         { "Oplockbreakwait", "srvsvc.srvsvc_NetSrvInfo1534.oplockbreakwait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info0,
+         { "Info0", "srvsvc.srvsvc_NetShareInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_secs,
+         { "Secs", "srvsvc.srvsvc_NetRemoteTODInfo.secs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1007_flags,
+         { "Flags", "srvsvc.srvsvc_NetShareInfo1007.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetTransportInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_minkeepcomplsearch,
+         { "Minkeepcomplsearch", "srvsvc.srvsvc_NetSrvInfo503.minkeepcomplsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQEnum_user,
+         { "User", "srvsvc.srvsvc_NetCharDevQEnum.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo1_priority,
+         { "Priority", "srvsvc.srvsvc_NetCharDevQInfo1.priority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetCharDevInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo0_name,
+         { "Name", "srvsvc.srvsvc_NetShareInfo0.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr2_count,
+         { "Count", "srvsvc.srvsvc_NetTransportCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTOD_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetRemoteTOD.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo0_addr_len,
+         { "Addr Len", "srvsvc.srvsvc_NetTransportInfo0.addr_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxcopyreadlen,
+         { "Maxcopyreadlen", "srvsvc.srvsvc_NetSrvInfo599.maxcopyreadlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo0_device,
+         { "Device", "srvsvc.srvsvc_NetCharDevQInfo0.device", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_sesssvc,
+         { "Sesssvc", "srvsvc.srvsvc_NetSrvInfo502.sesssvc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_unknown3,
+         { "Unknown3", "srvsvc.srvsvc_NetTransportInfo3.unknown3", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1501_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr1501.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareSetInfo_parm_error,
+         { "Parm Error", "srvsvc.srvsvc_NetShareSetInfo.parm_error", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_platform_id,
+         { "Platform Id", "srvsvc.srvsvc_NetSrvInfo102.platform_id", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_PlatformId_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr_ctr10,
+         { "Ctr10", "srvsvc.srvsvc_NetSessCtr.ctr10", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo101_version_minor,
+         { "Version Minor", "srvsvc.srvsvc_NetSrvInfo101.version_minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQSetInfo_parm_error,
+         { "Parm Error", "srvsvc.srvsvc_NetCharDevQSetInfo.parm_error", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1550_diskspacetreshold,
+         { "Diskspacetreshold", "srvsvc.srvsvc_NetSrvInfo1550.diskspacetreshold", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enableoplocks,
+         { "Enableoplocks", "srvsvc.srvsvc_NetSrvInfo599.enableoplocks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr501_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr501.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDel_reserved,
+         { "Reserved", "srvsvc.srvsvc_NetShareDel.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_acceptdownlevelapis,
+         { "Acceptdownlevelapis", "srvsvc.srvsvc_NetSrvInfo599.acceptdownlevelapis", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_security,
+         { "Security", "srvsvc.srvsvc_NetSrvInfo402.security", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_conn_id,
+         { "Conn Id", "srvsvc.srvsvc_NetConnInfo1.conn_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_user_flags,
+         { "User Flags", "srvsvc.srvsvc_NetSessInfo502.user_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1502,
+         { "Info1502", "srvsvc.srvsvc_NetSrvInfo.info1502", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1541_minfreeconnections,
+         { "Minfreeconnections", "srvsvc.srvsvc_NetSrvInfo1541.minfreeconnections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_linkinfovalidtime,
+         { "Linkinfovalidtime", "srvsvc.srvsvc_NetSrvInfo599.linkinfovalidtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_AUTO_REINT,
+         { "Share 1005 Csc Cache Auto Reint", "srvsvc.NetShareInfo1005Flags.SHARE_1005_CSC_CACHE_AUTO_REINT", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_AUTO_REINT_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_sessreqs,
+         { "Sessreqs", "srvsvc.srvsvc_NetSrvInfo403.sessreqs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareAdd_parm_error,
+         { "Parm Error", "srvsvc.srvsvc_NetShareAdd.parm_error", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info100,
+         { "Info100", "srvsvc.srvsvc_NetSrvInfo.info100", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr502_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr502.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1514_enablesoftcompat,
+         { "Enablesoftcompat", "srvsvc.srvsvc_NetSrvInfo1514.enablesoftcompat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_minlinkthroughput,
+         { "Minlinkthroughput", "srvsvc.srvsvc_NetSrvInfo599.minlinkthroughput", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_updateimmediately,
+         { "Updateimmediately", "srvsvc.srvsvc_NetServerSetServiceBitsEx.updateimmediately", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_conn_time,
+         { "Conn Time", "srvsvc.srvsvc_NetConnInfo1.conn_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1543_initsesstable,
+         { "Initsesstable", "srvsvc.srvsvc_NetSrvInfo1543.initsesstable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_xactmemsize,
+         { "Xactmemsize", "srvsvc.srvsvc_NetSrvInfo503.xactmemsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevGetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetCharDevGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_stimeouts,
+         { "Stimeouts", "srvsvc.srvsvc_Statistics.stimeouts", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_sessopen,
+         { "Sessopen", "srvsvc.srvsvc_NetSrvInfo599.sessopen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_bytessent_high,
+         { "Bytessent High", "srvsvc.srvsvc_Statistics.bytessent_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo1_domain,
+         { "Domain", "srvsvc.srvsvc_NetTransportInfo1.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1007_alternate_directory_name,
+         { "Alternate Directory Name", "srvsvc.srvsvc_NetShareInfo1007.alternate_directory_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnCtr0_count,
+         { "Count", "srvsvc.srvsvc_NetConnCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_minkeepsearch,
+         { "Minkeepsearch", "srvsvc.srvsvc_NetSrvInfo503.minkeepsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_acceptdownlevelapis,
+         { "Acceptdownlevelapis", "srvsvc.srvsvc_NetSrvInfo503.acceptdownlevelapis", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr2_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetGetFileSecurity_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetGetFileSecurity.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_maxpagedmemoryusage,
+         { "Maxpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo502.maxpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo10_client,
+         { "Client", "srvsvc.srvsvc_NetSessInfo10.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr_ctr0,
+         { "Ctr0", "srvsvc.srvsvc_NetTransportCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQPurge_queue_name,
+         { "Queue Name", "srvsvc.srvsvc_NetCharDevQPurge.queue_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_jobsqueued,
+         { "Jobsqueued", "srvsvc.srvsvc_Statistics.jobsqueued", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1550,
+         { "Info1550", "srvsvc.srvsvc_NetSrvInfo.info1550", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info1007,
+         { "Info1007", "srvsvc.srvsvc_NetShareInfo.info1007", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQGetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevQGetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1513,
+         { "Info1513", "srvsvc.srvsvc_NetSrvInfo.info1513", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetFileSecurity_file,
+         { "File", "srvsvc.srvsvc_NetSetFileSecurity.file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_activelocks,
+         { "Activelocks", "srvsvc.srvsvc_NetSrvInfo402.activelocks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_addr,
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo2.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_anndelta,
+         { "Anndelta", "srvsvc.srvsvc_NetSrvInfo102.anndelta", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileGetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetFileGetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_unknown,
+         { "Unknown", "srvsvc.srvsvc_NetTransportInfo2.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_threadpriority,
+         { "Threadpriority", "srvsvc.srvsvc_NetSrvInfo503.threadpriority", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_idle_time,
+         { "Idle Time", "srvsvc.srvsvc_NetSessInfo502.idle_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1537_enableoplockforceclose,
+         { "Enableoplockforceclose", "srvsvc.srvsvc_NetSrvInfo1537.enableoplockforceclose", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxnonpagedmemoryusage,
+         { "Maxnonpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo503.maxnonpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_opensearch,
+         { "Opensearch", "srvsvc.srvsvc_NetSrvInfo503.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enableforcedlogoff,
+         { "Enableforcedlogoff", "srvsvc.srvsvc_NetSrvInfo599.enableforcedlogoff", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvSetInfo_parm_error,
+         { "Parm Error", "srvsvc.srvsvc_NetSrvSetInfo.parm_error", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnumAll_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareEnumAll.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_glist_mtime,
+         { "Glist Mtime", "srvsvc.srvsvc_NetSrvInfo403.glist_mtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_comment,
+         { "Comment", "srvsvc.srvsvc_NetShareInfo502.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1552,
+         { "Info1552", "srvsvc.srvsvc_NetSrvInfo.info1552", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1004_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr1004.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_minkeepcomplsearch,
+         { "Minkeepcomplsearch", "srvsvc.srvsvc_NetSrvInfo599.minkeepcomplsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_conn_type,
+         { "Conn Type", "srvsvc.srvsvc_NetConnInfo1.conn_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_year,
+         { "Year", "srvsvc.srvsvc_NetRemoteTODInfo.year", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr_ctr1,
+         { "Ctr1", "srvsvc.srvsvc_NetTransportCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo2_fid,
+         { "Fid", "srvsvc.srvsvc_NetFileInfo2.fid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo1_time,
+         { "Time", "srvsvc.srvsvc_NetCharDevInfo1.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_prefix,
+         { "Prefix", "srvsvc.srvsvc_NetPathCanonicalize.prefix", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_syserrors,
+         { "Syserrors", "srvsvc.srvsvc_Statistics.syserrors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr0,
+         { "Ctr0", "srvsvc.srvsvc_NetShareCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_path,
+         { "Path", "srvsvc.srvsvc_NetPathCanonicalize.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQSetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetCharDevQSetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo1_device,
+         { "Device", "srvsvc.srvsvc_NetCharDevQInfo1.device", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetServiceBits_servicebits,
+         { "Servicebits", "srvsvc.srvsvc_NetSetServiceBits.servicebits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1522_minkeepsearch,
+         { "Minkeepsearch", "srvsvc.srvsvc_NetSrvInfo1522.minkeepsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo1_idle_time,
+         { "Idle Time", "srvsvc.srvsvc_NetSessInfo1.idle_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_pathflags,
+         { "Pathflags", "srvsvc.srvsvc_NetPathCanonicalize.pathflags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_logonalert,
+         { "Logonalert", "srvsvc.srvsvc_NetSrvInfo402.logonalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareGetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetShareGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskEnum_level,
+         { "Level", "srvsvc.srvsvc_NetDiskEnum.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_minfreeworkitems,
+         { "Minfreeworkitems", "srvsvc.srvsvc_NetSrvInfo503.minfreeworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_connections,
+         { "Connections", "srvsvc.srvsvc_NetSrvInfo402.connections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQCtr_ctr1,
+         { "Ctr1", "srvsvc.srvsvc_NetCharDevQCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxfreeconnections,
+         { "Maxfreeconnections", "srvsvc.srvsvc_NetSrvInfo503.maxfreeconnections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_lanmask,
+         { "Lanmask", "srvsvc.srvsvc_NetSrvInfo402.lanmask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetShareEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo10_idle_time,
+         { "Idle Time", "srvsvc.srvsvc_NetSessInfo10.idle_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetServiceBits_transport,
+         { "Transport", "srvsvc.srvsvc_NetSetServiceBits.transport", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_emulated_server_unc,
+         { "Emulated Server Unc", "srvsvc.srvsvc_NetServerSetServiceBitsEx.emulated_server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_tinterval,
+         { "Tinterval", "srvsvc.srvsvc_NetRemoteTODInfo.tinterval", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1536_enableoplocks,
+         { "Enableoplocks", "srvsvc.srvsvc_NetSrvInfo1536.enableoplocks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_hours,
+         { "Hours", "srvsvc.srvsvc_NetRemoteTODInfo.hours", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ENABLE_HASH,
+         { "Share 1005 Enable Hash", "srvsvc.NetShareInfo1005Flags.SHARE_1005_ENABLE_HASH", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_ENABLE_HASH_tfs), ( 0x00002000 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo1_num_ahead,
+         { "Num Ahead", "srvsvc.srvsvc_NetCharDevQInfo1.num_ahead", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_timesource,
+         { "Timesource", "srvsvc.srvsvc_NetSrvInfo599.timesource", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_domain,
+         { "Domain", "srvsvc.srvsvc_NetSrvInfo599.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_opensearch,
+         { "Opensearch", "srvsvc.srvsvc_NetSrvInfo402.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr1006,
+         { "Ctr1006", "srvsvc.srvsvc_NetShareCtr.ctr1006", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetTransportEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareAdd_info,
+         { "Info", "srvsvc.srvsvc_NetShareAdd.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr0_array,
+         { "Array", "srvsvc.srvsvc_NetTransportCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnCtr_ctr1,
+         { "Ctr1", "srvsvc.srvsvc_NetConnCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQSetInfo_queue_name,
+         { "Queue Name", "srvsvc.srvsvc_NetCharDevQSetInfo.queue_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo100_server_name,
+         { "Server Name", "srvsvc.srvsvc_NetSrvInfo100.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetShareEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1535,
+         { "Info1535", "srvsvc.srvsvc_NetSrvInfo.info1535", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo1_time,
+         { "Time", "srvsvc.srvsvc_NetSessInfo1.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetFileSecurity_sd_buf,
+         { "Sd Buf", "srvsvc.srvsvc_NetSetFileSecurity.sd_buf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1521,
+         { "Info1521", "srvsvc.srvsvc_NetSrvInfo.info1521", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareGetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetShareGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo10_time,
+         { "Time", "srvsvc.srvsvc_NetSessInfo10.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1004_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr1004.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1502_sessvcs,
+         { "Sessvcs", "srvsvc.srvsvc_NetSrvInfo1502.sessvcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_numadmin,
+         { "Numadmin", "srvsvc.srvsvc_NetSrvInfo403.numadmin", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1548_errortreshold,
+         { "Errortreshold", "srvsvc.srvsvc_NetSrvInfo1548.errortreshold", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskInfo_disks,
+         { "Disks", "srvsvc.srvsvc_NetDiskInfo.disks", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr10_array,
+         { "Array", "srvsvc.srvsvc_NetSessCtr10.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_opnum,
+         { "Operation", "srvsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnCtr1_array,
+         { "Array", "srvsvc.srvsvc_NetConnCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1006_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr1006.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCheck_type,
+         { "Type", "srvsvc.srvsvc_NetShareCheck.type", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_ShareType_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvGetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetSrvGetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr0_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_diskalert,
+         { "Diskalert", "srvsvc.srvsvc_NetSrvInfo403.diskalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_server_type,
+         { "Server Type", "srvsvc.srvsvc_NetSrvInfo102.server_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1542,
+         { "Info1542", "srvsvc.srvsvc_NetSrvInfo.info1542", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1512,
+         { "Info1512", "srvsvc.srvsvc_NetSrvInfo.info1512", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_RESTRICT_EXCLUSIVE_OPENS,
+         { "Share 1005 Restrict Exclusive Opens", "srvsvc.NetShareInfo1005Flags.SHARE_1005_RESTRICT_EXCLUSIVE_OPENS", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_RESTRICT_EXCLUSIVE_OPENS_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1503,
+         { "Info1503", "srvsvc.srvsvc_NetSrvInfo.info1503", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_client,
+         { "Client", "srvsvc.srvsvc_NetSessEnum.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportDel_info0,
+         { "Info0", "srvsvc.srvsvc_NetTransportDel.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnCtr0_array,
+         { "Array", "srvsvc.srvsvc_NetConnCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ALLOW_NAMESPACE_CACHING,
+         { "Share 1005 Allow Namespace Caching", "srvsvc.NetShareInfo1005Flags.SHARE_1005_ALLOW_NAMESPACE_CACHING", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_ALLOW_NAMESPACE_CACHING_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr502,
+         { "Ctr502", "srvsvc.srvsvc_NetShareCtr.ctr502", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_ulist_mtime,
+         { "Ulist Mtime", "srvsvc.srvsvc_NetSrvInfo403.ulist_mtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info1006,
+         { "Info1006", "srvsvc.srvsvc_NetShareInfo.info1006", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1_type,
+         { "Type", "srvsvc.srvsvc_NetShareInfo1.type", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_ShareType_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetCharDevEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_shares,
+         { "Shares", "srvsvc.srvsvc_NetSrvInfo403.shares", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1016_hidden,
+         { "Hidden", "srvsvc.srvsvc_NetSrvInfo1016.hidden", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo1_user,
+         { "User", "srvsvc.srvsvc_NetSessInfo1.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileGetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetFileGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1543,
+         { "Info1543", "srvsvc.srvsvc_NetSrvInfo.info1543", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxrawbuflen,
+         { "Maxrawbuflen", "srvsvc.srvsvc_NetSrvInfo599.maxrawbuflen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_opensearch,
+         { "Opensearch", "srvsvc.srvsvc_NetSrvInfo403.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetDiskEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskInfo0___disk_offset,
+         { "  Disk Offset", "srvsvc.srvsvc_NetDiskInfo0.__disk_offset", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetCharDevQEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_client,
+         { "Client", "srvsvc.srvsvc_NetSessInfo2.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr2_array,
+         { "Array", "srvsvc.srvsvc_NetSessCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessDel_user,
+         { "User", "srvsvc.srvsvc_NetSessDel.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr3_count,
+         { "Count", "srvsvc.srvsvc_NetTransportCtr3.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvSetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetSrvSetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_serrorout,
+         { "Serrorout", "srvsvc.srvsvc_Statistics.serrorout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1005_comment,
+         { "Comment", "srvsvc.srvsvc_NetSrvInfo1005.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_sopens,
+         { "Sopens", "srvsvc.srvsvc_Statistics.sopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1544,
+         { "Info1544", "srvsvc.srvsvc_NetSrvInfo.info1544", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1010,
+         { "Info1010", "srvsvc.srvsvc_NetSrvInfo.info1010", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1515,
+         { "Info1515", "srvsvc.srvsvc_NetSrvInfo.info1515", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_numbigbufs,
+         { "Numbigbufs", "srvsvc.srvsvc_NetSrvInfo402.numbigbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_addr,
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo3.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE,
+         { "Share 1005 Csc Cache None", "srvsvc.NetShareInfo1005Flags.SHARE_1005_CSC_CACHE_NONE", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_NONE_tfs), ( 0x00000030 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnumAll_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetShareEnumAll.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1511_sesscons,
+         { "Sesscons", "srvsvc.srvsvc_NetSrvInfo1511.sesscons", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1545_initfiletable,
+         { "Initfiletable", "srvsvc.srvsvc_NetSrvInfo1545.initfiletable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetFileSecurity_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetSetFileSecurity.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_acceptdownlevelapis,
+         { "Acceptdownlevelapis", "srvsvc.srvsvc_NetSrvInfo502.acceptdownlevelapis", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetGetFileSecurity_file,
+         { "File", "srvsvc.srvsvc_NetGetFileSecurity.file", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_ulist_mtime,
+         { "Ulist Mtime", "srvsvc.srvsvc_NetSrvInfo402.ulist_mtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1522,
+         { "Info1522", "srvsvc.srvsvc_NetSrvInfo.info1522", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevEnum_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetCharDevEnum.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo101_version_major,
+         { "Version Major", "srvsvc.srvsvc_NetSrvInfo101.version_major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetNameValidate_name_type,
+         { "Name Type", "srvsvc.srvsvc_NetNameValidate.name_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_scavqosinfoupdatetime,
+         { "Scavqosinfoupdatetime", "srvsvc.srvsvc_NetSrvInfo599.scavqosinfoupdatetime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enablesoftcompat,
+         { "Enablesoftcompat", "srvsvc.srvsvc_NetSrvInfo599.enablesoftcompat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_xactmemsize,
+         { "Xactmemsize", "srvsvc.srvsvc_NetSrvInfo599.xactmemsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareGetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareGetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPRNameCompare_name2,
+         { "Name2", "srvsvc.srvsvc_NetPRNameCompare.name2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_time,
+         { "Time", "srvsvc.srvsvc_NetSessInfo502.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxrawbuflen,
+         { "Maxrawbuflen", "srvsvc.srvsvc_NetSrvInfo503.maxrawbuflen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_oplockbreakwait,
+         { "Oplockbreakwait", "srvsvc.srvsvc_NetSrvInfo503.oplockbreakwait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelSticky_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareDelSticky.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1524,
+         { "Info1524", "srvsvc.srvsvc_NetSrvInfo.info1524", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetCharDevQInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetConnInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_maxaudits,
+         { "Maxaudits", "srvsvc.srvsvc_NetSrvInfo403.maxaudits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskEnum_info,
+         { "Info", "srvsvc.srvsvc_NetDiskEnum.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileCtr_ctr2,
+         { "Ctr2", "srvsvc.srvsvc_NetFileCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetFileSecurity_securityinformation,
+         { "Securityinformation", "srvsvc.srvsvc_NetSetFileSecurity.securityinformation", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info2,
+         { "Info2", "srvsvc.srvsvc_NetShareInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1525,
+         { "Info1525", "srvsvc.srvsvc_NetSrvInfo.info1525", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1539_enableraw,
+         { "Enableraw", "srvsvc.srvsvc_NetSrvInfo1539.enableraw", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_alist_mtime,
+         { "Alist Mtime", "srvsvc.srvsvc_NetSrvInfo403.alist_mtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1515_enableforcedlogoff,
+         { "Enableforcedlogoff", "srvsvc.srvsvc_NetSrvInfo1515.enableforcedlogoff", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevGetInfo_device_name,
+         { "Device Name", "srvsvc.srvsvc_NetCharDevGetInfo.device_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileCtr2_array,
+         { "Array", "srvsvc.srvsvc_NetFileCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1516,
+         { "Info1516", "srvsvc.srvsvc_NetSrvInfo.info1516", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_licenses,
+         { "Licenses", "srvsvc.srvsvc_NetSrvInfo102.licenses", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetConnEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnCtr_ctr0,
+         { "Ctr0", "srvsvc.srvsvc_NetConnCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo101_platform_id,
+         { "Platform Id", "srvsvc.srvsvc_NetSrvInfo101.platform_id", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_PlatformId_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_chdevs,
+         { "Chdevs", "srvsvc.srvsvc_NetSrvInfo402.chdevs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxnonpagedmemoryusage,
+         { "Maxnonpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo599.maxnonpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_domain,
+         { "Domain", "srvsvc.srvsvc_NetSrvInfo503.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_pathtype,
+         { "Pathtype", "srvsvc.srvsvc_NetPathCanonicalize.pathtype", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_sizereqbufs,
+         { "Sizereqbufs", "srvsvc.srvsvc_NetSrvInfo503.sizereqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1018,
+         { "Info1018", "srvsvc.srvsvc_NetSrvInfo.info1018", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetTransportInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo1_device,
+         { "Device", "srvsvc.srvsvc_NetCharDevInfo1.device", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_openfiles,
+         { "Openfiles", "srvsvc.srvsvc_NetSrvInfo403.openfiles", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo0_net_addr,
+         { "Net Addr", "srvsvc.srvsvc_NetTransportInfo0.net_addr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_shares,
+         { "Shares", "srvsvc.srvsvc_NetSrvInfo402.shares", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_pwerrors,
+         { "Pwerrors", "srvsvc.srvsvc_Statistics.pwerrors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1512_maxnonpagedmemoryusage,
+         { "Maxnonpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo1512.maxnonpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1533,
+         { "Info1533", "srvsvc.srvsvc_NetSrvInfo.info1533", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_maxworkitems,
+         { "Maxworkitems", "srvsvc.srvsvc_NetSrvInfo502.maxworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1549,
+         { "Info1549", "srvsvc.srvsvc_NetSrvInfo.info1549", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_numlockthreads,
+         { "Numlockthreads", "srvsvc.srvsvc_NetSrvInfo599.numlockthreads", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info101,
+         { "Info101", "srvsvc.srvsvc_NetSrvInfo.info101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCompare_pathtype,
+         { "Pathtype", "srvsvc.srvsvc_NetPathCompare.pathtype", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info1005,
+         { "Info1005", "srvsvc.srvsvc_NetShareInfo.info1005", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1007_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr1007.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1005,
+         { "Info1005", "srvsvc.srvsvc_NetSrvInfo.info1005", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathType_pathflags,
+         { "Pathflags", "srvsvc.srvsvc_NetPathType.pathflags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_oplockbreakwait,
+         { "Oplockbreakwait", "srvsvc.srvsvc_NetSrvInfo599.oplockbreakwait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevCtr1_array,
+         { "Array", "srvsvc.srvsvc_NetCharDevCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQCtr0_array,
+         { "Array", "srvsvc.srvsvc_NetCharDevQCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerTransportAddEx_info,
+         { "Info", "srvsvc.srvsvc_NetServerTransportAddEx.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevQEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileCtr2_count,
+         { "Count", "srvsvc.srvsvc_NetFileCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCompare_pathflags,
+         { "Pathflags", "srvsvc.srvsvc_NetPathCompare.pathflags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelStart_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareDelStart.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_num_open,
+         { "Num Open", "srvsvc.srvsvc_NetConnInfo1.num_open", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo501_name,
+         { "Name", "srvsvc.srvsvc_NetShareInfo501.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info501,
+         { "Info501", "srvsvc.srvsvc_NetShareInfo.info501", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCompare_path2,
+         { "Path2", "srvsvc.srvsvc_NetPathCompare.path2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareAdd_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareAdd.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_maxnonpagedmemoryusage,
+         { "Maxnonpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo502.maxnonpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_client_type,
+         { "Client Type", "srvsvc.srvsvc_NetSessInfo2.client_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1554,
+         { "Info1554", "srvsvc.srvsvc_NetSrvInfo.info1554", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxworkitemidletime,
+         { "Maxworkitemidletime", "srvsvc.srvsvc_NetSrvInfo599.maxworkitemidletime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathType_path,
+         { "Path", "srvsvc.srvsvc_NetPathType.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_users,
+         { "Users", "srvsvc.srvsvc_NetSrvInfo102.users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr_ctr2,
+         { "Ctr2", "srvsvc.srvsvc_NetTransportCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_sd_buf,
+         { "Sd Buf", "srvsvc.srvsvc_NetShareInfo502.sd_buf", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetFileEnum.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enableforcedlogoff,
+         { "Enableforcedlogoff", "srvsvc.srvsvc_NetSrvInfo503.enableforcedlogoff", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_time,
+         { "Time", "srvsvc.srvsvc_NetSessInfo2.time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPRNameCompare_name_type,
+         { "Name Type", "srvsvc.srvsvc_NetPRNameCompare.name_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_maxbuf,
+         { "Maxbuf", "srvsvc.srvsvc_NetPathCanonicalize.maxbuf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareGetInfo_share_name,
+         { "Share Name", "srvsvc.srvsvc_NetShareGetInfo.share_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPRNameCompare_name1,
+         { "Name1", "srvsvc.srvsvc_NetPRNameCompare.name1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelSticky_reserved,
+         { "Reserved", "srvsvc.srvsvc_NetShareDelSticky.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1005_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr1005.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1524_minkeepcomplsearch,
+         { "Minkeepcomplsearch", "srvsvc.srvsvc_NetSrvInfo1524.minkeepcomplsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_numlockthreads,
+         { "Numlockthreads", "srvsvc.srvsvc_NetSrvInfo503.numlockthreads", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_enableforcedlogoff,
+         { "Enableforcedlogoff", "srvsvc.srvsvc_NetSrvInfo502.enableforcedlogoff", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevCtr_ctr1,
+         { "Ctr1", "srvsvc.srvsvc_NetCharDevCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_errortreshold,
+         { "Errortreshold", "srvsvc.srvsvc_NetSrvInfo599.errortreshold", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo1_user_flags,
+         { "User Flags", "srvsvc.srvsvc_NetSessInfo1.user_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_reqbufneed,
+         { "Reqbufneed", "srvsvc.srvsvc_Statistics.reqbufneed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1004_comment,
+         { "Comment", "srvsvc.srvsvc_NetShareInfo1004.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetCharDevQInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enablesharednetdrives,
+         { "Enablesharednetdrives", "srvsvc.srvsvc_NetSrvInfo599.enablesharednetdrives", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_permissions,
+         { "Permissions", "srvsvc.srvsvc_NetShareInfo502.permissions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetFileEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo1_addr,
+         { "Addr", "srvsvc.srvsvc_NetTransportInfo1.addr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_type,
+         { "Type", "srvsvc.srvsvc_NetShareInfo502.type", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_ShareType_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCheck_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareCheck.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr0_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerTransportAddEx_level,
+         { "Level", "srvsvc.srvsvc_NetServerTransportAddEx.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevControl_opcode,
+         { "Opcode", "srvsvc.srvsvc_NetCharDevControl.opcode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnCtr1_count,
+         { "Count", "srvsvc.srvsvc_NetConnCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1516_timesource,
+         { "Timesource", "srvsvc.srvsvc_NetSrvInfo1516.timesource", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQGetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetCharDevQGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr1,
+         { "Ctr1", "srvsvc.srvsvc_NetShareCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info503,
+         { "Info503", "srvsvc.srvsvc_NetSrvInfo.info503", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_chdevqs,
+         { "Chdevqs", "srvsvc.srvsvc_NetSrvInfo402.chdevqs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_rawworkitems,
+         { "Rawworkitems", "srvsvc.srvsvc_NetSrvInfo503.rawworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1017,
+         { "Info1017", "srvsvc.srvsvc_NetSrvInfo.info1017", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_unknown2,
+         { "Unknown2", "srvsvc.srvsvc_NetTransportInfo3.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_idle_time,
+         { "Idle Time", "srvsvc.srvsvc_NetSessInfo2.idle_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_comment,
+         { "Comment", "srvsvc.srvsvc_NetSrvInfo102.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_sesssvc,
+         { "Sesssvc", "srvsvc.srvsvc_NetSrvInfo402.sesssvc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo1_status,
+         { "Status", "srvsvc.srvsvc_NetCharDevInfo1.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetSessEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQPurge_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevQPurge.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_path,
+         { "Path", "srvsvc.srvsvc_NetFileEnum.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_servicebits,
+         { "Servicebits", "srvsvc.srvsvc_NetServerSetServiceBitsEx.servicebits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr0_array,
+         { "Array", "srvsvc.srvsvc_NetSessCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCompare_path1,
+         { "Path1", "srvsvc.srvsvc_NetPathCompare.path1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetServerSetServiceBitsEx.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileGetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetFileGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQCtr_ctr0,
+         { "Ctr0", "srvsvc.srvsvc_NetCharDevQCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_connections,
+         { "Connections", "srvsvc.srvsvc_NetSrvInfo403.connections", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_sizereqbufs,
+         { "Sizereqbufs", "srvsvc.srvsvc_NetSrvInfo599.sizereqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileCtr_ctr3,
+         { "Ctr3", "srvsvc.srvsvc_NetFileCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_initfiletable,
+         { "Initfiletable", "srvsvc.srvsvc_NetSrvInfo599.initfiletable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1528_scavtimeout,
+         { "Scavtimeout", "srvsvc.srvsvc_NetSrvInfo1528.scavtimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetCharDevEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetPathCanonicalize.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_password,
+         { "Password", "srvsvc.srvsvc_NetShareInfo2.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevCtr_ctr0,
+         { "Ctr0", "srvsvc.srvsvc_NetCharDevCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileClose_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetFileClose.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_lmannounce,
+         { "Lmannounce", "srvsvc.srvsvc_NetSrvInfo503.lmannounce", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetTransportEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_VDO,
+         { "Share 1005 Csc Cache Vdo", "srvsvc.NetShareInfo1005Flags.SHARE_1005_CSC_CACHE_VDO", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_CSC_CACHE_VDO_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDelStart_share,
+         { "Share", "srvsvc.srvsvc_NetShareDelStart.share", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_num_open,
+         { "Num Open", "srvsvc.srvsvc_NetSessInfo2.num_open", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo101_server_name,
+         { "Server Name", "srvsvc.srvsvc_NetSrvInfo101.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr_ctr3,
+         { "Ctr3", "srvsvc.srvsvc_NetTransportCtr.ctr3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr2_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1518,
+         { "Info1518", "srvsvc.srvsvc_NetSrvInfo.info1518", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_netioalert,
+         { "Netioalert", "srvsvc.srvsvc_NetSrvInfo402.netioalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info1004,
+         { "Info1004", "srvsvc.srvsvc_NetShareInfo.info1004", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_numadmin,
+         { "Numadmin", "srvsvc.srvsvc_NetSrvInfo402.numadmin", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_lmannounce,
+         { "Lmannounce", "srvsvc.srvsvc_NetSrvInfo599.lmannounce", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_sizereqbufs,
+         { "Sizereqbufs", "srvsvc.srvsvc_NetSrvInfo402.sizereqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1523,
+         { "Info1523", "srvsvc.srvsvc_NetSrvInfo.info1523", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSetFileSecurity_share,
+         { "Share", "srvsvc.srvsvc_NetSetFileSecurity.share", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_maxrawbuflen,
+         { "Maxrawbuflen", "srvsvc.srvsvc_NetSrvInfo502.maxrawbuflen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1548,
+         { "Info1548", "srvsvc.srvsvc_NetSrvInfo.info1548", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTOD_info,
+         { "Info", "srvsvc.srvsvc_NetRemoteTOD.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr1_count,
+         { "Count", "srvsvc.srvsvc_NetSessCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1518_lmannounce,
+         { "Lmannounce", "srvsvc.srvsvc_NetSrvInfo1518.lmannounce", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo2_user,
+         { "User", "srvsvc.srvsvc_NetSessInfo2.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo1_vcs,
+         { "Vcs", "srvsvc.srvsvc_NetTransportInfo1.vcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_queue_name,
+         { "Queue Name", "srvsvc.srvsvc_NetCharDevQPurgeSelf.queue_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnInfo1_num_users,
+         { "Num Users", "srvsvc.srvsvc_NetConnInfo1.num_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportDel_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetTransportDel.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_sessopen,
+         { "Sessopen", "srvsvc.srvsvc_NetSrvInfo503.sessopen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevCtr0_count,
+         { "Count", "srvsvc.srvsvc_NetCharDevCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr1_array,
+         { "Array", "srvsvc.srvsvc_NetSessCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_initconntable,
+         { "Initconntable", "srvsvc.srvsvc_NetSrvInfo599.initconntable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareSetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareSetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1545,
+         { "Info1545", "srvsvc.srvsvc_NetSrvInfo.info1545", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1553,
+         { "Info1553", "srvsvc.srvsvc_NetSrvInfo.info1553", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetSessEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1514,
+         { "Info1514", "srvsvc.srvsvc_NetSrvInfo.info1514", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareSetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetShareSetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_fopens,
+         { "Fopens", "srvsvc.srvsvc_Statistics.fopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1016,
+         { "Info1016", "srvsvc.srvsvc_NetSrvInfo.info1016", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxworkitems,
+         { "Maxworkitems", "srvsvc.srvsvc_NetSrvInfo599.maxworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskInfo_count,
+         { "Count", "srvsvc.srvsvc_NetDiskInfo.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_glist_mtime,
+         { "Glist Mtime", "srvsvc.srvsvc_NetSrvInfo402.glist_mtime", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_bigbufneed,
+         { "Bigbufneed", "srvsvc.srvsvc_Statistics.bigbufneed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr2,
+         { "Ctr2", "srvsvc.srvsvc_NetShareCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1510_sessusers,
+         { "Sessusers", "srvsvc.srvsvc_NetSrvInfo1510.sessusers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_enablesoftcompat,
+         { "Enablesoftcompat", "srvsvc.srvsvc_NetSrvInfo502.enablesoftcompat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathType_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetPathType.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1513_maxpagedmemoryusage,
+         { "Maxpagedmemoryusage", "srvsvc.srvsvc_NetSrvInfo1513.maxpagedmemoryusage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerStatisticsGet_service,
+         { "Service", "srvsvc.srvsvc_NetServerStatisticsGet.service", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr3_array,
+         { "Array", "srvsvc.srvsvc_NetTransportCtr3.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo1_devices,
+         { "Devices", "srvsvc.srvsvc_NetCharDevQInfo1.devices", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo502_client_type,
+         { "Client Type", "srvsvc.srvsvc_NetSessInfo502.client_type", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_activelocks,
+         { "Activelocks", "srvsvc.srvsvc_NetSrvInfo403.activelocks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerStatisticsGet_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetServerStatisticsGet.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr_ctr502,
+         { "Ctr502", "srvsvc.srvsvc_NetSessCtr.ctr502", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_netioalert,
+         { "Netioalert", "srvsvc.srvsvc_NetSrvInfo403.netioalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1553_minlinkthroughput,
+         { "Minlinkthroughput", "srvsvc.srvsvc_NetSrvInfo1553.minlinkthroughput", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_current_users,
+         { "Current Users", "srvsvc.srvsvc_NetShareInfo2.current_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_sessusers,
+         { "Sessusers", "srvsvc.srvsvc_NetSrvInfo502.sessusers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_irpstacksize,
+         { "Irpstacksize", "srvsvc.srvsvc_NetSrvInfo599.irpstacksize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQSetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetCharDevQSetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_sizereqbufs,
+         { "Sizereqbufs", "srvsvc.srvsvc_NetSrvInfo403.sizereqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1530_minfreeworkitems,
+         { "Minfreeworkitems", "srvsvc.srvsvc_NetSrvInfo1530.minfreeworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_max_users,
+         { "Max Users", "srvsvc.srvsvc_NetShareInfo2.max_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_domain,
+         { "Domain", "srvsvc.srvsvc_NetTransportInfo2.domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_type,
+         { "Type", "srvsvc.srvsvc_NetShareInfo2.type", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_ShareType_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_minrcvqueue,
+         { "Minrcvqueue", "srvsvc.srvsvc_NetSrvInfo599.minrcvqueue", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr0_count,
+         { "Count", "srvsvc.srvsvc_NetSessCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevControl_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevControl.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_name,
+         { "Name", "srvsvc.srvsvc_NetShareInfo2.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_maxcopywritelen,
+         { "Maxcopywritelen", "srvsvc.srvsvc_NetSrvInfo599.maxcopywritelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevGetInfo_info,
+         { "Info", "srvsvc.srvsvc_NetCharDevGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_sizereqbufs,
+         { "Sizereqbufs", "srvsvc.srvsvc_NetSrvInfo502.sizereqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevInfo1_user,
+         { "User", "srvsvc.srvsvc_NetCharDevInfo1.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_security,
+         { "Security", "srvsvc.srvsvc_NetSrvInfo403.security", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevGetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevGetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessDel_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetSessDel.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1547_alertsched,
+         { "Alertsched", "srvsvc.srvsvc_NetSrvInfo1547.alertsched", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1546,
+         { "Info1546", "srvsvc.srvsvc_NetSrvInfo.info1546", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQGetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetCharDevQGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_avresponse,
+         { "Avresponse", "srvsvc.srvsvc_Statistics.avresponse", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareDel_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetShareDel.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_addr_len,
+         { "Addr Len", "srvsvc.srvsvc_NetTransportInfo2.addr_len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_alerts,
+         { "Alerts", "srvsvc.srvsvc_NetSrvInfo403.alerts", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevControl_device_name,
+         { "Device Name", "srvsvc.srvsvc_NetCharDevControl.device_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_sessopen,
+         { "Sessopen", "srvsvc.srvsvc_NetSrvInfo502.sessopen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enableraw,
+         { "Enableraw", "srvsvc.srvsvc_NetSrvInfo599.enableraw", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1523_maxkeepsearch,
+         { "Maxkeepsearch", "srvsvc.srvsvc_NetSrvInfo1523.maxkeepsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_sessopen,
+         { "Sessopen", "srvsvc.srvsvc_NetSrvInfo403.sessopen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1107_users,
+         { "Users", "srvsvc.srvsvc_NetSrvInfo1107.users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_scavtimeout,
+         { "Scavtimeout", "srvsvc.srvsvc_NetSrvInfo599.scavtimeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1520_maxcopyreadlen,
+         { "Maxcopyreadlen", "srvsvc.srvsvc_NetSrvInfo1520.maxcopyreadlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1506,
+         { "Info1506", "srvsvc.srvsvc_NetSrvInfo.info1506", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo0_client,
+         { "Client", "srvsvc.srvsvc_NetSessInfo0.client", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_initsearchtable,
+         { "Initsearchtable", "srvsvc.srvsvc_NetSrvInfo599.initsearchtable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxworkitems,
+         { "Maxworkitems", "srvsvc.srvsvc_NetSrvInfo503.maxworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_reserved,
+         { "Reserved", "srvsvc.srvsvc_NetSrvInfo599.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvSetInfo_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetSrvSetInfo.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileEnum_user,
+         { "User", "srvsvc.srvsvc_NetFileEnum.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_permerrors,
+         { "Permerrors", "srvsvc.srvsvc_Statistics.permerrors", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_path,
+         { "Path", "srvsvc.srvsvc_NetShareInfo502.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo3_fid,
+         { "Fid", "srvsvc.srvsvc_NetFileInfo3.fid", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1538,
+         { "Info1538", "srvsvc.srvsvc_NetSrvInfo.info1538", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportAdd_info,
+         { "Info", "srvsvc.srvsvc_NetTransportAdd.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetDiskEnum_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetDiskEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo0_vcs,
+         { "Vcs", "srvsvc.srvsvc_NetTransportInfo0.vcs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo3_path,
+         { "Path", "srvsvc.srvsvc_NetFileInfo3.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1_name,
+         { "Name", "srvsvc.srvsvc_NetShareInfo1.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnum_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetShareEnum.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr10_count,
+         { "Count", "srvsvc.srvsvc_NetSessCtr10.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr1005,
+         { "Ctr1005", "srvsvc.srvsvc_NetShareCtr.ctr1005", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportDel_level,
+         { "Level", "srvsvc.srvsvc_NetTransportDel.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_sessconns,
+         { "Sessconns", "srvsvc.srvsvc_NetSrvInfo503.sessconns", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_initworkitems,
+         { "Initworkitems", "srvsvc.srvsvc_NetSrvInfo599.initworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_password,
+         { "Password", "srvsvc.srvsvc_NetShareInfo502.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1521_maxcopywritelen,
+         { "Maxcopywritelen", "srvsvc.srvsvc_NetSrvInfo1521.maxcopywritelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_minkeepsearch,
+         { "Minkeepsearch", "srvsvc.srvsvc_NetSrvInfo599.minkeepsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_srvheuristics,
+         { "Srvheuristics", "srvsvc.srvsvc_NetSrvInfo403.srvheuristics", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo_info2,
+         { "Info2", "srvsvc.srvsvc_NetTransportInfo.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_lanmask,
+         { "Lanmask", "srvsvc.srvsvc_NetSrvInfo403.lanmask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1541,
+         { "Info1541", "srvsvc.srvsvc_NetSrvInfo.info1541", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr_ctr2,
+         { "Ctr2", "srvsvc.srvsvc_NetSessCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo1_comment,
+         { "Comment", "srvsvc.srvsvc_NetShareInfo1.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr502_count,
+         { "Count", "srvsvc.srvsvc_NetSessCtr502.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1506_maxworkitems,
+         { "Maxworkitems", "srvsvc.srvsvc_NetSrvInfo1506.maxworkitems", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_current_users,
+         { "Current Users", "srvsvc.srvsvc_NetShareInfo502.current_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetShareInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo_info1,
+         { "Info1", "srvsvc.srvsvc_NetCharDevQInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetSessEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_chdevs,
+         { "Chdevs", "srvsvc.srvsvc_NetSrvInfo403.chdevs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetCharDevEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info402,
+         { "Info402", "srvsvc.srvsvc_NetSrvInfo.info402", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnEnum_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetConnEnum.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_name,
+         { "Name", "srvsvc.srvsvc_NetTransportInfo2.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM,
+         { "Share 1005 Access Based Directory Enum", "srvsvc.NetShareInfo1005Flags.SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_ACCESS_BASED_DIRECTORY_ENUM_tfs), ( 0x00000800 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enablesoftcompat,
+         { "Enablesoftcompat", "srvsvc.srvsvc_NetSrvInfo503.enablesoftcompat", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo_info3,
+         { "Info3", "srvsvc.srvsvc_NetTransportInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_month,
+         { "Month", "srvsvc.srvsvc_NetRemoteTODInfo.month", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1501_sessopens,
+         { "Sessopens", "srvsvc.srvsvc_NetSrvInfo1501.sessopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_werror,
+         { "Windows Error", "srvsvc.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_day,
+         { "Day", "srvsvc.srvsvc_NetRemoteTODInfo.day", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetNameValidate_flags,
+         { "Flags", "srvsvc.srvsvc_NetNameValidate.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo3_permissions,
+         { "Permissions", "srvsvc.srvsvc_NetFileInfo3.permissions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_sessusers,
+         { "Sessusers", "srvsvc.srvsvc_NetSrvInfo503.sessusers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetConnEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enableoplocks,
+         { "Enableoplocks", "srvsvc.srvsvc_NetSrvInfo503.enableoplocks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo100_platform_id,
+         { "Platform Id", "srvsvc.srvsvc_NetSrvInfo100.platform_id", FT_UINT32, BASE_DEC, VALS(srvsvc_srvsvc_PlatformId_vals), 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr502_array,
+         { "Array", "srvsvc.srvsvc_NetSessCtr502.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_msecs,
+         { "Msecs", "srvsvc.srvsvc_NetRemoteTODInfo.msecs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_irpstacksize,
+         { "Irpstacksize", "srvsvc.srvsvc_NetSrvInfo503.irpstacksize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_enableraw,
+         { "Enableraw", "srvsvc.srvsvc_NetSrvInfo503.enableraw", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerStatisticsGet_level,
+         { "Level", "srvsvc.srvsvc_NetServerStatisticsGet.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfoCtr_level,
+         { "Level", "srvsvc.srvsvc_NetSessInfoCtr.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfoCtr_ctr,
+         { "Ctr", "srvsvc.srvsvc_NetSessInfoCtr.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_sesssvc,
+         { "Sesssvc", "srvsvc.srvsvc_NetSrvInfo403.sesssvc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerStatisticsGet_options,
+         { "Options", "srvsvc.srvsvc_NetServerStatisticsGet.options", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_bytesrcvd_high,
+         { "Bytesrcvd High", "srvsvc.srvsvc_Statistics.bytesrcvd_high", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info102,
+         { "Info102", "srvsvc.srvsvc_NetSrvInfo.info102", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_numbigbufs,
+         { "Numbigbufs", "srvsvc.srvsvc_NetSrvInfo403.numbigbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCanonicalize_can_path,
+         { "Can Path", "srvsvc.srvsvc_NetPathCanonicalize.can_path", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo_info1,
+         { "Info1", "srvsvc.srvsvc_NetShareInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportEnum_totalentries,
+         { "Totalentries", "srvsvc.srvsvc_NetTransportEnum.totalentries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1007_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr1007.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareEnumAll_resume_handle,
+         { "Resume Handle", "srvsvc.srvsvc_NetShareEnumAll.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPRNameCompare_flags,
+         { "Flags", "srvsvc.srvsvc_NetPRNameCompare.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathType_pathtype,
+         { "Pathtype", "srvsvc.srvsvc_NetPathType.pathtype", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1533_maxmpxct,
+         { "Maxmpxct", "srvsvc.srvsvc_NetSrvInfo1533.maxmpxct", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_Statistics_devopens,
+         { "Devopens", "srvsvc.srvsvc_Statistics.devopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1556,
+         { "Info1556", "srvsvc.srvsvc_NetSrvInfo.info1556", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQEnum_max_buffer,
+         { "Max Buffer", "srvsvc.srvsvc_NetCharDevQEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetConnEnum_path,
+         { "Path", "srvsvc.srvsvc_NetConnEnum.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_sessopen,
+         { "Sessopen", "srvsvc.srvsvc_NetSrvInfo402.sessopen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_disc,
+         { "Disc", "srvsvc.srvsvc_NetSrvInfo102.disc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetFileInfo3_num_locks,
+         { "Num Locks", "srvsvc.srvsvc_NetFileInfo3.num_locks", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo3_net_addr,
+         { "Net Addr", "srvsvc.srvsvc_NetTransportInfo3.net_addr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvSetInfo_level,
+         { "Level", "srvsvc.srvsvc_NetSrvSetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1006_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr1006.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_sessreqs,
+         { "Sessreqs", "srvsvc.srvsvc_NetSrvInfo402.sessreqs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_autopath,
+         { "Autopath", "srvsvc.srvsvc_NetSrvInfo403.autopath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_server_name,
+         { "Server Name", "srvsvc.srvsvc_NetSrvInfo102.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1546_initsearchtable,
+         { "Initsearchtable", "srvsvc.srvsvc_NetSrvInfo1546.initsearchtable", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr1005_count,
+         { "Count", "srvsvc.srvsvc_NetShareCtr1005.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo2_path,
+         { "Path", "srvsvc.srvsvc_NetShareInfo2.path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetSessEnum.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_chdevqs,
+         { "Chdevqs", "srvsvc.srvsvc_NetSrvInfo403.chdevqs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_FORCE_SHARED_DELETE,
+         { "Share 1005 Force Shared Delete", "srvsvc.NetShareInfo1005Flags.SHARE_1005_FORCE_SHARED_DELETE", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_FORCE_SHARED_DELETE_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo2_net_addr,
+         { "Net Addr", "srvsvc.srvsvc_NetTransportInfo2.net_addr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetServerSetServiceBitsEx_transport,
+         { "Transport", "srvsvc.srvsvc_NetServerSetServiceBitsEx.transport", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_logonalert,
+         { "Logonalert", "srvsvc.srvsvc_NetSrvInfo403.logonalert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_auditprofile,
+         { "Auditprofile", "srvsvc.srvsvc_NetSrvInfo403.auditprofile", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_enablefcbopens,
+         { "Enablefcbopens", "srvsvc.srvsvc_NetSrvInfo599.enablefcbopens", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessEnum_user,
+         { "User", "srvsvc.srvsvc_NetSessEnum.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetRemoteTODInfo_timezone,
+         { "Timezone", "srvsvc.srvsvc_NetRemoteTODInfo.timezone", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_oplockbreakresponsewait,
+         { "Oplockbreakresponsewait", "srvsvc.srvsvc_NetSrvInfo503.oplockbreakresponsewait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo1_net_addr,
+         { "Net Addr", "srvsvc.srvsvc_NetTransportInfo1.net_addr", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQGetInfo_user,
+         { "User", "srvsvc.srvsvc_NetCharDevQGetInfo.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo503_maxkeepsearch,
+         { "Maxkeepsearch", "srvsvc.srvsvc_NetSrvInfo503.maxkeepsearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQCtr0_count,
+         { "Count", "srvsvc.srvsvc_NetCharDevQCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1503_opensearch,
+         { "Opensearch", "srvsvc.srvsvc_NetSrvInfo1503.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_userpath,
+         { "Userpath", "srvsvc.srvsvc_NetSrvInfo102.userpath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1555,
+         { "Info1555", "srvsvc.srvsvc_NetSrvInfo.info1555", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessInfo10_user,
+         { "User", "srvsvc.srvsvc_NetSessInfo10.user", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo599_alertsched,
+         { "Alertsched", "srvsvc.srvsvc_NetSrvInfo599.alertsched", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetPathCompare_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetPathCompare.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1547,
+         { "Info1547", "srvsvc.srvsvc_NetSrvInfo.info1547", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQEnum_info_ctr,
+         { "Info Ctr", "srvsvc.srvsvc_NetCharDevQEnum.info_ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportInfo1_name,
+         { "Name", "srvsvc.srvsvc_NetTransportInfo1.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_max_users,
+         { "Max Users", "srvsvc.srvsvc_NetShareInfo502.max_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo502_opensearch,
+         { "Opensearch", "srvsvc.srvsvc_NetSrvInfo502.opensearch", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo_info0,
+         { "Info0", "srvsvc.srvsvc_NetCharDevQInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo402_numreqbufs,
+         { "Numreqbufs", "srvsvc.srvsvc_NetSrvInfo402.numreqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_DFS_ROOT,
+         { "Share 1005 Dfs Root", "srvsvc.NetShareInfo1005Flags.SHARE_1005_DFS_ROOT", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_DFS_ROOT_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_srvsvc_NetShareInfo1005Flags_SHARE_1005_IN_DFS,
+         { "Share 1005 In Dfs", "srvsvc.NetShareInfo1005Flags.SHARE_1005_IN_DFS", FT_BOOLEAN, 32, TFS(&NetShareInfo1005Flags_SHARE_1005_IN_DFS_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo102_hidden,
+         { "Hidden", "srvsvc.srvsvc_NetSrvInfo102.hidden", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr_ctr1501,
+         { "Ctr1501", "srvsvc.srvsvc_NetShareCtr.ctr1501", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1539,
+         { "Info1539", "srvsvc.srvsvc_NetSrvInfo.info1539", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo501_comment,
+         { "Comment", "srvsvc.srvsvc_NetShareInfo501.comment", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportEnum_transports,
+         { "Transports", "srvsvc.srvsvc_NetTransportEnum.transports", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetTransportCtr2_array,
+         { "Array", "srvsvc.srvsvc_NetTransportCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareInfo502_name,
+         { "Name", "srvsvc.srvsvc_NetShareInfo502.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1535_oplockbreakresponsewait,
+         { "Oplockbreakresponsewait", "srvsvc.srvsvc_NetSrvInfo1535.oplockbreakresponsewait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQInfo1_users,
+         { "Users", "srvsvc.srvsvc_NetCharDevQInfo1.users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSessCtr_ctr1,
+         { "Ctr1", "srvsvc.srvsvc_NetSessCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_erroralert,
+         { "Erroralert", "srvsvc.srvsvc_NetSrvInfo403.erroralert", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_server_unc,
+         { "Server Unc", "srvsvc.srvsvc_NetCharDevQPurgeSelf.server_unc", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo1010_disc,
+         { "Disc", "srvsvc.srvsvc_NetSrvInfo1010.disc", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetCharDevQPurgeSelf_computer_name,
+         { "Computer Name", "srvsvc.srvsvc_NetCharDevQPurgeSelf.computer_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo101_server_type,
+         { "Server Type", "srvsvc.srvsvc_NetSrvInfo101.server_type", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetShareCtr502_array,
+         { "Array", "srvsvc.srvsvc_NetShareCtr502.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo403_numreqbufs,
+         { "Numreqbufs", "srvsvc.srvsvc_NetSrvInfo403.numreqbufs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_srvsvc_srvsvc_NetSrvInfo_info1530,
+         { "Info1530", "srvsvc.srvsvc_NetSrvInfo.info1530", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_srvsvc,
+               &ett_srvsvc_svcctl_ServerType,
+               &ett_srvsvc_security_secinfo,
+               &ett_srvsvc_srvsvc_NetCharDevInfo0,
+               &ett_srvsvc_srvsvc_NetCharDevCtr0,
+               &ett_srvsvc_srvsvc_NetCharDevInfo1,
+               &ett_srvsvc_srvsvc_NetCharDevCtr1,
+               &ett_srvsvc_srvsvc_NetCharDevInfo,
+               &ett_srvsvc_srvsvc_NetCharDevCtr,
+               &ett_srvsvc_srvsvc_NetCharDevInfoCtr,
+               &ett_srvsvc_srvsvc_NetCharDevQInfo0,
+               &ett_srvsvc_srvsvc_NetCharDevQCtr0,
+               &ett_srvsvc_srvsvc_NetCharDevQInfo1,
+               &ett_srvsvc_srvsvc_NetCharDevQCtr1,
+               &ett_srvsvc_srvsvc_NetCharDevQInfo,
+               &ett_srvsvc_srvsvc_NetCharDevQCtr,
+               &ett_srvsvc_srvsvc_NetCharDevQInfoCtr,
+               &ett_srvsvc_srvsvc_NetConnInfo0,
+               &ett_srvsvc_srvsvc_NetConnCtr0,
+               &ett_srvsvc_srvsvc_NetConnInfo1,
+               &ett_srvsvc_srvsvc_NetConnCtr1,
+               &ett_srvsvc_srvsvc_NetConnCtr,
+               &ett_srvsvc_srvsvc_NetConnInfoCtr,
+               &ett_srvsvc_srvsvc_NetFileInfo2,
+               &ett_srvsvc_srvsvc_NetFileCtr2,
+               &ett_srvsvc_srvsvc_NetFileInfo3,
+               &ett_srvsvc_srvsvc_NetFileCtr3,
+               &ett_srvsvc_srvsvc_NetFileInfo,
+               &ett_srvsvc_srvsvc_NetFileCtr,
+               &ett_srvsvc_srvsvc_NetFileInfoCtr,
+               &ett_srvsvc_srvsvc_NetSessInfo0,
+               &ett_srvsvc_srvsvc_NetSessCtr0,
+               &ett_srvsvc_srvsvc_NetSessInfo1,
+               &ett_srvsvc_srvsvc_NetSessCtr1,
+               &ett_srvsvc_srvsvc_NetSessInfo2,
+               &ett_srvsvc_srvsvc_NetSessCtr2,
+               &ett_srvsvc_srvsvc_NetSessInfo10,
+               &ett_srvsvc_srvsvc_NetSessCtr10,
+               &ett_srvsvc_srvsvc_NetSessInfo502,
+               &ett_srvsvc_srvsvc_NetSessCtr502,
+               &ett_srvsvc_srvsvc_NetSessCtr,
+               &ett_srvsvc_srvsvc_NetSessInfoCtr,
+               &ett_srvsvc_srvsvc_NetShareInfo0,
+               &ett_srvsvc_srvsvc_NetShareCtr0,
+               &ett_srvsvc_srvsvc_NetShareInfo1,
+               &ett_srvsvc_srvsvc_NetShareCtr1,
+               &ett_srvsvc_srvsvc_NetShareInfo2,
+               &ett_srvsvc_srvsvc_NetShareCtr2,
+               &ett_srvsvc_srvsvc_NetShareInfo501,
+               &ett_srvsvc_srvsvc_NetShareCtr501,
+               &ett_srvsvc_srvsvc_NetShareInfo502,
+               &ett_srvsvc_srvsvc_NetShareCtr502,
+               &ett_srvsvc_srvsvc_NetShareInfo1004,
+               &ett_srvsvc_srvsvc_NetShareCtr1004,
+               &ett_srvsvc_NetShareInfo1005Flags,
+               &ett_srvsvc_srvsvc_NetShareInfo1005,
+               &ett_srvsvc_srvsvc_NetShareCtr1005,
+               &ett_srvsvc_srvsvc_NetShareInfo1006,
+               &ett_srvsvc_srvsvc_NetShareCtr1006,
+               &ett_srvsvc_srvsvc_NetShareInfo1007,
+               &ett_srvsvc_srvsvc_NetShareCtr1007,
+               &ett_srvsvc_srvsvc_NetShareCtr1501,
+               &ett_srvsvc_srvsvc_NetShareInfo,
+               &ett_srvsvc_srvsvc_NetShareCtr,
+               &ett_srvsvc_srvsvc_NetShareInfoCtr,
+               &ett_srvsvc_srvsvc_NetSrvInfo100,
+               &ett_srvsvc_srvsvc_NetSrvInfo101,
+               &ett_srvsvc_srvsvc_NetSrvInfo102,
+               &ett_srvsvc_srvsvc_NetSrvInfo402,
+               &ett_srvsvc_srvsvc_NetSrvInfo403,
+               &ett_srvsvc_srvsvc_NetSrvInfo502,
+               &ett_srvsvc_srvsvc_NetSrvInfo503,
+               &ett_srvsvc_srvsvc_NetSrvInfo599,
+               &ett_srvsvc_srvsvc_NetSrvInfo1005,
+               &ett_srvsvc_srvsvc_NetSrvInfo1010,
+               &ett_srvsvc_srvsvc_NetSrvInfo1016,
+               &ett_srvsvc_srvsvc_NetSrvInfo1017,
+               &ett_srvsvc_srvsvc_NetSrvInfo1018,
+               &ett_srvsvc_srvsvc_NetSrvInfo1107,
+               &ett_srvsvc_srvsvc_NetSrvInfo1501,
+               &ett_srvsvc_srvsvc_NetSrvInfo1502,
+               &ett_srvsvc_srvsvc_NetSrvInfo1503,
+               &ett_srvsvc_srvsvc_NetSrvInfo1506,
+               &ett_srvsvc_srvsvc_NetSrvInfo1509,
+               &ett_srvsvc_srvsvc_NetSrvInfo1510,
+               &ett_srvsvc_srvsvc_NetSrvInfo1511,
+               &ett_srvsvc_srvsvc_NetSrvInfo1512,
+               &ett_srvsvc_srvsvc_NetSrvInfo1513,
+               &ett_srvsvc_srvsvc_NetSrvInfo1514,
+               &ett_srvsvc_srvsvc_NetSrvInfo1515,
+               &ett_srvsvc_srvsvc_NetSrvInfo1516,
+               &ett_srvsvc_srvsvc_NetSrvInfo1518,
+               &ett_srvsvc_srvsvc_NetSrvInfo1520,
+               &ett_srvsvc_srvsvc_NetSrvInfo1521,
+               &ett_srvsvc_srvsvc_NetSrvInfo1522,
+               &ett_srvsvc_srvsvc_NetSrvInfo1523,
+               &ett_srvsvc_srvsvc_NetSrvInfo1524,
+               &ett_srvsvc_srvsvc_NetSrvInfo1525,
+               &ett_srvsvc_srvsvc_NetSrvInfo1528,
+               &ett_srvsvc_srvsvc_NetSrvInfo1529,
+               &ett_srvsvc_srvsvc_NetSrvInfo1530,
+               &ett_srvsvc_srvsvc_NetSrvInfo1533,
+               &ett_srvsvc_srvsvc_NetSrvInfo1534,
+               &ett_srvsvc_srvsvc_NetSrvInfo1535,
+               &ett_srvsvc_srvsvc_NetSrvInfo1536,
+               &ett_srvsvc_srvsvc_NetSrvInfo1537,
+               &ett_srvsvc_srvsvc_NetSrvInfo1538,
+               &ett_srvsvc_srvsvc_NetSrvInfo1539,
+               &ett_srvsvc_srvsvc_NetSrvInfo1540,
+               &ett_srvsvc_srvsvc_NetSrvInfo1541,
+               &ett_srvsvc_srvsvc_NetSrvInfo1542,
+               &ett_srvsvc_srvsvc_NetSrvInfo1543,
+               &ett_srvsvc_srvsvc_NetSrvInfo1544,
+               &ett_srvsvc_srvsvc_NetSrvInfo1545,
+               &ett_srvsvc_srvsvc_NetSrvInfo1546,
+               &ett_srvsvc_srvsvc_NetSrvInfo1547,
+               &ett_srvsvc_srvsvc_NetSrvInfo1548,
+               &ett_srvsvc_srvsvc_NetSrvInfo1549,
+               &ett_srvsvc_srvsvc_NetSrvInfo1550,
+               &ett_srvsvc_srvsvc_NetSrvInfo1552,
+               &ett_srvsvc_srvsvc_NetSrvInfo1553,
+               &ett_srvsvc_srvsvc_NetSrvInfo1554,
+               &ett_srvsvc_srvsvc_NetSrvInfo1555,
+               &ett_srvsvc_srvsvc_NetSrvInfo1556,
+               &ett_srvsvc_srvsvc_NetSrvInfo,
+               &ett_srvsvc_srvsvc_NetDiskInfo0,
+               &ett_srvsvc_srvsvc_NetDiskInfo,
+               &ett_srvsvc_srvsvc_Statistics,
+               &ett_srvsvc_srvsvc_NetTransportInfo0,
+               &ett_srvsvc_srvsvc_NetTransportCtr0,
+               &ett_srvsvc_srvsvc_NetTransportInfo1,
+               &ett_srvsvc_srvsvc_NetTransportCtr1,
+               &ett_srvsvc_srvsvc_NetTransportInfo2,
+               &ett_srvsvc_srvsvc_NetTransportCtr2,
+               &ett_srvsvc_srvsvc_NetTransportInfo3,
+               &ett_srvsvc_srvsvc_NetTransportCtr3,
+               &ett_srvsvc_srvsvc_NetTransportCtr,
+               &ett_srvsvc_srvsvc_NetTransportInfoCtr,
+               &ett_srvsvc_srvsvc_NetRemoteTODInfo,
+               &ett_srvsvc_srvsvc_NetTransportInfo,
+       };
+
+       proto_dcerpc_srvsvc = proto_register_protocol("Server Service", "SRVSVC", "srvsvc");
+       proto_register_field_array(proto_dcerpc_srvsvc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_srvsvc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_srvsvc, ett_dcerpc_srvsvc,
+               &uuid_dcerpc_srvsvc, ver_dcerpc_srvsvc,
+               srvsvc_dissectors, hf_srvsvc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-srvsvc.h
new file mode 100644 (file)
index 0000000..f42125d
--- /dev/null
@@ -0,0 +1,180 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/srvsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/srvsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-svcctl.h"
+
+#ifndef __PACKET_DCERPC_SRVSVC_H
+#define __PACKET_DCERPC_SRVSVC_H
+
+#define STYPE_TEMPORARY        ( 0x40000000 )
+
+#define STYPE_HIDDEN   ( 0x80000000 )
+
+#define SHARE_1005_CSC_CACHE_MANUAL_REINT      ( 0x00000000 )
+
+#define SHARE_1005_CSC_POLICY_MASK     ( 0x00000030 )
+
+#define SHARE_1005_CSC_POLICY_SHIFT    ( 4 )
+
+int srvsvc_dissect_bitmap_svcctl_ServerType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevQInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevQCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevQInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevQCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetCharDevQInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetConnInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetConnCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetConnInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetConnCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetConnInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetFileInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetFileCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetFileInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetFileCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetFileInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessInfo10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessCtr10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessCtr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSessInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define STYPE_DISKTREE (0)
+#define STYPE_DISKTREE_TEMPORARY (STYPE_DISKTREE|STYPE_TEMPORARY)
+#define STYPE_DISKTREE_HIDDEN (STYPE_DISKTREE|STYPE_HIDDEN)
+#define STYPE_PRINTQ (1)
+#define STYPE_PRINTQ_TEMPORARY (STYPE_PRINTQ|STYPE_TEMPORARY)
+#define STYPE_PRINTQ_HIDDEN (STYPE_PRINTQ|STYPE_HIDDEN)
+#define STYPE_DEVICE (2)
+#define STYPE_DEVICE_TEMPORARY (STYPE_DEVICE|STYPE_TEMPORARY)
+#define STYPE_DEVICE_HIDDEN (STYPE_DEVICE|STYPE_HIDDEN)
+#define STYPE_IPC (3)
+#define STYPE_IPC_TEMPORARY (STYPE_IPC|STYPE_TEMPORARY)
+#define STYPE_IPC_HIDDEN (STYPE_IPC|STYPE_HIDDEN)
+extern const value_string srvsvc_srvsvc_ShareType_vals[];
+int srvsvc_dissect_enum_ShareType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int srvsvc_dissect_struct_NetShareInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr1004(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_bitmap_NetShareInfo1005Flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr1006(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfo1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr1007(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareCtr1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetShareInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define PLATFORM_ID_DOS (300)
+#define PLATFORM_ID_OS2 (400)
+#define PLATFORM_ID_NT (500)
+#define PLATFORM_ID_OSF (600)
+#define PLATFORM_ID_VMS (700)
+extern const value_string srvsvc_srvsvc_PlatformId_vals[];
+int srvsvc_dissect_enum_PlatformId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int srvsvc_dissect_struct_NetSrvInfo100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo402(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo403(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo599(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1005(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1016(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1017(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1107(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1501(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1503(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1506(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1509(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1510(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1511(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1512(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1513(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1514(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1515(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1516(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1518(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1520(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1521(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1522(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1523(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1524(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1525(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1528(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1529(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1530(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1533(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1534(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1535(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1536(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1537(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1538(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1539(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1540(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1541(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1542(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1543(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1544(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1545(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1546(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1547(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1548(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1549(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1550(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1552(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1553(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1554(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1555(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetSrvInfo1556(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetDiskInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetDiskInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_Statistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportCtr3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetTransportInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int srvsvc_dissect_struct_NetRemoteTODInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_SRVSVC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.c b/bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.c
new file mode 100644 (file)
index 0000000..67db47c
--- /dev/null
@@ -0,0 +1,7514 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/svcctl.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/svcctl.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-svcctl.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_svcctl = -1;
+static gint ett_svcctl_SERVICE_LOCK_STATUS = -1;
+static gint ett_svcctl_svcctl_ControlsAccepted = -1;
+static gint ett_svcctl_SERVICE_STATUS = -1;
+static gint ett_svcctl_SERVICE_STATUS_PROCESS = -1;
+static gint ett_svcctl_ENUM_SERVICE_STATUSW = -1;
+static gint ett_svcctl_ENUM_SERVICE_STATUSA = -1;
+static gint ett_svcctl_svcctl_MgrAccessMask = -1;
+static gint ett_svcctl_svcctl_ServiceAccessMask = -1;
+static gint ett_svcctl_QUERY_SERVICE_CONFIG = -1;
+static gint ett_svcctl_svcctl_ArgumentString = -1;
+static gint ett_svcctl_SERVICE_DESCRIPTION = -1;
+static gint ett_svcctl_SC_ACTION = -1;
+static gint ett_svcctl_SERVICE_FAILURE_ACTIONS = -1;
+
+
+/* Header field declarations */
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_bits = -1;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_handle = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_DisplayName = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_needed = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSW_display_name = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_state = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_type = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_type = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_key_name = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_NETBINDCHANGE = -1;
+static gint hf_svcctl_EnumServicesStatusExA_offered = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_service_name = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_offered = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_handle = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_handle = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_services_returned = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_needed = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_type = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_service_start_name = -1;
+static gint hf_svcctl_EnumServicesStatusExW_info_level = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_tag_id = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_binary_path = -1;
+static gint hf_svcctl_svcctl_StartServiceA_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_service = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_error_control = -1;
+static gint hf_svcctl_SERVICE_FAILURE_ACTIONS_rebootmsg = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_error_control = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_buffer = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_state = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_type = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_tag_id = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_error_control = -1;
+static gint hf_svcctl_svcctl_StartServiceW_NumArgs = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_password = -1;
+static gint hf_svcctl_werror = -1;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_needed = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2A_handle = -1;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_service_flags = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_offered = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_service_name = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_offered = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerW_access_mask = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_needed = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_needed = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSA_service_name = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length = -1;
+static gint hf_svcctl_svcctl_StartServiceA_NumArgs = -1;
+static gint hf_svcctl_EnumServicesStatusExW_service_returned = -1;
+static gint hf_svcctl_EnumServicesStatusExA_info_level = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_offered = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_resume_handle = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_service_status = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_desired_access = -1;
+static gint hf_svcctl_svcctl_ControlService_handle = -1;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatus_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2W_info_level = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_handle = -1;
+static gint hf_svcctl_svcctl_StartServiceW_handle = -1;
+static gint hf_svcctl_SERVICE_FAILURE_ACTIONS_num_actions = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_query = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_handle = -1;
+static gint hf_svcctl_svcctl_DeleteService_handle = -1;
+static gint hf_svcctl_EnumServicesStatusExA_type = -1;
+static gint hf_svcctl_svcctl_ControlService_control = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_offered = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_display_name = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_offered = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_binary_path = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_immediate = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_handle = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_start_type = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_info_level = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_type = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_DisplayName = -1;
+static gint hf_svcctl_EnumServicesStatusExW_type = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_service_name = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_handle = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_services_returned = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_password_size = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2A_info = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_handle = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerA_MachineName = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_service_type = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_STOP = -1;
+static gint hf_svcctl_SERVICE_FAILURE_ACTIONS_command = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE = -1;
+static gint hf_svcctl_SERVICE_STATUS_type = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_handle = -1;
+static gint hf_svcctl_svcctl_OpenServiceA_access_mask = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_service = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_handle = -1;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_offered = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_needed = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_dependencies = -1;
+static gint hf_svcctl_SERVICE_STATUS_win32_exit_code = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_query = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_HARDWAREPROFILECHANGE = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_needed = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_password = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_needed = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_handle = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerA_DatabaseName = -1;
+static gint hf_svcctl_svcctl_LockServiceDatabase_lock = -1;
+static gint hf_svcctl_SERVICE_STATUS_wait_hint = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG = -1;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_buffer = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_start_type = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_SHUTDOWN = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_POWEREVENT = -1;
+static gint hf_svcctl_SERVICE_FAILURE_ACTIONS_actions = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_start_type = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_display_name = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_error_control = -1;
+static gint hf_svcctl_svcctl_OpenServiceW_ServiceName = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_binary_path = -1;
+static gint hf_svcctl_EnumServicesStatusExW_state = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_service_status = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_ServiceName = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_state = -1;
+static gint hf_svcctl_opnum = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_executablepath = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_start_type = -1;
+static gint hf_svcctl_svcctl_OpenServiceW_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_tag_id = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_display_name = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_LoadOrderGroupKey = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusW_service = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_service_start_name = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_resume_handle = -1;
+static gint hf_svcctl_svcctl_OpenServiceA_ServiceName = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_display_name = -1;
+static gint hf_svcctl_svcctl_OpenServiceW_scmanager_handle = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_key_name = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_offered = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerW_handle = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_bitson = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_handle = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_handle = -1;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_handle = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_scmanager_handle = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_handle = -1;
+static gint hf_svcctl_SC_ACTION_delay = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2W_handle = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_TagId = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_desired_access = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_binary_path = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_buffer = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigW_offered = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_dependencies = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_services_returned = -1;
+static gint hf_svcctl_SERVICE_LOCK_STATUS_is_locked = -1;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_offered = -1;
+static gint hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_handle = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_needed = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameA_service_name = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_info_level = -1;
+static gint hf_svcctl_EnumServicesStatusExA_state = -1;
+static gint hf_svcctl_SERVICE_DESCRIPTION_description = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSA_status = -1;
+static gint hf_svcctl_SERVICE_STATUS_state = -1;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE = -1;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatus_service_status = -1;
+static gint hf_svcctl_svcctl_OpenServiceA_scmanager_handle = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_dependencies = -1;
+static gint hf_svcctl_EnumServicesStatusExA_needed = -1;
+static gint hf_svcctl_EnumServicesStatusExA_resume_handle = -1;
+static gint hf_svcctl_EnumServicesStatusExA_group_name = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerW_DatabaseName = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_buffer = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_dependencies_size = -1;
+static gint hf_svcctl_svcctl_GetServiceDisplayNameW_handle = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_needed = -1;
+static gint hf_svcctl_EnumServicesStatusExW_group_name = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_displayname = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2W_needed = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_TagId = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2W_info = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSA_display_name = -1;
+static gint hf_svcctl_svcctl_UnlockServiceDatabase_lock = -1;
+static gint hf_svcctl_svcctl_CreateServiceW_error_control = -1;
+static gint hf_svcctl_SC_ACTION_type = -1;
+static gint hf_svcctl_svcctl_CloseServiceHandle_handle = -1;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_PARAMCHANGE = -1;
+static gint hf_svcctl_svcctl_QueryServiceStatusEx_offered = -1;
+static gint hf_svcctl_EnumServicesStatusExW_needed = -1;
+static gint hf_svcctl_EnumServicesStatusExW_scmanager = -1;
+static gint hf_svcctl_EnumServicesStatusExW_services = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerW_MachineName = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_services_returned = -1;
+static gint hf_svcctl_EnumServicesStatusExA_services = -1;
+static gint hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfigA_offered = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_bits = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusW_needed = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START = -1;
+static gint hf_svcctl_svcctl_ArgumentString_string = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesA_state = -1;
+static gint hf_svcctl_SERVICE_LOCK_STATUS_lock_owner = -1;
+static gint hf_svcctl_svcctl_OpenServiceW_access_mask = -1;
+static gint hf_svcctl_svcctl_CreateServiceA_ServiceName = -1;
+static gint hf_svcctl_EnumServicesStatusExA_service_returned = -1;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_password = -1;
+static gint hf_svcctl_SERVICE_LOCK_STATUS_lock_duration = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_dependencies = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status = -1;
+static gint hf_svcctl_svcctl_ControlService_service_status = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_start_type = -1;
+static gint hf_svcctl_svcctl_StartServiceA_Arguments = -1;
+static gint hf_svcctl_svcctl_QueryServiceConfig2A_info_level = -1;
+static gint hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP = -1;
+static gint hf_svcctl_svcctl_QueryServiceLockStatusA_offered = -1;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_status = -1;
+static gint hf_svcctl_SERVICE_STATUS_check_point = -1;
+static gint hf_svcctl_QUERY_SERVICE_CONFIG_startname = -1;
+static gint hf_svcctl_SERVICE_STATUS_controls_accepted = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_handle = -1;
+static gint hf_svcctl_SERVICE_FAILURE_ACTIONS_reset_period = -1;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT = -1;
+static gint hf_svcctl_EnumServicesStatusExW_resume_handle = -1;
+static gint hf_svcctl_SERVICE_STATUS_service_exit_code = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSW_service_name = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsW_bitson = -1;
+static gint hf_svcctl_ENUM_SERVICE_STATUSW_status = -1;
+static gint hf_svcctl_svcctl_SCSetServiceBitsA_immediate = -1;
+static gint hf_svcctl_svcctl_GetServiceKeyNameW_display_name_length = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigA_dependencies = -1;
+static gint hf_svcctl_EnumServicesStatusExA_scmanager = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerA_access_mask = -1;
+static gint hf_svcctl_EnumServicesStatusExW_offered = -1;
+static gint hf_svcctl_svcctl_EnumDependentServicesW_service = -1;
+static gint hf_svcctl_svcctl_OpenSCManagerA_handle = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfig2A_info_level = -1;
+static gint hf_svcctl_SERVICE_STATUS_PROCESS_process_id = -1;
+static gint hf_svcctl_svcctl_StartServiceW_Arguments = -1;
+static gint hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_PAUSE_CONTINUE = -1;
+static gint hf_svcctl_svcctl_LockServiceDatabase_handle = -1;
+static gint hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS = -1;
+static gint hf_svcctl_svcctl_ChangeServiceConfigW_password = -1;
+static gint hf_svcctl_svcctl_EnumServicesStatusA_type = -1;
+
+static gint proto_dcerpc_svcctl = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_svcctl = {
+       0x367abb81, 0x9844, 0x35f1,
+       { 0xad, 0x32, 0x98, 0xf0, 0x38, 0x00, 0x10, 0x03 }
+};
+static guint16 ver_dcerpc_svcctl = 2;
+
+static int svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string svcctl_svcctl_ServiceStatus_vals[] = {
+       { SVCCTL_STATE_UNKNOWN, "SVCCTL_STATE_UNKNOWN" },
+       { SVCCTL_STOPPED, "SVCCTL_STOPPED" },
+       { SVCCTL_START_PENDING, "SVCCTL_START_PENDING" },
+       { SVCCTL_STOP_PENDING, "SVCCTL_STOP_PENDING" },
+       { SVCCTL_RUNNING, "SVCCTL_RUNNING" },
+       { SVCCTL_CONTINUE_PENDING, "SVCCTL_CONTINUE_PENDING" },
+       { SVCCTL_PAUSE_PENDING, "SVCCTL_PAUSE_PENDING" },
+       { SVCCTL_PAUSED, "SVCCTL_PAUSED" },
+{ 0, NULL }
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_STOP_tfs = {
+   "SVCCTL_ACCEPT_STOP is SET",
+   "SVCCTL_ACCEPT_STOP is NOT SET",
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_PAUSE_CONTINUE_tfs = {
+   "SVCCTL_ACCEPT_PAUSE_CONTINUE is SET",
+   "SVCCTL_ACCEPT_PAUSE_CONTINUE is NOT SET",
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_SHUTDOWN_tfs = {
+   "SVCCTL_ACCEPT_SHUTDOWN is SET",
+   "SVCCTL_ACCEPT_SHUTDOWN is NOT SET",
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_PARAMCHANGE_tfs = {
+   "SVCCTL_ACCEPT_PARAMCHANGE is SET",
+   "SVCCTL_ACCEPT_PARAMCHANGE is NOT SET",
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_NETBINDCHANGE_tfs = {
+   "SVCCTL_ACCEPT_NETBINDCHANGE is SET",
+   "SVCCTL_ACCEPT_NETBINDCHANGE is NOT SET",
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_HARDWAREPROFILECHANGE_tfs = {
+   "SVCCTL_ACCEPT_HARDWAREPROFILECHANGE is SET",
+   "SVCCTL_ACCEPT_HARDWAREPROFILECHANGE is NOT SET",
+};
+static const true_false_string svcctl_ControlsAccepted_SVCCTL_ACCEPT_POWEREVENT_tfs = {
+   "SVCCTL_ACCEPT_POWEREVENT is SET",
+   "SVCCTL_ACCEPT_POWEREVENT is NOT SET",
+};
+static int svcctl_dissect_element_SERVICE_STATUS_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_check_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string svcctl_SERVICE_CONTROL_vals[] = {
+       { SVCCTL_CONTROL_STOP, "SVCCTL_CONTROL_STOP" },
+       { SVCCTL_CONTROL_PAUSE, "SVCCTL_CONTROL_PAUSE" },
+       { SVCCTL_CONTROL_CONTINUE, "SVCCTL_CONTROL_CONTINUE" },
+       { SVCCTL_CONTROL_INTERROGATE, "SVCCTL_CONTROL_INTERROGATE" },
+       { SVCCTL_CONTROL_SHUTDOWN, "SVCCTL_CONTROL_SHUTDOWN" },
+{ 0, NULL }
+};
+const value_string svcctl_svcctl_ErrorControl_vals[] = {
+       { SVCCTL_SVC_ERROR_IGNORE, "SVCCTL_SVC_ERROR_IGNORE" },
+       { SVCCTL_SVC_ERROR_NORMAL, "SVCCTL_SVC_ERROR_NORMAL" },
+       { SVCCTL_SVC_ERROR_CRITICAL, "SVCCTL_SVC_ERROR_CRITICAL" },
+       { SVCCTL_SVC_ERROR_SEVERE, "SVCCTL_SVC_ERROR_SEVERE" },
+{ 0, NULL }
+};
+const value_string svcctl_svcctl_StartType_vals[] = {
+       { SVCCTL_BOOT_START, "SVCCTL_BOOT_START" },
+       { SVCCTL_SYSTEM_START, "SVCCTL_SYSTEM_START" },
+       { SVCCTL_AUTO_START, "SVCCTL_AUTO_START" },
+       { SVCCTL_DEMAND_START, "SVCCTL_DEMAND_START" },
+       { SVCCTL_DISABLED, "SVCCTL_DISABLED" },
+{ 0, NULL }
+};
+const value_string svcctl_svcctl_ServiceState_vals[] = {
+       { SERVICE_STATE_ACTIVE, "SERVICE_STATE_ACTIVE" },
+       { SERVICE_STATE_INACTIVE, "SERVICE_STATE_INACTIVE" },
+       { SERVICE_STATE_ALL, "SERVICE_STATE_ALL" },
+{ 0, NULL }
+};
+static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT_tfs = {
+   "SC_RIGHT_MGR_CONNECT is SET",
+   "SC_RIGHT_MGR_CONNECT is NOT SET",
+};
+static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE_tfs = {
+   "SC_RIGHT_MGR_CREATE_SERVICE is SET",
+   "SC_RIGHT_MGR_CREATE_SERVICE is NOT SET",
+};
+static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE_tfs = {
+   "SC_RIGHT_MGR_ENUMERATE_SERVICE is SET",
+   "SC_RIGHT_MGR_ENUMERATE_SERVICE is NOT SET",
+};
+static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK_tfs = {
+   "SC_RIGHT_MGR_LOCK is SET",
+   "SC_RIGHT_MGR_LOCK is NOT SET",
+};
+static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS_tfs = {
+   "SC_RIGHT_MGR_QUERY_LOCK_STATUS is SET",
+   "SC_RIGHT_MGR_QUERY_LOCK_STATUS is NOT SET",
+};
+static const true_false_string svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG_tfs = {
+   "SC_RIGHT_MGR_MODIFY_BOOT_CONFIG is SET",
+   "SC_RIGHT_MGR_MODIFY_BOOT_CONFIG is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG_tfs = {
+   "SC_RIGHT_SVC_QUERY_CONFIG is SET",
+   "SC_RIGHT_SVC_QUERY_CONFIG is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG_tfs = {
+   "SC_RIGHT_SVC_CHANGE_CONFIG is SET",
+   "SC_RIGHT_SVC_CHANGE_CONFIG is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS_tfs = {
+   "SC_RIGHT_SVC_QUERY_STATUS is SET",
+   "SC_RIGHT_SVC_QUERY_STATUS is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS_tfs = {
+   "SC_RIGHT_SVC_ENUMERATE_DEPENDENTS is SET",
+   "SC_RIGHT_SVC_ENUMERATE_DEPENDENTS is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_START_tfs = {
+   "SC_RIGHT_SVC_START is SET",
+   "SC_RIGHT_SVC_START is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP_tfs = {
+   "SC_RIGHT_SVC_STOP is SET",
+   "SC_RIGHT_SVC_STOP is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE_tfs = {
+   "SC_RIGHT_SVC_PAUSE_CONTINUE is SET",
+   "SC_RIGHT_SVC_PAUSE_CONTINUE is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE_tfs = {
+   "SC_RIGHT_SVC_INTERROGATE is SET",
+   "SC_RIGHT_SVC_INTERROGATE is NOT SET",
+};
+static const true_false_string svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL_tfs = {
+   "SC_RIGHT_SVC_USER_DEFINED_CONTROL is SET",
+   "SC_RIGHT_SVC_USER_DEFINED_CONTROL is NOT SET",
+};
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ArgumentString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ArgumentString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string svcctl_svcctl_ConfigLevel_vals[] = {
+       { SERVICE_CONFIG_DESCRIPTION, "SERVICE_CONFIG_DESCRIPTION" },
+       { SERVICE_CONFIG_FAILURE_ACTIONS, "SERVICE_CONFIG_FAILURE_ACTIONS" },
+{ 0, NULL }
+};
+static int svcctl_dissect_element_SERVICE_DESCRIPTION_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_DESCRIPTION_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string svcctl_SC_ACTION_TYPE_vals[] = {
+       { SC_ACTION_NONE, "SC_ACTION_NONE" },
+       { SC_ACTION_RESTART, "SC_ACTION_RESTART" },
+       { SC_ACTION_REBOOT, "SC_ACTION_REBOOT" },
+       { SC_ACTION_RUN_COMMAND, "SC_ACTION_RUN_COMMAND" },
+{ 0, NULL }
+};
+static int svcctl_dissect_element_SC_ACTION_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SC_ACTION_delay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_reset_period(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_rebootmsg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_rebootmsg_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_num_actions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+const value_string svcctl_svcctl_StatusLevel_vals[] = {
+       { SVC_STATUS_PROCESS_INFO, "SVC_STATUS_PROCESS_INFO" },
+{ 0, NULL }
+};
+static int svcctl_dissect_element_CloseServiceHandle_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CloseServiceHandle_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ControlService_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ControlService_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ControlService_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ControlService_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ControlService_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_DeleteService_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_DeleteService_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_LockServiceDatabase_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_LockServiceDatabase_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_LockServiceDatabase_lock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_LockServiceDatabase_lock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceObjectSecurity_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatus_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatus_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatus_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatus_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_UnlockServiceDatabase_lock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_UnlockServiceDatabase_lock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsW_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsW_bitson(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsW_immediate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_scmanager_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_scmanager_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_TagId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_TagId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesW_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_service__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusW_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceW_scmanager_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceW_scmanager_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceW_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceW_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceW_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceW_Arguments__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_key_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_key_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameW_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsA_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsA_bitson(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_SCSetServiceBitsA_immediate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfigA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_ServiceName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_TagId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_TagId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_CreateServiceA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumDependentServicesA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenSCManagerA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceA_scmanager_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceA_scmanager_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceA_ServiceName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_OpenServiceA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfigA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceLockStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceA_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceA_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_StartServiceA_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_key_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_key_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_GetServiceKeyNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2A_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2A_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2W_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_ChangeServiceConfig2W_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2A_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_scmanager(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_scmanager_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExA_group_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_scmanager_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int svcctl_dissect_element_EnumServicesStatusExW_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        uint32 is_locked; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *lock_owner; */
+/* IDL:        uint32 lock_duration; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_LOCK_STATUS_is_locked, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_, NDR_POINTER_UNIQUE, "Pointer to Lock Owner (uint16)",hf_svcctl_SERVICE_LOCK_STATUS_lock_owner);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_SERVICE_LOCK_STATUS_lock_owner, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_LOCK_STATUS_lock_duration, 0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_LOCK_STATUS);
+       }
+       
+       offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_is_locked(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_owner(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_LOCK_STATUS_lock_duration(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SVCCTL_STATE_UNKNOWN=0x00000000, */
+/* IDL:        SVCCTL_STOPPED=0x00000001, */
+/* IDL:        SVCCTL_START_PENDING=0x00000002, */
+/* IDL:        SVCCTL_STOP_PENDING=0x00000003, */
+/* IDL:        SVCCTL_RUNNING=0x00000004, */
+/* IDL:        SVCCTL_CONTINUE_PENDING=0x00000005, */
+/* IDL:        SVCCTL_PAUSE_PENDING=0x00000006, */
+/* IDL:        SVCCTL_PAUSED=0x00000007, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_ServiceStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SVCCTL_ACCEPT_STOP =  0x00000001 , */
+/* IDL:        SVCCTL_ACCEPT_PAUSE_CONTINUE =  0x00000002 , */
+/* IDL:        SVCCTL_ACCEPT_SHUTDOWN =  0x00000004 , */
+/* IDL:        SVCCTL_ACCEPT_PARAMCHANGE =  0x00000008 , */
+/* IDL:        SVCCTL_ACCEPT_NETBINDCHANGE =  0x00000010 , */
+/* IDL:        SVCCTL_ACCEPT_HARDWAREPROFILECHANGE =  0x00000020 , */
+/* IDL:        SVCCTL_ACCEPT_POWEREVENT =  0x00000040 , */
+/* IDL: } */
+
+int
+svcctl_dissect_bitmap_ControlsAccepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_svcctl_svcctl_ControlsAccepted);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_STOP, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_STOP");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_PAUSE_CONTINUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_PAUSE_CONTINUE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_SHUTDOWN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_SHUTDOWN");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_PARAMCHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_PARAMCHANGE");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_NETBINDCHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_NETBINDCHANGE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_HARDWAREPROFILECHANGE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_HARDWAREPROFILECHANGE");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_POWEREVENT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "SVCCTL_ACCEPT_POWEREVENT");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 type; */
+/* IDL:        svcctl_ServiceStatus state; */
+/* IDL:        svcctl_ControlsAccepted controls_accepted; */
+/* IDL:        WERROR win32_exit_code; */
+/* IDL:        uint32 service_exit_code; */
+/* IDL:        uint32 check_point; */
+/* IDL:        uint32 wait_hint; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceStatus(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_bitmap_ControlsAccepted(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_controls_accepted, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_win32_exit_code, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_service_exit_code, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_check_point(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_check_point, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_wait_hint, 0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_SERVICE_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_STATUS);
+       }
+       
+       offset = svcctl_dissect_element_SERVICE_STATUS_type(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_state(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_controls_accepted(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_win32_exit_code(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_service_exit_code(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_check_point(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_wait_hint(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        SERVICE_STATUS status; */
+/* IDL:        uint32 process_id; */
+/* IDL:        uint32 service_flags; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_PROCESS_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_SERVICE_STATUS_PROCESS_status,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_PROCESS_process_id, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_STATUS_PROCESS_service_flags, 0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_SERVICE_STATUS_PROCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_STATUS_PROCESS);
+       }
+       
+       offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_status(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_process_id(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_STATUS_PROCESS_service_flags(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *service_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *display_name; */
+/* IDL:        SERVICE_STATUS status; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_, , "Pointer to Service Name (string)",hf_svcctl_ENUM_SERVICE_STATUSW_service_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSW_service_name , 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_, , "Pointer to Display Name (string)",hf_svcctl_ENUM_SERVICE_STATUSW_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSW_display_name , 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_ENUM_SERVICE_STATUSW_status,0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSW);
+       }
+       
+       offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_service_name(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_display_name(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_ENUM_SERVICE_STATUSW_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string *service_name; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string *display_name; */
+/* IDL:        SERVICE_STATUS status; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_, , "Pointer to Service Name (string)",hf_svcctl_ENUM_SERVICE_STATUSA_service_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSA_service_name , 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_, , "Pointer to Display Name (string)",hf_svcctl_ENUM_SERVICE_STATUSA_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_svcctl_ENUM_SERVICE_STATUSA_display_name , 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_ENUM_SERVICE_STATUSA_status,0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_ENUM_SERVICE_STATUSA);
+       }
+       
+       offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_service_name(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_display_name(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_ENUM_SERVICE_STATUSA_status(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SVCCTL_CONTROL_STOP=0x00000001, */
+/* IDL:        SVCCTL_CONTROL_PAUSE=0x00000002, */
+/* IDL:        SVCCTL_CONTROL_CONTINUE=0x00000003, */
+/* IDL:        SVCCTL_CONTROL_INTERROGATE=0x00000004, */
+/* IDL:        SVCCTL_CONTROL_SHUTDOWN=0x00000005, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_SERVICE_CONTROL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SVCCTL_SVC_ERROR_IGNORE=0x00000000, */
+/* IDL:        SVCCTL_SVC_ERROR_NORMAL=0x00000001, */
+/* IDL:        SVCCTL_SVC_ERROR_CRITICAL=0x00000002, */
+/* IDL:        SVCCTL_SVC_ERROR_SEVERE=0x00000003, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_ErrorControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SVCCTL_BOOT_START=0x00000000, */
+/* IDL:        SVCCTL_SYSTEM_START=0x00000001, */
+/* IDL:        SVCCTL_AUTO_START=0x00000002, */
+/* IDL:        SVCCTL_DEMAND_START=0x00000003, */
+/* IDL:        SVCCTL_DISABLED=0x00000004, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_StartType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SERVICE_STATE_ACTIVE=0x00000001, */
+/* IDL:        SERVICE_STATE_INACTIVE=0x00000002, */
+/* IDL:        SERVICE_STATE_ALL=(SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE), */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_ServiceState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SC_RIGHT_MGR_CONNECT =  0x0001 , */
+/* IDL:        SC_RIGHT_MGR_CREATE_SERVICE =  0x0002 , */
+/* IDL:        SC_RIGHT_MGR_ENUMERATE_SERVICE =  0x0004 , */
+/* IDL:        SC_RIGHT_MGR_LOCK =  0x0008 , */
+/* IDL:        SC_RIGHT_MGR_QUERY_LOCK_STATUS =  0x0010 , */
+/* IDL:        SC_RIGHT_MGR_MODIFY_BOOT_CONFIG =  0x0020 , */
+/* IDL: } */
+
+int
+svcctl_dissect_bitmap_MgrAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_svcctl_svcctl_MgrAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT, tvb, offset-4, 4, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "SC_RIGHT_MGR_CONNECT");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "SC_RIGHT_MGR_CREATE_SERVICE");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "SC_RIGHT_MGR_ENUMERATE_SERVICE");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK, tvb, offset-4, 4, flags);
+       if (flags&( 0x0008 )){
+               proto_item_append_text(item, "SC_RIGHT_MGR_LOCK");
+               if (flags & (~( 0x0008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0008 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS, tvb, offset-4, 4, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "SC_RIGHT_MGR_QUERY_LOCK_STATUS");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG, tvb, offset-4, 4, flags);
+       if (flags&( 0x0020 )){
+               proto_item_append_text(item, "SC_RIGHT_MGR_MODIFY_BOOT_CONFIG");
+               if (flags & (~( 0x0020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        SC_RIGHT_SVC_QUERY_CONFIG =  0x0001 , */
+/* IDL:        SC_RIGHT_SVC_CHANGE_CONFIG =  0x0002 , */
+/* IDL:        SC_RIGHT_SVC_QUERY_STATUS =  0x0004 , */
+/* IDL:        SC_RIGHT_SVC_ENUMERATE_DEPENDENTS =  0x0008 , */
+/* IDL:        SC_RIGHT_SVC_START =  0x0010 , */
+/* IDL:        SC_RIGHT_SVC_STOP =  0x0020 , */
+/* IDL:        SC_RIGHT_SVC_PAUSE_CONTINUE =  0x0040 , */
+/* IDL:        SC_RIGHT_SVC_INTERROGATE =  0x0080 , */
+/* IDL:        SC_RIGHT_SVC_USER_DEFINED_CONTROL =  0x0100 , */
+/* IDL: } */
+
+int
+svcctl_dissect_bitmap_ServiceAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_svcctl_svcctl_ServiceAccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG, tvb, offset-4, 4, flags);
+       if (flags&( 0x0001 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_QUERY_CONFIG");
+               if (flags & (~( 0x0001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0001 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG, tvb, offset-4, 4, flags);
+       if (flags&( 0x0002 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_CHANGE_CONFIG");
+               if (flags & (~( 0x0002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0002 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS, tvb, offset-4, 4, flags);
+       if (flags&( 0x0004 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_QUERY_STATUS");
+               if (flags & (~( 0x0004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0004 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS, tvb, offset-4, 4, flags);
+       if (flags&( 0x0008 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_ENUMERATE_DEPENDENTS");
+               if (flags & (~( 0x0008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0008 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START, tvb, offset-4, 4, flags);
+       if (flags&( 0x0010 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_START");
+               if (flags & (~( 0x0010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0010 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP, tvb, offset-4, 4, flags);
+       if (flags&( 0x0020 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_STOP");
+               if (flags & (~( 0x0020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0020 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0040 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_PAUSE_CONTINUE");
+               if (flags & (~( 0x0040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0040 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x0080 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_INTERROGATE");
+               if (flags & (~( 0x0080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0080 ));
+
+       proto_tree_add_boolean(tree, hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL, tvb, offset-4, 4, flags);
+       if (flags&( 0x0100 )){
+               proto_item_append_text(item, "SC_RIGHT_SVC_USER_DEFINED_CONTROL");
+               if (flags & (~( 0x0100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x0100 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 service_type; */
+/* IDL:        svcctl_StartType start_type; */
+/* IDL:        svcctl_ErrorControl error_control; */
+/* IDL:        [unique(1)] [range(0,8192)] [charset(UTF16)] uint16 *executablepath; */
+/* IDL:        [unique(1)] [range(0,8192)] [charset(UTF16)] uint16 *loadordergroup; */
+/* IDL:        uint32 tag_id; */
+/* IDL:        [unique(1)] [range(0,8192)] [charset(UTF16)] uint16 *dependencies; */
+/* IDL:        [unique(1)] [range(0,8192)] [charset(UTF16)] uint16 *startname; */
+/* IDL:        [unique(1)] [range(0,8192)] [charset(UTF16)] uint16 *displayname; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_QUERY_SERVICE_CONFIG_service_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, drep, hf_svcctl_QUERY_SERVICE_CONFIG_start_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, drep, hf_svcctl_QUERY_SERVICE_CONFIG_error_control, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_, NDR_POINTER_UNIQUE, "Pointer to Executablepath (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_executablepath);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_QUERY_SERVICE_CONFIG_executablepath, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_, NDR_POINTER_UNIQUE, "Pointer to Loadordergroup (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_QUERY_SERVICE_CONFIG_tag_id, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_dependencies);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_QUERY_SERVICE_CONFIG_dependencies, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_, NDR_POINTER_UNIQUE, "Pointer to Startname (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_startname);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_QUERY_SERVICE_CONFIG_startname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_, NDR_POINTER_UNIQUE, "Pointer to Displayname (uint16)",hf_svcctl_QUERY_SERVICE_CONFIG_displayname);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_QUERY_SERVICE_CONFIG_displayname, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_QUERY_SERVICE_CONFIG);
+       }
+       
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_service_type(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_start_type(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_error_control(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_executablepath(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_loadordergroup(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_tag_id(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_dependencies(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_startname(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_QUERY_SERVICE_CONFIG_displayname(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [range(0,SC_MAX_ARGUMENT_LENGTH)] [charset(UTF16)] uint16 *string; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_ArgumentString_string(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ArgumentString_string_, NDR_POINTER_UNIQUE, "Pointer to String (uint16)",hf_svcctl_svcctl_ArgumentString_string);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ArgumentString_string_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ArgumentString_string, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_ArgumentString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_svcctl_ArgumentString);
+       }
+       
+       offset = svcctl_dissect_element_ArgumentString_string(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SERVICE_CONFIG_DESCRIPTION=0x00000001, */
+/* IDL:        SERVICE_CONFIG_FAILURE_ACTIONS=0x00000002, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_ConfigLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *description; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_SERVICE_DESCRIPTION_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SERVICE_DESCRIPTION_description_, , "Pointer to Description (string)",hf_svcctl_SERVICE_DESCRIPTION_description);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_DESCRIPTION_description_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_DESCRIPTION_description , 0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_SERVICE_DESCRIPTION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_DESCRIPTION);
+       }
+       
+       offset = svcctl_dissect_element_SERVICE_DESCRIPTION_description(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SC_ACTION_NONE=0, */
+/* IDL:        SC_ACTION_RESTART=1, */
+/* IDL:        SC_ACTION_REBOOT=2, */
+/* IDL:        SC_ACTION_RUN_COMMAND=3, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_SC_ACTION_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        SC_ACTION_TYPE type; */
+/* IDL:        uint32 delay; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_SC_ACTION_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_SC_ACTION_TYPE(tvb, offset, pinfo, tree, drep, hf_svcctl_SC_ACTION_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SC_ACTION_delay(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SC_ACTION_delay, 0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_SC_ACTION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_SC_ACTION);
+       }
+       
+       offset = svcctl_dissect_element_SC_ACTION_type(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SC_ACTION_delay(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 reset_period; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *rebootmsg; */
+/* IDL:        [relative(1)] [flag(LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2)] string *command; */
+/* IDL:        [range(0,1024)] uint32 num_actions; */
+/* IDL:        [relative(1)] [size_is(num_actions)] SC_ACTION *actions; */
+/* IDL: } */
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_reset_period(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_FAILURE_ACTIONS_reset_period, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_rebootmsg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_rebootmsg_, , "Pointer to Rebootmsg (string)",hf_svcctl_SERVICE_FAILURE_ACTIONS_rebootmsg);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_rebootmsg_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_FAILURE_ACTIONS_rebootmsg , 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_command(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_command_, , "Pointer to Command (string)",hf_svcctl_SERVICE_FAILURE_ACTIONS_command);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_command_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_FAILURE_ACTIONS_command , 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_num_actions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_SERVICE_FAILURE_ACTIONS_num_actions, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions_, , "Pointer to Actions (SC_ACTION)",hf_svcctl_SERVICE_FAILURE_ACTIONS_actions);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SC_ACTION(tvb,offset,pinfo,tree,drep,hf_svcctl_SERVICE_FAILURE_ACTIONS_actions,0);
+
+       return offset;
+}
+
+int
+svcctl_dissect_struct_SERVICE_FAILURE_ACTIONS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_svcctl_SERVICE_FAILURE_ACTIONS);
+       }
+       
+       offset = svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_reset_period(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_rebootmsg(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_command(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_num_actions(tvb, offset, pinfo, tree, drep);
+
+       offset = svcctl_dissect_element_SERVICE_FAILURE_ACTIONS_actions(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        SVC_STATUS_PROCESS_INFO=0x00000000, */
+/* IDL: } */
+
+int
+svcctl_dissect_enum_StatusLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CloseServiceHandle_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CloseServiceHandle_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_CloseServiceHandle_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CloseServiceHandle_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CloseServiceHandle_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_CloseServiceHandle( */
+/* IDL: [out] [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_CloseServiceHandle_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CloseServiceHandle";
+       offset = svcctl_dissect_element_CloseServiceHandle_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_CloseServiceHandle_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CloseServiceHandle";
+       offset = svcctl_dissect_element_CloseServiceHandle_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ControlService_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ControlService_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_ControlService_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ControlService_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ControlService_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ControlService_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_SERVICE_CONTROL(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ControlService_control, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ControlService_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ControlService_service_status_, NDR_POINTER_REF, "Pointer to Service Status (SERVICE_STATUS)",hf_svcctl_svcctl_ControlService_service_status);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ControlService_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_ControlService_service_status,0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_ControlService( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] SERVICE_CONTROL control, */
+/* IDL: [out] [ref] SERVICE_STATUS *service_status */
+/* IDL: ); */
+
+static int
+svcctl_dissect_ControlService_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ControlService";
+       offset = svcctl_dissect_element_ControlService_service_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_ControlService_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ControlService";
+       offset = svcctl_dissect_element_ControlService_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ControlService_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_DeleteService_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_DeleteService_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_DeleteService_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_DeleteService_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_DeleteService_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_DeleteService( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_DeleteService_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteService";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_DeleteService_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteService";
+       offset = svcctl_dissect_element_DeleteService_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_LockServiceDatabase_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_LockServiceDatabase_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_LockServiceDatabase_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_LockServiceDatabase_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_LockServiceDatabase_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_LockServiceDatabase_lock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_LockServiceDatabase_lock_, NDR_POINTER_REF, "Pointer to Lock (policy_handle)",hf_svcctl_svcctl_LockServiceDatabase_lock);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_LockServiceDatabase_lock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_LockServiceDatabase_lock, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_LockServiceDatabase( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] policy_handle *lock */
+/* IDL: ); */
+
+static int
+svcctl_dissect_LockServiceDatabase_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="LockServiceDatabase";
+       offset = svcctl_dissect_element_LockServiceDatabase_lock(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_LockServiceDatabase_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="LockServiceDatabase";
+       offset = svcctl_dissect_element_LockServiceDatabase_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceObjectSecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceObjectSecurity_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_security_secinfo(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceObjectSecurity_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceObjectSecurity_buffer__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceObjectSecurity_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceObjectSecurity_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceObjectSecurity_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceObjectSecurity_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceObjectSecurity( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] security_secinfo security_flags, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
+/* IDL: [in] [range(0,0x40000)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceObjectSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceObjectSecurity";
+       offset = svcctl_dissect_element_QueryServiceObjectSecurity_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceObjectSecurity_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceObjectSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceObjectSecurity";
+       offset = svcctl_dissect_element_QueryServiceObjectSecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceObjectSecurity_security_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceObjectSecurity_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SetServiceObjectSecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_SetServiceObjectSecurity_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_security_secinfo(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SetServiceObjectSecurity_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_svcctl_svcctl_SetServiceObjectSecurity_buffer);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SetServiceObjectSecurity_buffer__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_buffer, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SetServiceObjectSecurity_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SetServiceObjectSecurity_offered, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_SetServiceObjectSecurity( */
+/* IDL: [ref] [in] policy_handle *handle, */
+/* IDL: [in] security_secinfo security_flags, */
+/* IDL: [ref] [in] [size_is(offered)] uint8 *buffer, */
+/* IDL: [in] uint32 offered */
+/* IDL: ); */
+
+static int
+svcctl_dissect_SetServiceObjectSecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetServiceObjectSecurity";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_SetServiceObjectSecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetServiceObjectSecurity";
+       offset = svcctl_dissect_element_SetServiceObjectSecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SetServiceObjectSecurity_security_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SetServiceObjectSecurity_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SetServiceObjectSecurity_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatus_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatus_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceStatus_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatus_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatus_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatus_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatus_service_status_, NDR_POINTER_REF, "Pointer to Service Status (SERVICE_STATUS)",hf_svcctl_svcctl_QueryServiceStatus_service_status);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatus_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_QueryServiceStatus_service_status,0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceStatus( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] SERVICE_STATUS *service_status */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceStatus";
+       offset = svcctl_dissect_element_QueryServiceStatus_service_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceStatus";
+       offset = svcctl_dissect_element_QueryServiceStatus_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR svcctl_SetServiceStatus( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+svcctl_dissect_SetServiceStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetServiceStatus";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_SetServiceStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetServiceStatus";
+       return offset;
+}
+
+static int
+svcctl_dissect_element_UnlockServiceDatabase_lock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_UnlockServiceDatabase_lock_, NDR_POINTER_REF, "Pointer to Lock (policy_handle)",hf_svcctl_svcctl_UnlockServiceDatabase_lock);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_UnlockServiceDatabase_lock_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_UnlockServiceDatabase_lock, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_UnlockServiceDatabase( */
+/* IDL: [out] [in] [ref] policy_handle *lock */
+/* IDL: ); */
+
+static int
+svcctl_dissect_UnlockServiceDatabase_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="UnlockServiceDatabase";
+       offset = svcctl_dissect_element_UnlockServiceDatabase_lock(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_UnlockServiceDatabase_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="UnlockServiceDatabase";
+       offset = svcctl_dissect_element_UnlockServiceDatabase_lock(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR svcctl_NotifyBootConfigStatus( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+svcctl_dissect_NotifyBootConfigStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NotifyBootConfigStatus";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_NotifyBootConfigStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NotifyBootConfigStatus";
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SCSetServiceBitsW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_SCSetServiceBitsW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsW_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsW_bits, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsW_bitson(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsW_bitson, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsW_immediate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsW_immediate, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_SCSetServiceBitsW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 bits, */
+/* IDL: [in] uint32 bitson, */
+/* IDL: [in] uint32 immediate */
+/* IDL: ); */
+
+static int
+svcctl_dissect_SCSetServiceBitsW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SCSetServiceBitsW";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_SCSetServiceBitsW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SCSetServiceBitsW";
+       offset = svcctl_dissect_element_SCSetServiceBitsW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SCSetServiceBitsW_bits(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SCSetServiceBitsW_bitson(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SCSetServiceBitsW_immediate(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfigW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigW_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigW_start_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigW_error_control, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_binary_path_, NDR_POINTER_UNIQUE, "Pointer to Binary Path (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_binary_path);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigW_binary_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_load_order_group_, NDR_POINTER_UNIQUE, "Pointer to Load Order Group (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_tag_id_, NDR_POINTER_REF, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_ChangeServiceConfigW_tag_id);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigW_tag_id, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_dependencies);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigW_dependencies, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_password);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigW_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigW_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_ChangeServiceConfigW_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigW_display_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_ChangeServiceConfigW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_StartType start_type, */
+/* IDL: [in] svcctl_ErrorControl error_control, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *binary_path, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *load_order_group, */
+/* IDL: [out] [ref] uint32 *tag_id, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *dependencies, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_start_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *password, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *display_name */
+/* IDL: ); */
+
+static int
+svcctl_dissect_ChangeServiceConfigW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangeServiceConfigW";
+       offset = svcctl_dissect_element_ChangeServiceConfigW_tag_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_ChangeServiceConfigW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangeServiceConfigW";
+       offset = svcctl_dissect_element_ChangeServiceConfigW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_start_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_error_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_binary_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_load_order_group(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_dependencies(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_service_start_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigW_display_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_scmanager_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_scmanager_handle_, NDR_POINTER_REF, "Pointer to Scmanager Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceW_scmanager_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_scmanager_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_scmanager_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceW_ServiceName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to Displayname (uint16)",hf_svcctl_svcctl_CreateServiceW_DisplayName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceW_DisplayName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_desired_access, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_start_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_error_control, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceW_binary_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_LoadOrderGroupKey_, NDR_POINTER_UNIQUE, "Pointer to Loadordergroupkey (uint16)",hf_svcctl_svcctl_CreateServiceW_LoadOrderGroupKey);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceW_LoadOrderGroupKey, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_TagId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_TagId_, NDR_POINTER_UNIQUE, "Pointer to Tagid (uint32)",hf_svcctl_svcctl_CreateServiceW_TagId);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_TagId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_TagId, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint8)",hf_svcctl_svcctl_CreateServiceW_dependencies);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_dependencies__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_dependencies__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_dependencies, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_dependencies_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_dependencies_size, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_CreateServiceW_service_start_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceW_service_start_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint8)",hf_svcctl_svcctl_CreateServiceW_password);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_password__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_password__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_password, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_password_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_password_size, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceW_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_CreateServiceW( */
+/* IDL: [in] [ref] policy_handle *scmanager_handle, */
+/* IDL: [in] [charset(UTF16)] uint16 ServiceName[*], */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *DisplayName, */
+/* IDL: [in] uint32 desired_access, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_StartType start_type, */
+/* IDL: [in] svcctl_ErrorControl error_control, */
+/* IDL: [in] [charset(UTF16)] uint16 binary_path[*], */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *LoadOrderGroupKey, */
+/* IDL: [out] [unique(1)] [in] uint32 *TagId, */
+/* IDL: [unique(1)] [in] [size_is(dependencies_size)] uint8 *dependencies, */
+/* IDL: [in] uint32 dependencies_size, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_start_name, */
+/* IDL: [unique(1)] [in] [size_is(password_size)] uint8 *password, */
+/* IDL: [in] uint32 password_size, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_CreateServiceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateServiceW";
+       offset = svcctl_dissect_element_CreateServiceW_TagId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_CreateServiceW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_CreateServiceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateServiceW";
+       offset = svcctl_dissect_element_CreateServiceW_scmanager_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_ServiceName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_DisplayName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_desired_access(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_start_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_error_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_binary_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_LoadOrderGroupKey(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_TagId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_dependencies(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_dependencies_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_service_start_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceW_password_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_service_, NDR_POINTER_REF, "Pointer to Service (policy_handle)",hf_svcctl_svcctl_EnumDependentServicesW_service);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_service, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_service_status_, NDR_POINTER_REF, "Pointer to Service Status (uint8)",hf_svcctl_svcctl_EnumDependentServicesW_service_status);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_service_status__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_service_status__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_service_status, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_EnumDependentServicesW_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_needed, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesW_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumDependentServicesW_services_returned);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesW_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesW_services_returned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_EnumDependentServicesW( */
+/* IDL: [in] [ref] policy_handle *service, */
+/* IDL: [in] svcctl_ServiceState state, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *service_status, */
+/* IDL: [in] [range(0,0x40000)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *needed, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *services_returned */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumDependentServicesW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumDependentServicesW";
+       offset = svcctl_dissect_element_EnumDependentServicesW_service_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumDependentServicesW_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumDependentServicesW_services_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumDependentServicesW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumDependentServicesW";
+       offset = svcctl_dissect_element_EnumDependentServicesW_service(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumDependentServicesW_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumDependentServicesW_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_EnumServicesStatusW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_service_, NDR_POINTER_REF, "Pointer to Service (uint8)",hf_svcctl_svcctl_EnumServicesStatusW_service);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_service__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_service__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_service, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_EnumServicesStatusW_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_needed, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumServicesStatusW_services_returned);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_services_returned, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusW_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_svcctl_EnumServicesStatusW_resume_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusW_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusW_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_EnumServicesStatusW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_ServiceState state, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *service, */
+/* IDL: [in] [range(0,0x40000)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *needed, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *services_returned, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumServicesStatusW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumServicesStatusW";
+       offset = svcctl_dissect_element_EnumServicesStatusW_service(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusW_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusW_services_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusW_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumServicesStatusW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumServicesStatusW";
+       offset = svcctl_dissect_element_EnumServicesStatusW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusW_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusW_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusW_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusW_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenSCManagerW_MachineName_, NDR_POINTER_UNIQUE, "Pointer to Machinename (uint16)",hf_svcctl_svcctl_OpenSCManagerW_MachineName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_OpenSCManagerW_MachineName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenSCManagerW_DatabaseName_, NDR_POINTER_UNIQUE, "Pointer to Databasename (uint16)",hf_svcctl_svcctl_OpenSCManagerW_DatabaseName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_OpenSCManagerW_DatabaseName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_bitmap_MgrAccessMask(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenSCManagerW_access_mask, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenSCManagerW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_OpenSCManagerW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenSCManagerW_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_OpenSCManagerW( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *MachineName, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *DatabaseName, */
+/* IDL: [in] svcctl_MgrAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_OpenSCManagerW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenSCManagerW";
+       offset = svcctl_dissect_element_OpenSCManagerW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_OpenSCManagerW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenSCManagerW";
+       offset = svcctl_dissect_element_OpenSCManagerW_MachineName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenSCManagerW_DatabaseName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenSCManagerW_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceW_scmanager_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenServiceW_scmanager_handle_, NDR_POINTER_REF, "Pointer to Scmanager Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceW_scmanager_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceW_scmanager_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenServiceW_scmanager_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceW_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_OpenServiceW_ServiceName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceW_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_bitmap_ServiceAccessMask(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenServiceW_access_mask, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenServiceW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenServiceW_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_OpenServiceW( */
+/* IDL: [in] [ref] policy_handle *scmanager_handle, */
+/* IDL: [in] [charset(UTF16)] uint16 ServiceName[*], */
+/* IDL: [in] svcctl_ServiceAccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_OpenServiceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenServiceW";
+       offset = svcctl_dissect_element_OpenServiceW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_OpenServiceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenServiceW";
+       offset = svcctl_dissect_element_OpenServiceW_scmanager_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenServiceW_ServiceName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenServiceW_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfigW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfigW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfigW_query_, NDR_POINTER_REF, "Pointer to Query (QUERY_SERVICE_CONFIG)",hf_svcctl_svcctl_QueryServiceConfigW_query);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_QueryServiceConfigW_query,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigW_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfigW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfigW_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigW_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceConfigW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] QUERY_SERVICE_CONFIG *query, */
+/* IDL: [in] [range(0,8192)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,8192)] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceConfigW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceConfigW";
+       offset = svcctl_dissect_element_QueryServiceConfigW_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceConfigW_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceConfigW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceConfigW";
+       offset = svcctl_dissect_element_QueryServiceConfigW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceConfigW_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceLockStatusW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceLockStatusW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceLockStatusW_lock_status_, NDR_POINTER_REF, "Pointer to Lock Status (SERVICE_LOCK_STATUS)",hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceLockStatusW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceLockStatusW_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceLockStatusW_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceLockStatusW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] SERVICE_LOCK_STATUS *lock_status, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceLockStatusW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceLockStatusW";
+       offset = svcctl_dissect_element_QueryServiceLockStatusW_lock_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceLockStatusW_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceLockStatusW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceLockStatusW";
+       offset = svcctl_dissect_element_QueryServiceLockStatusW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceLockStatusW_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_StartServiceW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_StartServiceW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_StartServiceW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceW_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_StartServiceW_NumArgs, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceW_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_StartServiceW_Arguments_, NDR_POINTER_UNIQUE, "Pointer to Arguments (svcctl_ArgumentString)",hf_svcctl_svcctl_StartServiceW_Arguments);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceW_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_StartServiceW_Arguments__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceW_Arguments__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_ArgumentString(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_StartServiceW_Arguments,0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_StartServiceW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [range(0,SC_MAX_ARGUMENTS)] uint32 NumArgs, */
+/* IDL: [unique(1)] [in] [size_is(NumArgs)] svcctl_ArgumentString *Arguments */
+/* IDL: ); */
+
+static int
+svcctl_dissect_StartServiceW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="StartServiceW";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_StartServiceW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="StartServiceW";
+       offset = svcctl_dissect_element_StartServiceW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_StartServiceW_NumArgs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_StartServiceW_Arguments(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_GetServiceDisplayNameW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceDisplayNameW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameW_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_service_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceDisplayNameW_service_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name_, NDR_POINTER_REF, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name__, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceDisplayNameW_display_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameW_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_GetServiceDisplayNameW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_name, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **display_name, */
+/* IDL: [out] [unique(1)] [in] uint32 *display_name_length */
+/* IDL: ); */
+
+static int
+svcctl_dissect_GetServiceDisplayNameW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetServiceDisplayNameW";
+       offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_GetServiceDisplayNameW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetServiceDisplayNameW";
+       offset = svcctl_dissect_element_GetServiceDisplayNameW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceDisplayNameW_service_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceDisplayNameW_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameW_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_GetServiceKeyNameW_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceKeyNameW_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameW_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_service_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceKeyNameW_service_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameW_key_name_, NDR_POINTER_REF, "Pointer to Key Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_key_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_key_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameW_key_name__, NDR_POINTER_UNIQUE, "Pointer to Key Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameW_key_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_key_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceKeyNameW_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameW_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceKeyNameW_display_name_length);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameW_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceKeyNameW_display_name_length, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_GetServiceKeyNameW( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_name, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **key_name, */
+/* IDL: [out] [unique(1)] [in] uint32 *display_name_length */
+/* IDL: ); */
+
+static int
+svcctl_dissect_GetServiceKeyNameW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetServiceKeyNameW";
+       offset = svcctl_dissect_element_GetServiceKeyNameW_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_GetServiceKeyNameW_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_GetServiceKeyNameW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetServiceKeyNameW";
+       offset = svcctl_dissect_element_GetServiceKeyNameW_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceKeyNameW_service_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceKeyNameW_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_SCSetServiceBitsA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_SCSetServiceBitsA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsA_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsA_bits, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsA_bitson(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsA_bitson, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_SCSetServiceBitsA_immediate(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_SCSetServiceBitsA_immediate, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_SCSetServiceBitsA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 bits, */
+/* IDL: [in] uint32 bitson, */
+/* IDL: [in] uint32 immediate */
+/* IDL: ); */
+
+static int
+svcctl_dissect_SCSetServiceBitsA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SCSetServiceBitsA";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_SCSetServiceBitsA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SCSetServiceBitsA";
+       offset = svcctl_dissect_element_SCSetServiceBitsA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SCSetServiceBitsA_bits(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SCSetServiceBitsA_bitson(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_SCSetServiceBitsA_immediate(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfigA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_start_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_error_control, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_binary_path_, NDR_POINTER_UNIQUE, "Pointer to Binary Path (uint16)",hf_svcctl_svcctl_ChangeServiceConfigA_binary_path);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigA_binary_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_load_order_group_, NDR_POINTER_UNIQUE, "Pointer to Load Order Group (uint16)",hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_load_order_group_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_tag_id_, NDR_POINTER_REF, "Pointer to Tag Id (uint32)",hf_svcctl_svcctl_ChangeServiceConfigA_tag_id);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_tag_id_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfigA_tag_id, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint16)",hf_svcctl_svcctl_ChangeServiceConfigA_dependencies);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigA_dependencies, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_svcctl_svcctl_ChangeServiceConfigA_password);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigA_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfigA_display_name_, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_ChangeServiceConfigA_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfigA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_ChangeServiceConfigA_display_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_ChangeServiceConfigA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_StartType start_type, */
+/* IDL: [in] svcctl_ErrorControl error_control, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *binary_path, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *load_order_group, */
+/* IDL: [out] [ref] uint32 *tag_id, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *dependencies, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_start_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *password, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *display_name */
+/* IDL: ); */
+
+static int
+svcctl_dissect_ChangeServiceConfigA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangeServiceConfigA";
+       offset = svcctl_dissect_element_ChangeServiceConfigA_tag_id(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_ChangeServiceConfigA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangeServiceConfigA";
+       offset = svcctl_dissect_element_ChangeServiceConfigA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_start_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_error_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_binary_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_load_order_group(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_dependencies(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_service_start_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfigA_display_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_CreateServiceA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_ServiceName_, NDR_POINTER_UNIQUE, "Pointer to Servicename (uint16)",hf_svcctl_svcctl_CreateServiceA_ServiceName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_ServiceName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_ServiceName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_DisplayName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_DisplayName_, NDR_POINTER_UNIQUE, "Pointer to Displayname (uint16)",hf_svcctl_svcctl_CreateServiceA_DisplayName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_DisplayName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_DisplayName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_desired_access(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_desired_access, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_start_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_StartType(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_start_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_error_control(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ErrorControl(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_error_control, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_binary_path(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_binary_path_, NDR_POINTER_UNIQUE, "Pointer to Binary Path (uint16)",hf_svcctl_svcctl_CreateServiceA_binary_path);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_binary_path_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_binary_path, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_, NDR_POINTER_UNIQUE, "Pointer to Loadordergroupkey (uint16)",hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_TagId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_TagId_, NDR_POINTER_UNIQUE, "Pointer to Tagid (uint32)",hf_svcctl_svcctl_CreateServiceA_TagId);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_TagId_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_CreateServiceA_TagId, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_dependencies(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_dependencies_, NDR_POINTER_UNIQUE, "Pointer to Dependencies (uint16)",hf_svcctl_svcctl_CreateServiceA_dependencies);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_dependencies_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_dependencies, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_service_start_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_service_start_name_, NDR_POINTER_UNIQUE, "Pointer to Service Start Name (uint16)",hf_svcctl_svcctl_CreateServiceA_service_start_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_service_start_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_service_start_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_CreateServiceA_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_svcctl_svcctl_CreateServiceA_password);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_CreateServiceA_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_CreateServiceA_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_CreateServiceA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *ServiceName, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *DisplayName, */
+/* IDL: [in] uint32 desired_access, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_StartType start_type, */
+/* IDL: [in] svcctl_ErrorControl error_control, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *binary_path, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *LoadOrderGroupKey, */
+/* IDL: [out] [unique(1)] uint32 *TagId, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *dependencies, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_start_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *password */
+/* IDL: ); */
+
+static int
+svcctl_dissect_CreateServiceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateServiceA";
+       offset = svcctl_dissect_element_CreateServiceA_TagId(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_CreateServiceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateServiceA";
+       offset = svcctl_dissect_element_CreateServiceA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_ServiceName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_DisplayName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_desired_access(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_start_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_error_control(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_binary_path(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_LoadOrderGroupKey(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_dependencies(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_service_start_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_CreateServiceA_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesA_service_, NDR_POINTER_REF, "Pointer to Service (policy_handle)",hf_svcctl_svcctl_EnumDependentServicesA_service);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesA_service, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesA_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_service_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesA_service_status_, NDR_POINTER_UNIQUE, "Pointer to Service Status (ENUM_SERVICE_STATUSA)",hf_svcctl_svcctl_EnumDependentServicesA_service_status);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_service_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_EnumDependentServicesA_service_status,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesA_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_EnumDependentServicesA_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesA_needed, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumDependentServicesA_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumDependentServicesA_services_returned);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumDependentServicesA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumDependentServicesA_services_returned, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_EnumDependentServicesA( */
+/* IDL: [in] [ref] policy_handle *service, */
+/* IDL: [in] svcctl_ServiceState state, */
+/* IDL: [out] [unique(1)] ENUM_SERVICE_STATUSA *service_status, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *services_returned */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumDependentServicesA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumDependentServicesA";
+       offset = svcctl_dissect_element_EnumDependentServicesA_service_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumDependentServicesA_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumDependentServicesA_services_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumDependentServicesA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumDependentServicesA";
+       offset = svcctl_dissect_element_EnumDependentServicesA_service(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumDependentServicesA_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumDependentServicesA_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_EnumServicesStatusA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_service_);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_service_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_service, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_EnumServicesStatusA_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_needed, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_services_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_services_returned_, NDR_POINTER_REF, "Pointer to Services Returned (uint32)",hf_svcctl_svcctl_EnumServicesStatusA_services_returned);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_services_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_services_returned, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusA_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_svcctl_EnumServicesStatusA_resume_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_EnumServicesStatusA_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_EnumServicesStatusA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_ServiceState state, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [size_is(offered)] uint8 service[*], */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *services_returned, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumServicesStatusA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumServicesStatusA";
+       offset = svcctl_dissect_element_EnumServicesStatusA_service(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusA_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusA_services_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumServicesStatusA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumServicesStatusA";
+       offset = svcctl_dissect_element_EnumServicesStatusA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusA_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusA_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusA_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusA_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_MachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenSCManagerA_MachineName_, NDR_POINTER_UNIQUE, "Pointer to Machinename (uint16)",hf_svcctl_svcctl_OpenSCManagerA_MachineName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_MachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_OpenSCManagerA_MachineName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenSCManagerA_DatabaseName_, NDR_POINTER_UNIQUE, "Pointer to Databasename (uint16)",hf_svcctl_svcctl_OpenSCManagerA_DatabaseName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_DatabaseName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_OpenSCManagerA_DatabaseName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenSCManagerA_access_mask, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenSCManagerA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_OpenSCManagerA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenSCManagerA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenSCManagerA_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_OpenSCManagerA( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *MachineName, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *DatabaseName, */
+/* IDL: [in] uint32 access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+svcctl_dissect_OpenSCManagerA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenSCManagerA";
+       offset = svcctl_dissect_element_OpenSCManagerA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_OpenSCManagerA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenSCManagerA";
+       offset = svcctl_dissect_element_OpenSCManagerA_MachineName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenSCManagerA_DatabaseName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenSCManagerA_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceA_scmanager_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenServiceA_scmanager_handle_, NDR_POINTER_REF, "Pointer to Scmanager Handle (policy_handle)",hf_svcctl_svcctl_OpenServiceA_scmanager_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceA_scmanager_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenServiceA_scmanager_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceA_ServiceName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_OpenServiceA_ServiceName_, NDR_POINTER_UNIQUE, "Pointer to Servicename (uint16)",hf_svcctl_svcctl_OpenServiceA_ServiceName);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceA_ServiceName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_OpenServiceA_ServiceName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_OpenServiceA_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_OpenServiceA_access_mask, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_OpenServiceA( */
+/* IDL: [in] [ref] policy_handle *scmanager_handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *ServiceName, */
+/* IDL: [in] uint32 access_mask */
+/* IDL: ); */
+
+static int
+svcctl_dissect_OpenServiceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenServiceA";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_OpenServiceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenServiceA";
+       offset = svcctl_dissect_element_OpenServiceA_scmanager_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenServiceA_ServiceName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_OpenServiceA_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfigA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfigA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_query(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_query_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigA_query, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigA_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfigA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfigA_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfigA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfigA_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceConfigA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] uint8 query[offered], */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceConfigA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceConfigA";
+       offset = svcctl_dissect_element_QueryServiceConfigA_query(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceConfigA_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceConfigA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceConfigA";
+       offset = svcctl_dissect_element_QueryServiceConfigA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceConfigA_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceLockStatusA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceLockStatusA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceLockStatusA_lock_status_, NDR_POINTER_REF, "Pointer to Lock Status (SERVICE_LOCK_STATUS)",hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_lock_status_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvb,offset,pinfo,tree,drep,hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status,0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceLockStatusA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceLockStatusA_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceLockStatusA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceLockStatusA_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceLockStatusA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] SERVICE_LOCK_STATUS *lock_status, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceLockStatusA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceLockStatusA";
+       offset = svcctl_dissect_element_QueryServiceLockStatusA_lock_status(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceLockStatusA_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceLockStatusA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceLockStatusA";
+       offset = svcctl_dissect_element_QueryServiceLockStatusA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceLockStatusA_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_StartServiceA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_StartServiceA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_StartServiceA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceA_NumArgs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_StartServiceA_NumArgs, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceA_Arguments(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_StartServiceA_Arguments_, NDR_POINTER_UNIQUE, "Pointer to Arguments (uint16)",hf_svcctl_svcctl_StartServiceA_Arguments);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_StartServiceA_Arguments_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_StartServiceA_Arguments, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_StartServiceA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 NumArgs, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Arguments */
+/* IDL: ); */
+
+static int
+svcctl_dissect_StartServiceA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="StartServiceA";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_StartServiceA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="StartServiceA";
+       offset = svcctl_dissect_element_StartServiceA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_StartServiceA_NumArgs(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_StartServiceA_Arguments(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_GetServiceDisplayNameA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameA_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameA_service_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceDisplayNameA_service_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name_, NDR_POINTER_REF, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_display_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name__, NDR_POINTER_UNIQUE, "Pointer to Display Name (uint16)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_display_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceDisplayNameA_display_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceDisplayNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_GetServiceDisplayNameA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_name, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **display_name, */
+/* IDL: [out] [unique(1)] [in] uint32 *display_name_length */
+/* IDL: ); */
+
+static int
+svcctl_dissect_GetServiceDisplayNameA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetServiceDisplayNameA";
+       offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_GetServiceDisplayNameA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetServiceDisplayNameA";
+       offset = svcctl_dissect_element_GetServiceDisplayNameA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceDisplayNameA_service_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceDisplayNameA_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameA_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_GetServiceKeyNameA_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceKeyNameA_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_service_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameA_service_name_, NDR_POINTER_UNIQUE, "Pointer to Service Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameA_service_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_service_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceKeyNameA_service_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_key_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameA_key_name_, NDR_POINTER_REF, "Pointer to Key Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameA_key_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_key_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameA_key_name__, NDR_POINTER_UNIQUE, "Pointer to Key Name (uint16)",hf_svcctl_svcctl_GetServiceKeyNameA_key_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_key_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_svcctl_GetServiceKeyNameA_key_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_GetServiceKeyNameA_display_name_length_, NDR_POINTER_UNIQUE, "Pointer to Display Name Length (uint32)",hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_GetServiceKeyNameA_display_name_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_GetServiceKeyNameA( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *service_name, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **key_name, */
+/* IDL: [out] [unique(1)] [in] uint32 *display_name_length */
+/* IDL: ); */
+
+static int
+svcctl_dissect_GetServiceKeyNameA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetServiceKeyNameA";
+       offset = svcctl_dissect_element_GetServiceKeyNameA_key_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_GetServiceKeyNameA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetServiceKeyNameA";
+       offset = svcctl_dissect_element_GetServiceKeyNameA_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceKeyNameA_service_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_GetServiceKeyNameA_display_name_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR svcctl_GetCurrentGroupeStateW( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+svcctl_dissect_GetCurrentGroupeStateW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetCurrentGroupeStateW";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_GetCurrentGroupeStateW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetCurrentGroupeStateW";
+       return offset;
+}
+
+/* IDL: WERROR svcctl_EnumServiceGroupW( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumServiceGroupW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumServiceGroupW";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumServiceGroupW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumServiceGroupW";
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfig2A_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfig2A_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2A_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfig2A_info_, NDR_POINTER_UNIQUE, "Pointer to Info (uint8)",hf_svcctl_svcctl_ChangeServiceConfig2A_info);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2A_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfig2A_info, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_ChangeServiceConfig2A( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 info_level, */
+/* IDL: [unique(1)] [in] uint8 *info */
+/* IDL: ); */
+
+static int
+svcctl_dissect_ChangeServiceConfig2A_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangeServiceConfig2A";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_ChangeServiceConfig2A_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangeServiceConfig2A";
+       offset = svcctl_dissect_element_ChangeServiceConfig2A_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfig2A_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfig2A_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfig2W_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_ChangeServiceConfig2W_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2W_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_ChangeServiceConfig2W_info_, NDR_POINTER_UNIQUE, "Pointer to Info (uint8)",hf_svcctl_svcctl_ChangeServiceConfig2W_info);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_ChangeServiceConfig2W_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_ChangeServiceConfig2W_info, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_ChangeServiceConfig2W( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 info_level, */
+/* IDL: [unique(1)] [in] uint8 *info */
+/* IDL: ); */
+
+static int
+svcctl_dissect_ChangeServiceConfig2W_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ChangeServiceConfig2W";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_ChangeServiceConfig2W_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ChangeServiceConfig2W";
+       offset = svcctl_dissect_element_ChangeServiceConfig2W_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfig2W_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_ChangeServiceConfig2W_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2A_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfig2A_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2A_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ConfigLevel(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2A_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2A_buffer, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2A_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2A_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfig2A_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2A_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2A_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceConfig2A( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] svcctl_ConfigLevel info_level, */
+/* IDL: [out] uint8 buffer[offered], */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceConfig2A_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceConfig2A";
+       offset = svcctl_dissect_element_QueryServiceConfig2A_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceConfig2A_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceConfig2A_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceConfig2A";
+       offset = svcctl_dissect_element_QueryServiceConfig2A_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceConfig2A_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceConfig2A_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2W_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceConfig2W_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2W_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ConfigLevel(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2W_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_svcctl_svcctl_QueryServiceConfig2W_buffer);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2W_buffer__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2W_buffer, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2W_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceConfig2W_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceConfig2W_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceConfig2W_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceConfig2W_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceConfig2W( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] svcctl_ConfigLevel info_level, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
+/* IDL: [in] [range(0,8192)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,8192)] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceConfig2W_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceConfig2W";
+       offset = svcctl_dissect_element_QueryServiceConfig2W_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceConfig2W_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceConfig2W_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceConfig2W";
+       offset = svcctl_dissect_element_QueryServiceConfig2W_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceConfig2W_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceConfig2W_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatusEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_svcctl_svcctl_QueryServiceStatusEx_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatusEx_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_StatusLevel(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatusEx_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer_, NDR_POINTER_REF, "Pointer to Buffer (uint8)",hf_svcctl_svcctl_QueryServiceStatusEx_buffer);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatusEx_buffer__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatusEx_buffer, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatusEx_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_QueryServiceStatusEx_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_svcctl_QueryServiceStatusEx_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_QueryServiceStatusEx_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_svcctl_QueryServiceStatusEx_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR svcctl_QueryServiceStatusEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] svcctl_StatusLevel info_level, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *buffer, */
+/* IDL: [in] [range(0,8192)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,8192)] uint32 *needed */
+/* IDL: ); */
+
+static int
+svcctl_dissect_QueryServiceStatusEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryServiceStatusEx";
+       offset = svcctl_dissect_element_QueryServiceStatusEx_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_QueryServiceStatusEx_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_QueryServiceStatusEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryServiceStatusEx";
+       offset = svcctl_dissect_element_QueryServiceStatusEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceStatusEx_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_QueryServiceStatusEx_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_scmanager(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExA_scmanager_, NDR_POINTER_REF, "Pointer to Scmanager (policy_handle)",hf_svcctl_EnumServicesStatusExA_scmanager);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_scmanager_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_scmanager, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_services, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExA_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_EnumServicesStatusExA_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_needed, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExA_service_returned_, NDR_POINTER_REF, "Pointer to Service Returned (uint32)",hf_svcctl_EnumServicesStatusExA_service_returned);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_service_returned, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExA_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_EnumServicesStatusExA_resume_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExA_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExA_group_name_, NDR_POINTER_REF, "Pointer to Group Name (uint16)",hf_svcctl_EnumServicesStatusExA_group_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExA_group_name__, NDR_POINTER_UNIQUE, "Pointer to Group Name (uint16)",hf_svcctl_EnumServicesStatusExA_group_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExA_group_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_EnumServicesStatusExA_group_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR EnumServicesStatusExA( */
+/* IDL: [in] [ref] policy_handle *scmanager, */
+/* IDL: [in] uint32 info_level, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_ServiceState state, */
+/* IDL: [out] uint8 services[offered], */
+/* IDL: [in] uint32 offered, */
+/* IDL: [out] [ref] uint32 *needed, */
+/* IDL: [out] [ref] uint32 *service_returned, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle, */
+/* IDL: [out] [ref] [charset(UTF16)] uint16 **group_name */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumServicesStatusExA_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumServicesStatusExA";
+       offset = svcctl_dissect_element_EnumServicesStatusExA_services(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExA_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExA_service_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExA_group_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumServicesStatusExA_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumServicesStatusExA";
+       offset = svcctl_dissect_element_EnumServicesStatusExA_scmanager(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExA_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExA_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExA_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExA_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExA_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_scmanager_, NDR_POINTER_REF, "Pointer to Scmanager (policy_handle)",hf_svcctl_EnumServicesStatusExW_scmanager);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_scmanager_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_scmanager, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_info_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_info_level, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_type, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = svcctl_dissect_enum_ServiceState(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_state, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_services(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_services_, NDR_POINTER_REF, "Pointer to Services (uint8)",hf_svcctl_EnumServicesStatusExW_services);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_services_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_services__);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_services__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_services, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_offered, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_svcctl_EnumServicesStatusExW_needed);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_needed, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_service_returned_, NDR_POINTER_REF, "Pointer to Service Returned (uint32)",hf_svcctl_EnumServicesStatusExW_service_returned);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_service_returned_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_service_returned, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_svcctl_EnumServicesStatusExW_resume_handle);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_EnumServicesStatusExW_resume_handle, 0);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_group_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, svcctl_dissect_element_EnumServicesStatusExW_group_name_, NDR_POINTER_UNIQUE, "Pointer to Group Name (uint16)",hf_svcctl_EnumServicesStatusExW_group_name);
+
+       return offset;
+}
+
+static int
+svcctl_dissect_element_EnumServicesStatusExW_group_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_svcctl_EnumServicesStatusExW_group_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR EnumServicesStatusExW( */
+/* IDL: [in] [ref] policy_handle *scmanager, */
+/* IDL: [in] uint32 info_level, */
+/* IDL: [in] uint32 type, */
+/* IDL: [in] svcctl_ServiceState state, */
+/* IDL: [out] [ref] [size_is(offered)] uint8 *services, */
+/* IDL: [in] [range(0,0x40000)] uint32 offered, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *needed, */
+/* IDL: [out] [ref] [range(0,0x40000)] uint32 *service_returned, */
+/* IDL: [unique(1)] [out] [in] [range(0,0x40000)] uint32 *resume_handle, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *group_name */
+/* IDL: ); */
+
+static int
+svcctl_dissect_EnumServicesStatusExW_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumServicesStatusExW";
+       offset = svcctl_dissect_element_EnumServicesStatusExW_services(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExW_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExW_service_returned(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_EnumServicesStatusExW_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumServicesStatusExW";
+       offset = svcctl_dissect_element_EnumServicesStatusExW_scmanager(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExW_info_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExW_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExW_state(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExW_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExW_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = svcctl_dissect_element_EnumServicesStatusExW_group_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+/* IDL: WERROR svcctl_SCSendTSMessage( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+svcctl_dissect_SCSendTSMessage_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SCSendTSMessage";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_svcctl_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+svcctl_dissect_SCSendTSMessage_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SCSendTSMessage";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector svcctl_dissectors[] = {
+       { 0, "CloseServiceHandle",
+          svcctl_dissect_CloseServiceHandle_request, svcctl_dissect_CloseServiceHandle_response},
+       { 1, "ControlService",
+          svcctl_dissect_ControlService_request, svcctl_dissect_ControlService_response},
+       { 2, "DeleteService",
+          svcctl_dissect_DeleteService_request, svcctl_dissect_DeleteService_response},
+       { 3, "LockServiceDatabase",
+          svcctl_dissect_LockServiceDatabase_request, svcctl_dissect_LockServiceDatabase_response},
+       { 4, "QueryServiceObjectSecurity",
+          svcctl_dissect_QueryServiceObjectSecurity_request, svcctl_dissect_QueryServiceObjectSecurity_response},
+       { 5, "SetServiceObjectSecurity",
+          svcctl_dissect_SetServiceObjectSecurity_request, svcctl_dissect_SetServiceObjectSecurity_response},
+       { 6, "QueryServiceStatus",
+          svcctl_dissect_QueryServiceStatus_request, svcctl_dissect_QueryServiceStatus_response},
+       { 7, "SetServiceStatus",
+          svcctl_dissect_SetServiceStatus_request, svcctl_dissect_SetServiceStatus_response},
+       { 8, "UnlockServiceDatabase",
+          svcctl_dissect_UnlockServiceDatabase_request, svcctl_dissect_UnlockServiceDatabase_response},
+       { 9, "NotifyBootConfigStatus",
+          svcctl_dissect_NotifyBootConfigStatus_request, svcctl_dissect_NotifyBootConfigStatus_response},
+       { 10, "SCSetServiceBitsW",
+          svcctl_dissect_SCSetServiceBitsW_request, svcctl_dissect_SCSetServiceBitsW_response},
+       { 11, "ChangeServiceConfigW",
+          svcctl_dissect_ChangeServiceConfigW_request, svcctl_dissect_ChangeServiceConfigW_response},
+       { 12, "CreateServiceW",
+          svcctl_dissect_CreateServiceW_request, svcctl_dissect_CreateServiceW_response},
+       { 13, "EnumDependentServicesW",
+          svcctl_dissect_EnumDependentServicesW_request, svcctl_dissect_EnumDependentServicesW_response},
+       { 14, "EnumServicesStatusW",
+          svcctl_dissect_EnumServicesStatusW_request, svcctl_dissect_EnumServicesStatusW_response},
+       { 15, "OpenSCManagerW",
+          svcctl_dissect_OpenSCManagerW_request, svcctl_dissect_OpenSCManagerW_response},
+       { 16, "OpenServiceW",
+          svcctl_dissect_OpenServiceW_request, svcctl_dissect_OpenServiceW_response},
+       { 17, "QueryServiceConfigW",
+          svcctl_dissect_QueryServiceConfigW_request, svcctl_dissect_QueryServiceConfigW_response},
+       { 18, "QueryServiceLockStatusW",
+          svcctl_dissect_QueryServiceLockStatusW_request, svcctl_dissect_QueryServiceLockStatusW_response},
+       { 19, "StartServiceW",
+          svcctl_dissect_StartServiceW_request, svcctl_dissect_StartServiceW_response},
+       { 20, "GetServiceDisplayNameW",
+          svcctl_dissect_GetServiceDisplayNameW_request, svcctl_dissect_GetServiceDisplayNameW_response},
+       { 21, "GetServiceKeyNameW",
+          svcctl_dissect_GetServiceKeyNameW_request, svcctl_dissect_GetServiceKeyNameW_response},
+       { 22, "SCSetServiceBitsA",
+          svcctl_dissect_SCSetServiceBitsA_request, svcctl_dissect_SCSetServiceBitsA_response},
+       { 23, "ChangeServiceConfigA",
+          svcctl_dissect_ChangeServiceConfigA_request, svcctl_dissect_ChangeServiceConfigA_response},
+       { 24, "CreateServiceA",
+          svcctl_dissect_CreateServiceA_request, svcctl_dissect_CreateServiceA_response},
+       { 25, "EnumDependentServicesA",
+          svcctl_dissect_EnumDependentServicesA_request, svcctl_dissect_EnumDependentServicesA_response},
+       { 26, "EnumServicesStatusA",
+          svcctl_dissect_EnumServicesStatusA_request, svcctl_dissect_EnumServicesStatusA_response},
+       { 27, "OpenSCManagerA",
+          svcctl_dissect_OpenSCManagerA_request, svcctl_dissect_OpenSCManagerA_response},
+       { 28, "OpenServiceA",
+          svcctl_dissect_OpenServiceA_request, svcctl_dissect_OpenServiceA_response},
+       { 29, "QueryServiceConfigA",
+          svcctl_dissect_QueryServiceConfigA_request, svcctl_dissect_QueryServiceConfigA_response},
+       { 30, "QueryServiceLockStatusA",
+          svcctl_dissect_QueryServiceLockStatusA_request, svcctl_dissect_QueryServiceLockStatusA_response},
+       { 31, "StartServiceA",
+          svcctl_dissect_StartServiceA_request, svcctl_dissect_StartServiceA_response},
+       { 32, "GetServiceDisplayNameA",
+          svcctl_dissect_GetServiceDisplayNameA_request, svcctl_dissect_GetServiceDisplayNameA_response},
+       { 33, "GetServiceKeyNameA",
+          svcctl_dissect_GetServiceKeyNameA_request, svcctl_dissect_GetServiceKeyNameA_response},
+       { 34, "GetCurrentGroupeStateW",
+          svcctl_dissect_GetCurrentGroupeStateW_request, svcctl_dissect_GetCurrentGroupeStateW_response},
+       { 35, "EnumServiceGroupW",
+          svcctl_dissect_EnumServiceGroupW_request, svcctl_dissect_EnumServiceGroupW_response},
+       { 36, "ChangeServiceConfig2A",
+          svcctl_dissect_ChangeServiceConfig2A_request, svcctl_dissect_ChangeServiceConfig2A_response},
+       { 37, "ChangeServiceConfig2W",
+          svcctl_dissect_ChangeServiceConfig2W_request, svcctl_dissect_ChangeServiceConfig2W_response},
+       { 38, "QueryServiceConfig2A",
+          svcctl_dissect_QueryServiceConfig2A_request, svcctl_dissect_QueryServiceConfig2A_response},
+       { 39, "QueryServiceConfig2W",
+          svcctl_dissect_QueryServiceConfig2W_request, svcctl_dissect_QueryServiceConfig2W_response},
+       { 40, "QueryServiceStatusEx",
+          svcctl_dissect_QueryServiceStatusEx_request, svcctl_dissect_QueryServiceStatusEx_response},
+       { 41, "EnumServicesStatusExA",
+          svcctl_dissect_EnumServicesStatusExA_request, svcctl_dissect_EnumServicesStatusExA_response},
+       { 42, "EnumServicesStatusExW",
+          svcctl_dissect_EnumServicesStatusExW_request, svcctl_dissect_EnumServicesStatusExW_response},
+       { 43, "SCSendTSMessage",
+          svcctl_dissect_SCSendTSMessage_request, svcctl_dissect_SCSendTSMessage_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_svcctl(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_svcctl_svcctl_SCSetServiceBitsA_bits,
+         { "Bits", "svcctl.svcctl_SCSetServiceBitsA.bits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SetServiceObjectSecurity_handle,
+         { "Handle", "svcctl.svcctl_SetServiceObjectSecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_DisplayName,
+         { "Displayname", "svcctl.svcctl_CreateServiceA.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesW_needed,
+         { "Needed", "svcctl.svcctl_EnumDependentServicesW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_ENUM_SERVICE_STATUSW_display_name,
+         { "Display Name", "svcctl.ENUM_SERVICE_STATUSW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_state,
+         { "State", "svcctl.svcctl_EnumServicesStatusA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_type,
+         { "Type", "svcctl.svcctl_CreateServiceA.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_type,
+         { "Type", "svcctl.svcctl_EnumServicesStatusW.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameA_key_name,
+         { "Key Name", "svcctl.svcctl_GetServiceKeyNameA.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_NETBINDCHANGE,
+         { "Svcctl Accept Netbindchange", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_NETBINDCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_NETBINDCHANGE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_offered,
+         { "Offered", "svcctl.EnumServicesStatusExA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameW_service_name,
+         { "Service Name", "svcctl.svcctl_GetServiceDisplayNameW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2A_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceConfig2A.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2A_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceConfig2A.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsA_handle,
+         { "Handle", "svcctl.svcctl_SCSetServiceBitsA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_services_returned,
+         { "Services Returned", "svcctl.svcctl_EnumServicesStatusA.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigA_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceConfigA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_type,
+         { "Type", "svcctl.svcctl_ChangeServiceConfigA.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_service_start_name,
+         { "Service Start Name", "svcctl.svcctl_CreateServiceA.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_info_level,
+         { "Info Level", "svcctl.EnumServicesStatusExW.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_tag_id,
+         { "Tag Id", "svcctl.QUERY_SERVICE_CONFIG.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_binary_path,
+         { "Binary Path", "svcctl.svcctl_ChangeServiceConfigW.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_StartServiceA_handle,
+         { "Handle", "svcctl.svcctl_StartServiceA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_service_start_name,
+         { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_service,
+         { "Service", "svcctl.svcctl_EnumServicesStatusA.service", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_error_control,
+         { "Error Control", "svcctl.svcctl_CreateServiceA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_FAILURE_ACTIONS_rebootmsg,
+         { "Rebootmsg", "svcctl.SERVICE_FAILURE_ACTIONS.rebootmsg", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_error_control,
+         { "Error Control", "svcctl.svcctl_ChangeServiceConfigA.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameW_display_name_length,
+         { "Display Name Length", "svcctl.svcctl_GetServiceDisplayNameW.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS,
+         { "Sc Right Svc Enumerate Dependents", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_ENUMERATE_DEPENDENTS", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_ENUMERATE_DEPENDENTS_tfs), ( 0x0008 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2A_buffer,
+         { "Buffer", "svcctl.svcctl_QueryServiceConfig2A.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesW_state,
+         { "State", "svcctl.svcctl_EnumDependentServicesW.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_type,
+         { "Type", "svcctl.svcctl_CreateServiceW.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_tag_id,
+         { "Tag Id", "svcctl.svcctl_ChangeServiceConfigW.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_error_control,
+         { "Error Control", "svcctl.svcctl_ChangeServiceConfigW.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_StartServiceW_NumArgs,
+         { "Numargs", "svcctl.svcctl_StartServiceW.NumArgs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE,
+         { "Sc Right Svc Interrogate", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_INTERROGATE", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_INTERROGATE_tfs), ( 0x0080 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_password,
+         { "Password", "svcctl.svcctl_CreateServiceW.password", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_werror,
+         { "Windows Error", "svcctl.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceObjectSecurity_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceObjectSecurity.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatusEx_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceStatusEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfig2A_handle,
+         { "Handle", "svcctl.svcctl_ChangeServiceConfig2A.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_PROCESS_service_flags,
+         { "Service Flags", "svcctl.SERVICE_STATUS_PROCESS.service_flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesA_offered,
+         { "Offered", "svcctl.svcctl_EnumDependentServicesA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameW_service_name,
+         { "Service Name", "svcctl.svcctl_GetServiceKeyNameW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_offered,
+         { "Offered", "svcctl.svcctl_EnumServicesStatusW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerW_access_mask,
+         { "Access Mask", "svcctl.svcctl_OpenSCManagerW.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_loadordergroup,
+         { "Loadordergroup", "svcctl.QUERY_SERVICE_CONFIG.loadordergroup", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigW_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceConfigW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesA_needed,
+         { "Needed", "svcctl.svcctl_EnumDependentServicesA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_ENUM_SERVICE_STATUSA_service_name,
+         { "Service Name", "svcctl.ENUM_SERVICE_STATUSA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameA_display_name_length,
+         { "Display Name Length", "svcctl.svcctl_GetServiceDisplayNameA.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_StartServiceA_NumArgs,
+         { "Numargs", "svcctl.svcctl_StartServiceA.NumArgs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_service_returned,
+         { "Service Returned", "svcctl.EnumServicesStatusExW.service_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_info_level,
+         { "Info Level", "svcctl.EnumServicesStatusExA.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusW_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceLockStatusW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_resume_handle,
+         { "Resume Handle", "svcctl.svcctl_EnumServicesStatusW.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesA_service_status,
+         { "Service Status", "svcctl.svcctl_EnumDependentServicesA.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_desired_access,
+         { "Desired Access", "svcctl.svcctl_CreateServiceA.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlService_handle,
+         { "Handle", "svcctl.svcctl_ControlService.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG,
+         { "Sc Right Mgr Modify Boot Config", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_MODIFY_BOOT_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_MODIFY_BOOT_CONFIG_tfs), ( 0x0020 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatus_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceStatus.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfig2W_info_level,
+         { "Info Level", "svcctl.svcctl_ChangeServiceConfig2W.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameA_handle,
+         { "Handle", "svcctl.svcctl_GetServiceKeyNameA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_StartServiceW_handle,
+         { "Handle", "svcctl.svcctl_StartServiceW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_FAILURE_ACTIONS_num_actions,
+         { "Num Actions", "svcctl.SERVICE_FAILURE_ACTIONS.num_actions", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigA_query,
+         { "Query", "svcctl.svcctl_QueryServiceConfigA.query", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS,
+         { "Sc Right Svc Query Status", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_QUERY_STATUS", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_STATUS_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_handle,
+         { "Handle", "svcctl.svcctl_ChangeServiceConfigA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_DeleteService_handle,
+         { "Handle", "svcctl.svcctl_DeleteService.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_type,
+         { "Type", "svcctl.EnumServicesStatusExA.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlService_control,
+         { "Control", "svcctl.svcctl_ControlService.control", FT_UINT32, BASE_DEC, VALS(svcctl_SERVICE_CONTROL_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesW_offered,
+         { "Offered", "svcctl.svcctl_EnumDependentServicesW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameA_display_name,
+         { "Display Name", "svcctl.svcctl_GetServiceDisplayNameA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_offered,
+         { "Offered", "svcctl.svcctl_EnumServicesStatusA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_binary_path,
+         { "Binary Path", "svcctl.svcctl_CreateServiceW.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsW_immediate,
+         { "Immediate", "svcctl.svcctl_SCSetServiceBitsW.immediate", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_handle,
+         { "Handle", "svcctl.svcctl_CreateServiceW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_handle,
+         { "Handle", "svcctl.svcctl_ChangeServiceConfigW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_start_type,
+         { "Start Type", "svcctl.svcctl_CreateServiceA.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2W_info_level,
+         { "Info Level", "svcctl.svcctl_QueryServiceConfig2W.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ConfigLevel_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_load_order_group,
+         { "Load Order Group", "svcctl.svcctl_ChangeServiceConfigW.load_order_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_type,
+         { "Type", "svcctl.svcctl_ChangeServiceConfigW.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_DisplayName,
+         { "Displayname", "svcctl.svcctl_CreateServiceW.DisplayName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_type,
+         { "Type", "svcctl.EnumServicesStatusExW.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameA_service_name,
+         { "Service Name", "svcctl.svcctl_GetServiceKeyNameA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_handle,
+         { "Handle", "svcctl.svcctl_EnumServicesStatusA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_services_returned,
+         { "Services Returned", "svcctl.svcctl_EnumServicesStatusW.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_password_size,
+         { "Password Size", "svcctl.svcctl_CreateServiceW.password_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfig2A_info,
+         { "Info", "svcctl.svcctl_ChangeServiceConfig2A.info", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameA_handle,
+         { "Handle", "svcctl.svcctl_GetServiceDisplayNameA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerA_MachineName,
+         { "Machinename", "svcctl.svcctl_OpenSCManagerA.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_service_type,
+         { "Service Type", "svcctl.QUERY_SERVICE_CONFIG.service_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_STOP,
+         { "Svcctl Accept Stop", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_STOP", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_STOP_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_svcctl_SERVICE_FAILURE_ACTIONS_command,
+         { "Command", "svcctl.SERVICE_FAILURE_ACTIONS.command", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE,
+         { "Sc Right Svc Pause Continue", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_PAUSE_CONTINUE", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_PAUSE_CONTINUE_tfs), ( 0x0040 ), NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_type,
+         { "Type", "svcctl.SERVICE_STATUS.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_LoadOrderGroupKey,
+         { "Loadordergroupkey", "svcctl.svcctl_CreateServiceA.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_handle,
+         { "Handle", "svcctl.svcctl_EnumServicesStatusW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceA_access_mask,
+         { "Access Mask", "svcctl.svcctl_OpenServiceA.access_mask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesA_service,
+         { "Service", "svcctl.svcctl_EnumDependentServicesA.service", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusW_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceLockStatusW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SetServiceObjectSecurity_offered,
+         { "Offered", "svcctl.svcctl_SetServiceObjectSecurity.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_needed,
+         { "Needed", "svcctl.svcctl_EnumServicesStatusW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_dependencies,
+         { "Dependencies", "svcctl.svcctl_CreateServiceA.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_win32_exit_code,
+         { "Win32 Exit Code", "svcctl.SERVICE_STATUS.win32_exit_code", FT_UINT32, BASE_DEC, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigW_query,
+         { "Query", "svcctl.svcctl_QueryServiceConfigW.query", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_HARDWAREPROFILECHANGE,
+         { "Svcctl Accept Hardwareprofilechange", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_HARDWAREPROFILECHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_HARDWAREPROFILECHANGE_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatusEx_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceStatusEx.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_password,
+         { "Password", "svcctl.svcctl_CreateServiceA.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusA_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceLockStatusA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusA_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceLockStatusA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerA_DatabaseName,
+         { "Databasename", "svcctl.svcctl_OpenSCManagerA.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_LockServiceDatabase_lock,
+         { "Lock", "svcctl.svcctl_LockServiceDatabase.lock", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_wait_hint,
+         { "Wait Hint", "svcctl.SERVICE_STATUS.wait_hint", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG,
+         { "Sc Right Svc Query Config", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_QUERY_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_QUERY_CONFIG_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_SetServiceObjectSecurity_buffer,
+         { "Buffer", "svcctl.svcctl_SetServiceObjectSecurity.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_start_type,
+         { "Start Type", "svcctl.QUERY_SERVICE_CONFIG.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_SHUTDOWN,
+         { "Svcctl Accept Shutdown", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_SHUTDOWN", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_SHUTDOWN_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_POWEREVENT,
+         { "Svcctl Accept Powerevent", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_POWEREVENT", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_POWEREVENT_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_svcctl_SERVICE_FAILURE_ACTIONS_actions,
+         { "Actions", "svcctl.SERVICE_FAILURE_ACTIONS.actions", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_start_type,
+         { "Start Type", "svcctl.svcctl_ChangeServiceConfigW.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsW_handle,
+         { "Handle", "svcctl.svcctl_SCSetServiceBitsW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_display_name,
+         { "Display Name", "svcctl.svcctl_ChangeServiceConfigA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_error_control,
+         { "Error Control", "svcctl.QUERY_SERVICE_CONFIG.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceW_ServiceName,
+         { "Servicename", "svcctl.svcctl_OpenServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_load_order_group,
+         { "Load Order Group", "svcctl.svcctl_ChangeServiceConfigA.load_order_group", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_binary_path,
+         { "Binary Path", "svcctl.svcctl_CreateServiceA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_state,
+         { "State", "svcctl.EnumServicesStatusExW.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesW_service_status,
+         { "Service Status", "svcctl.svcctl_EnumDependentServicesW.service_status", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_ServiceName,
+         { "Servicename", "svcctl.svcctl_CreateServiceW.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_state,
+         { "State", "svcctl.svcctl_EnumServicesStatusW.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_opnum,
+         { "Operation", "svcctl.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_executablepath,
+         { "Executablepath", "svcctl.QUERY_SERVICE_CONFIG.executablepath", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_start_type,
+         { "Start Type", "svcctl.svcctl_CreateServiceW.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceW_handle,
+         { "Handle", "svcctl.svcctl_OpenServiceW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_tag_id,
+         { "Tag Id", "svcctl.svcctl_ChangeServiceConfigA.tag_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_display_name,
+         { "Display Name", "svcctl.svcctl_ChangeServiceConfigW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_LoadOrderGroupKey,
+         { "Loadordergroupkey", "svcctl.svcctl_CreateServiceW.LoadOrderGroupKey", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusW_service,
+         { "Service", "svcctl.svcctl_EnumServicesStatusW.service", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_service_start_name,
+         { "Service Start Name", "svcctl.svcctl_CreateServiceW.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_resume_handle,
+         { "Resume Handle", "svcctl.svcctl_EnumServicesStatusA.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceA_ServiceName,
+         { "Servicename", "svcctl.svcctl_OpenServiceA.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameW_display_name,
+         { "Display Name", "svcctl.svcctl_GetServiceDisplayNameW.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceW_scmanager_handle,
+         { "Scmanager Handle", "svcctl.svcctl_OpenServiceW.scmanager_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameW_key_name,
+         { "Key Name", "svcctl.svcctl_GetServiceKeyNameW.key_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2W_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceConfig2W.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerW_handle,
+         { "Handle", "svcctl.svcctl_OpenSCManagerW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsA_bitson,
+         { "Bitson", "svcctl.svcctl_SCSetServiceBitsA.bitson", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2W_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceConfig2W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG,
+         { "Sc Right Svc Change Config", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_CHANGE_CONFIG", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_CHANGE_CONFIG_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_handle,
+         { "Handle", "svcctl.svcctl_CreateServiceA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceObjectSecurity_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceObjectSecurity.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_scmanager_handle,
+         { "Scmanager Handle", "svcctl.svcctl_CreateServiceW.scmanager_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigW_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceConfigW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SC_ACTION_delay,
+         { "Delay", "svcctl.SC_ACTION.delay", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfig2W_handle,
+         { "Handle", "svcctl.svcctl_ChangeServiceConfig2W.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_TagId,
+         { "Tagid", "svcctl.svcctl_CreateServiceA.TagId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_desired_access,
+         { "Desired Access", "svcctl.svcctl_CreateServiceW.desired_access", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_binary_path,
+         { "Binary Path", "svcctl.svcctl_ChangeServiceConfigA.binary_path", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatusEx_buffer,
+         { "Buffer", "svcctl.svcctl_QueryServiceStatusEx.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigW_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceConfigW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_dependencies,
+         { "Dependencies", "svcctl.svcctl_ChangeServiceConfigW.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesW_services_returned,
+         { "Services Returned", "svcctl.svcctl_EnumDependentServicesW.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_LOCK_STATUS_is_locked,
+         { "Is Locked", "svcctl.SERVICE_LOCK_STATUS.is_locked", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceObjectSecurity_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceObjectSecurity.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SetServiceObjectSecurity_security_flags,
+         { "Security Flags", "svcctl.svcctl_SetServiceObjectSecurity.security_flags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigA_handle,
+         { "Handle", "svcctl.svcctl_QueryServiceConfigA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2A_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceConfig2A.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameA_service_name,
+         { "Service Name", "svcctl.svcctl_GetServiceDisplayNameA.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatusEx_info_level,
+         { "Info Level", "svcctl.svcctl_QueryServiceStatusEx.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StatusLevel_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_state,
+         { "State", "svcctl.EnumServicesStatusExA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_DESCRIPTION_description,
+         { "Description", "svcctl.SERVICE_DESCRIPTION.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_ENUM_SERVICE_STATUSA_status,
+         { "Status", "svcctl.ENUM_SERVICE_STATUSA.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_state,
+         { "State", "svcctl.SERVICE_STATUS.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceStatus_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE,
+         { "Sc Right Mgr Enumerate Service", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_ENUMERATE_SERVICE", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_ENUMERATE_SERVICE_tfs), ( 0x0004 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceObjectSecurity_security_flags,
+         { "Security Flags", "svcctl.svcctl_QueryServiceObjectSecurity.security_flags", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatus_service_status,
+         { "Service Status", "svcctl.svcctl_QueryServiceStatus.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceA_scmanager_handle,
+         { "Scmanager Handle", "svcctl.svcctl_OpenServiceA.scmanager_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_dependencies,
+         { "Dependencies", "svcctl.svcctl_CreateServiceW.dependencies", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_needed,
+         { "Needed", "svcctl.EnumServicesStatusExA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_resume_handle,
+         { "Resume Handle", "svcctl.EnumServicesStatusExA.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_group_name,
+         { "Group Name", "svcctl.EnumServicesStatusExA.group_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerW_DatabaseName,
+         { "Databasename", "svcctl.svcctl_OpenSCManagerW.DatabaseName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2W_buffer,
+         { "Buffer", "svcctl.svcctl_QueryServiceConfig2W.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_dependencies_size,
+         { "Dependencies Size", "svcctl.svcctl_CreateServiceW.dependencies_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceDisplayNameW_handle,
+         { "Handle", "svcctl.svcctl_GetServiceDisplayNameW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_needed,
+         { "Needed", "svcctl.svcctl_EnumServicesStatusA.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_group_name,
+         { "Group Name", "svcctl.EnumServicesStatusExW.group_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_service_start_name,
+         { "Service Start Name", "svcctl.svcctl_ChangeServiceConfigA.service_start_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_displayname,
+         { "Displayname", "svcctl.QUERY_SERVICE_CONFIG.displayname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2W_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceConfig2W.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_TagId,
+         { "Tagid", "svcctl.svcctl_CreateServiceW.TagId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfig2W_info,
+         { "Info", "svcctl.svcctl_ChangeServiceConfig2W.info", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_ENUM_SERVICE_STATUSA_display_name,
+         { "Display Name", "svcctl.ENUM_SERVICE_STATUSA.display_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_UnlockServiceDatabase_lock,
+         { "Lock", "svcctl.svcctl_UnlockServiceDatabase.lock", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceW_error_control,
+         { "Error Control", "svcctl.svcctl_CreateServiceW.error_control", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ErrorControl_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_SC_ACTION_type,
+         { "Type", "svcctl.SC_ACTION.type", FT_UINT32, BASE_DEC, VALS(svcctl_SC_ACTION_TYPE_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CloseServiceHandle_handle,
+         { "Handle", "svcctl.svcctl_CloseServiceHandle.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK,
+         { "Sc Right Mgr Lock", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_LOCK", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_LOCK_tfs), ( 0x0008 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_PARAMCHANGE,
+         { "Svcctl Accept Paramchange", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_PARAMCHANGE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_PARAMCHANGE_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceStatusEx_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceStatusEx.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_needed,
+         { "Needed", "svcctl.EnumServicesStatusExW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_scmanager,
+         { "Scmanager", "svcctl.EnumServicesStatusExW.scmanager", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_services,
+         { "Services", "svcctl.EnumServicesStatusExW.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusW_lock_status,
+         { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusW.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameA_display_name_length,
+         { "Display Name Length", "svcctl.svcctl_GetServiceKeyNameA.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerW_MachineName,
+         { "Machinename", "svcctl.svcctl_OpenSCManagerW.MachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesA_services_returned,
+         { "Services Returned", "svcctl.svcctl_EnumDependentServicesA.services_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_services,
+         { "Services", "svcctl.EnumServicesStatusExA.services", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceObjectSecurity_buffer,
+         { "Buffer", "svcctl.svcctl_QueryServiceObjectSecurity.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfigA_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceConfigA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsW_bits,
+         { "Bits", "svcctl.svcctl_SCSetServiceBitsW.bits", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusW_needed,
+         { "Needed", "svcctl.svcctl_QueryServiceLockStatusW.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_START,
+         { "Sc Right Svc Start", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_START", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_START_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ArgumentString_string,
+         { "String", "svcctl.svcctl_ArgumentString.string", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesA_state,
+         { "State", "svcctl.svcctl_EnumDependentServicesA.state", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ServiceState_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_LOCK_STATUS_lock_owner,
+         { "Lock Owner", "svcctl.SERVICE_LOCK_STATUS.lock_owner", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenServiceW_access_mask,
+         { "Access Mask", "svcctl.svcctl_OpenServiceW.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_CreateServiceA_ServiceName,
+         { "Servicename", "svcctl.svcctl_CreateServiceA.ServiceName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_service_returned,
+         { "Service Returned", "svcctl.EnumServicesStatusExA.service_returned", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE,
+         { "Sc Right Mgr Create Service", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_CREATE_SERVICE", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_CREATE_SERVICE_tfs), ( 0x0002 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_password,
+         { "Password", "svcctl.svcctl_ChangeServiceConfigA.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_LOCK_STATUS_lock_duration,
+         { "Lock Duration", "svcctl.SERVICE_LOCK_STATUS.lock_duration", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_dependencies,
+         { "Dependencies", "svcctl.QUERY_SERVICE_CONFIG.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusA_lock_status,
+         { "Lock Status", "svcctl.svcctl_QueryServiceLockStatusA.lock_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlService_service_status,
+         { "Service Status", "svcctl.svcctl_ControlService.service_status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL,
+         { "Sc Right Svc User Defined Control", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_USER_DEFINED_CONTROL", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_USER_DEFINED_CONTROL_tfs), ( 0x0100 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_start_type,
+         { "Start Type", "svcctl.svcctl_ChangeServiceConfigA.start_type", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_StartType_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_StartServiceA_Arguments,
+         { "Arguments", "svcctl.svcctl_StartServiceA.Arguments", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceConfig2A_info_level,
+         { "Info Level", "svcctl.svcctl_QueryServiceConfig2A.info_level", FT_UINT32, BASE_DEC, VALS(svcctl_svcctl_ConfigLevel_vals), 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP,
+         { "Sc Right Svc Stop", "svcctl.svcctl_ServiceAccessMask.SC_RIGHT_SVC_STOP", FT_BOOLEAN, 32, TFS(&svcctl_ServiceAccessMask_SC_RIGHT_SVC_STOP_tfs), ( 0x0020 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_QueryServiceLockStatusA_offered,
+         { "Offered", "svcctl.svcctl_QueryServiceLockStatusA.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_PROCESS_status,
+         { "Status", "svcctl.SERVICE_STATUS_PROCESS.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_check_point,
+         { "Check Point", "svcctl.SERVICE_STATUS.check_point", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_QUERY_SERVICE_CONFIG_startname,
+         { "Startname", "svcctl.QUERY_SERVICE_CONFIG.startname", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_controls_accepted,
+         { "Controls Accepted", "svcctl.SERVICE_STATUS.controls_accepted", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameW_handle,
+         { "Handle", "svcctl.svcctl_GetServiceKeyNameW.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_FAILURE_ACTIONS_reset_period,
+         { "Reset Period", "svcctl.SERVICE_FAILURE_ACTIONS.reset_period", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT,
+         { "Sc Right Mgr Connect", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_CONNECT", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_CONNECT_tfs), ( 0x0001 ), NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_resume_handle,
+         { "Resume Handle", "svcctl.EnumServicesStatusExW.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_service_exit_code,
+         { "Service Exit Code", "svcctl.SERVICE_STATUS.service_exit_code", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_ENUM_SERVICE_STATUSW_service_name,
+         { "Service Name", "svcctl.ENUM_SERVICE_STATUSW.service_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsW_bitson,
+         { "Bitson", "svcctl.svcctl_SCSetServiceBitsW.bitson", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_ENUM_SERVICE_STATUSW_status,
+         { "Status", "svcctl.ENUM_SERVICE_STATUSW.status", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_SCSetServiceBitsA_immediate,
+         { "Immediate", "svcctl.svcctl_SCSetServiceBitsA.immediate", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_GetServiceKeyNameW_display_name_length,
+         { "Display Name Length", "svcctl.svcctl_GetServiceKeyNameW.display_name_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigA_dependencies,
+         { "Dependencies", "svcctl.svcctl_ChangeServiceConfigA.dependencies", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExA_scmanager,
+         { "Scmanager", "svcctl.EnumServicesStatusExA.scmanager", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerA_access_mask,
+         { "Access Mask", "svcctl.svcctl_OpenSCManagerA.access_mask", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_EnumServicesStatusExW_offered,
+         { "Offered", "svcctl.EnumServicesStatusExW.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumDependentServicesW_service,
+         { "Service", "svcctl.svcctl_EnumDependentServicesW.service", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_OpenSCManagerA_handle,
+         { "Handle", "svcctl.svcctl_OpenSCManagerA.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfig2A_info_level,
+         { "Info Level", "svcctl.svcctl_ChangeServiceConfig2A.info_level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_SERVICE_STATUS_PROCESS_process_id,
+         { "Process Id", "svcctl.SERVICE_STATUS_PROCESS.process_id", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_StartServiceW_Arguments,
+         { "Arguments", "svcctl.svcctl_StartServiceW.Arguments", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_ControlsAccepted_SVCCTL_ACCEPT_PAUSE_CONTINUE,
+         { "Svcctl Accept Pause Continue", "svcctl.svcctl_ControlsAccepted.SVCCTL_ACCEPT_PAUSE_CONTINUE", FT_BOOLEAN, 32, TFS(&svcctl_ControlsAccepted_SVCCTL_ACCEPT_PAUSE_CONTINUE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_LockServiceDatabase_handle,
+         { "Handle", "svcctl.svcctl_LockServiceDatabase.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS,
+         { "Sc Right Mgr Query Lock Status", "svcctl.svcctl_MgrAccessMask.SC_RIGHT_MGR_QUERY_LOCK_STATUS", FT_BOOLEAN, 32, TFS(&svcctl_MgrAccessMask_SC_RIGHT_MGR_QUERY_LOCK_STATUS_tfs), ( 0x0010 ), NULL, HFILL }},
+       { &hf_svcctl_svcctl_ChangeServiceConfigW_password,
+         { "Password", "svcctl.svcctl_ChangeServiceConfigW.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_svcctl_svcctl_EnumServicesStatusA_type,
+         { "Type", "svcctl.svcctl_EnumServicesStatusA.type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_svcctl,
+               &ett_svcctl_SERVICE_LOCK_STATUS,
+               &ett_svcctl_svcctl_ControlsAccepted,
+               &ett_svcctl_SERVICE_STATUS,
+               &ett_svcctl_SERVICE_STATUS_PROCESS,
+               &ett_svcctl_ENUM_SERVICE_STATUSW,
+               &ett_svcctl_ENUM_SERVICE_STATUSA,
+               &ett_svcctl_svcctl_MgrAccessMask,
+               &ett_svcctl_svcctl_ServiceAccessMask,
+               &ett_svcctl_QUERY_SERVICE_CONFIG,
+               &ett_svcctl_svcctl_ArgumentString,
+               &ett_svcctl_SERVICE_DESCRIPTION,
+               &ett_svcctl_SC_ACTION,
+               &ett_svcctl_SERVICE_FAILURE_ACTIONS,
+       };
+
+       proto_dcerpc_svcctl = proto_register_protocol("Service Control", "SVCCTL", "svcctl");
+       proto_register_field_array(proto_dcerpc_svcctl, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_svcctl(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_svcctl, ett_dcerpc_svcctl,
+               &uuid_dcerpc_svcctl, ver_dcerpc_svcctl,
+               svcctl_dissectors, hf_svcctl_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.h b/bin/default/librpc/gen_ndr/packet-dcerpc-svcctl.h
new file mode 100644 (file)
index 0000000..fcddfe4
--- /dev/null
@@ -0,0 +1,123 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/svcctl.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/svcctl.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-misc.h"
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_SVCCTL_H
+#define __PACKET_DCERPC_SVCCTL_H
+
+#define SVCCTL_ACCEPT_NONE     ( 0x00000000 )
+
+#define SERVICE_TYPE_KERNEL_DRIVER     ( 0x01 )
+
+#define SERVICE_TYPE_FS_DRIVER ( 0x02 )
+
+#define SERVICE_TYPE_ADAPTER   ( 0x04 )
+
+#define SERVICE_TYPE_RECOGNIZER_DRIVER ( 0x08 )
+
+#define SERVICE_TYPE_DRIVER    ( SERVICE_TYPE_KERNEL_DRIVER|SERVICE_TYPE_FS_DRIVER|SERVICE_TYPE_RECOGNIZER_DRIVER )
+
+#define SERVICE_TYPE_WIN32_OWN_PROCESS ( 0x10 )
+
+#define SERVICE_TYPE_WIN32_SHARE_PROCESS       ( 0x20 )
+
+#define SERVICE_TYPE_WIN32     ( SERVICE_TYPE_WIN32_OWN_PROCESS|SERVICE_TYPE_WIN32_SHARE_PROCESS )
+
+#define SERVICE_TYPE_INTERACTIVE_PROCESS       ( 0x100 )
+
+#define SC_MANAGER_READ_ACCESS ( (SEC_STD_READ_CONTROL|SC_RIGHT_MGR_CONNECT|SC_RIGHT_MGR_ENUMERATE_SERVICE|SC_RIGHT_MGR_QUERY_LOCK_STATUS) )
+
+#define SC_MANAGER_EXECUTE_ACCESS      ( SC_MANAGER_READ_ACCESS )
+
+#define SC_MANAGER_WRITE_ACCESS        ( (SEC_STD_REQUIRED|SC_MANAGER_READ_ACCESS|SC_RIGHT_MGR_CREATE_SERVICE|SC_RIGHT_MGR_LOCK|SC_RIGHT_MGR_MODIFY_BOOT_CONFIG) )
+
+#define SC_MANAGER_ALL_ACCESS  ( SC_MANAGER_WRITE_ACCESS )
+
+#define SERVICE_READ_ACCESS    ( (SEC_STD_READ_CONTROL|SC_RIGHT_SVC_ENUMERATE_DEPENDENTS|SC_RIGHT_SVC_INTERROGATE|SC_RIGHT_SVC_QUERY_CONFIG|SC_RIGHT_SVC_QUERY_STATUS|SC_RIGHT_SVC_USER_DEFINED_CONTROL) )
+
+#define SERVICE_EXECUTE_ACCESS ( (SERVICE_READ_ACCESS|SC_RIGHT_SVC_START|SC_RIGHT_SVC_STOP|SC_RIGHT_SVC_PAUSE_CONTINUE) )
+
+#define SERVICE_WRITE_ACCESS   ( (SEC_STD_REQUIRED|SERVICE_READ_ACCESS|SERVICE_EXECUTE_ACCESS|SC_RIGHT_SVC_CHANGE_CONFIG) )
+
+#define SERVICE_ALL_ACCESS     ( SERVICE_WRITE_ACCESS )
+
+#define SC_MAX_ARGUMENT_LENGTH ( 1024 )
+
+#define SC_MAX_ARGUMENTS       ( 1024 )
+
+int svcctl_dissect_struct_SERVICE_LOCK_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SVCCTL_STATE_UNKNOWN (0x00000000)
+#define SVCCTL_STOPPED (0x00000001)
+#define SVCCTL_START_PENDING (0x00000002)
+#define SVCCTL_STOP_PENDING (0x00000003)
+#define SVCCTL_RUNNING (0x00000004)
+#define SVCCTL_CONTINUE_PENDING (0x00000005)
+#define SVCCTL_PAUSE_PENDING (0x00000006)
+#define SVCCTL_PAUSED (0x00000007)
+extern const value_string svcctl_svcctl_ServiceStatus_vals[];
+int svcctl_dissect_enum_ServiceStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int svcctl_dissect_bitmap_ControlsAccepted(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_SERVICE_STATUS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_SERVICE_STATUS_PROCESS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_ENUM_SERVICE_STATUSW(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_ENUM_SERVICE_STATUSA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SVCCTL_CONTROL_STOP (0x00000001)
+#define SVCCTL_CONTROL_PAUSE (0x00000002)
+#define SVCCTL_CONTROL_CONTINUE (0x00000003)
+#define SVCCTL_CONTROL_INTERROGATE (0x00000004)
+#define SVCCTL_CONTROL_SHUTDOWN (0x00000005)
+extern const value_string svcctl_SERVICE_CONTROL_vals[];
+int svcctl_dissect_enum_SERVICE_CONTROL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SVCCTL_SVC_ERROR_IGNORE (0x00000000)
+#define SVCCTL_SVC_ERROR_NORMAL (0x00000001)
+#define SVCCTL_SVC_ERROR_CRITICAL (0x00000002)
+#define SVCCTL_SVC_ERROR_SEVERE (0x00000003)
+extern const value_string svcctl_svcctl_ErrorControl_vals[];
+int svcctl_dissect_enum_ErrorControl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SVCCTL_BOOT_START (0x00000000)
+#define SVCCTL_SYSTEM_START (0x00000001)
+#define SVCCTL_AUTO_START (0x00000002)
+#define SVCCTL_DEMAND_START (0x00000003)
+#define SVCCTL_DISABLED (0x00000004)
+extern const value_string svcctl_svcctl_StartType_vals[];
+int svcctl_dissect_enum_StartType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define SERVICE_STATE_ACTIVE (0x00000001)
+#define SERVICE_STATE_INACTIVE (0x00000002)
+#define SERVICE_STATE_ALL ((SERVICE_STATE_ACTIVE|SERVICE_STATE_INACTIVE))
+extern const value_string svcctl_svcctl_ServiceState_vals[];
+int svcctl_dissect_enum_ServiceState(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int svcctl_dissect_bitmap_MgrAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_bitmap_ServiceAccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_QUERY_SERVICE_CONFIG(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_ArgumentString(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SERVICE_CONFIG_DESCRIPTION (0x00000001)
+#define SERVICE_CONFIG_FAILURE_ACTIONS (0x00000002)
+extern const value_string svcctl_svcctl_ConfigLevel_vals[];
+int svcctl_dissect_enum_ConfigLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int svcctl_dissect_struct_SERVICE_DESCRIPTION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SC_ACTION_NONE (0)
+#define SC_ACTION_RESTART (1)
+#define SC_ACTION_REBOOT (2)
+#define SC_ACTION_RUN_COMMAND (3)
+extern const value_string svcctl_SC_ACTION_TYPE_vals[];
+int svcctl_dissect_enum_SC_ACTION_TYPE(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int svcctl_dissect_struct_SC_ACTION(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int svcctl_dissect_struct_SERVICE_FAILURE_ACTIONS(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define SVC_STATUS_PROCESS_INFO (0x00000000)
+extern const value_string svcctl_svcctl_StatusLevel_vals[];
+int svcctl_dissect_enum_StatusLevel(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#endif /* __PACKET_DCERPC_SVCCTL_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-trkwks.c b/bin/default/librpc/gen_ndr/packet-dcerpc-trkwks.c
new file mode 100644 (file)
index 0000000..f4b3da1
--- /dev/null
@@ -0,0 +1,106 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/trkwks.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/trkwks.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-trkwks.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_trkwks = -1;
+
+
+/* Header field declarations */
+static gint hf_trkwks_opnum = -1;
+static gint hf_trkwks_werror = -1;
+
+static gint proto_dcerpc_trkwks = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_trkwks = {
+       0x300f3532, 0x38cc, 0x11d0,
+       { 0xa3, 0xf0, 0x00, 0x20, 0xaf, 0x6b, 0x0a, 0xdd }
+};
+static guint16 ver_dcerpc_trkwks = 1;
+
+
+/* IDL: WERROR trkwks_Unknown0( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+trkwks_dissect_Unknown0_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="Unknown0";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_trkwks_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+trkwks_dissect_Unknown0_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="Unknown0";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector trkwks_dissectors[] = {
+       { 0, "Unknown0",
+          trkwks_dissect_Unknown0_request, trkwks_dissect_Unknown0_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_trkwks(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_trkwks_opnum,
+         { "Operation", "trkwks.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_trkwks_werror,
+         { "Windows Error", "trkwks.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_trkwks,
+       };
+
+       proto_dcerpc_trkwks = proto_register_protocol("Distributed Key Tracking Service", "TRKWKS", "trkwks");
+       proto_register_field_array(proto_dcerpc_trkwks, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_trkwks(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_trkwks, ett_dcerpc_trkwks,
+               &uuid_dcerpc_trkwks, ver_dcerpc_trkwks,
+               trkwks_dissectors, hf_trkwks_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-trkwks.h b/bin/default/librpc/gen_ndr/packet-dcerpc-trkwks.h
new file mode 100644 (file)
index 0000000..4cfe180
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/trkwks.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/trkwks.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_TRKWKS_H
+#define __PACKET_DCERPC_TRKWKS_H
+
+#endif /* __PACKET_DCERPC_TRKWKS_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-unixinfo.c b/bin/default/librpc/gen_ndr/packet-dcerpc-unixinfo.c
new file mode 100644 (file)
index 0000000..6d28f90
--- /dev/null
@@ -0,0 +1,530 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/unixinfo.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/unixinfo.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-unixinfo.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_unixinfo = -1;
+static gint ett_unixinfo_unixinfo_GetPWUidInfo = -1;
+
+
+/* Header field declarations */
+static gint hf_unixinfo_unixinfo_GidToSid_gid = -1;
+static gint hf_unixinfo_unixinfo_GetPWUid_uids = -1;
+static gint hf_unixinfo_unixinfo_UidToSid_sid = -1;
+static gint hf_unixinfo_unixinfo_SidToUid_sid = -1;
+static gint hf_unixinfo_unixinfo_GidToSid_sid = -1;
+static gint hf_unixinfo_opnum = -1;
+static gint hf_unixinfo_status = -1;
+static gint hf_unixinfo_unixinfo_SidToGid_sid = -1;
+static gint hf_unixinfo_unixinfo_GetPWUid_count = -1;
+static gint hf_unixinfo_unixinfo_UidToSid_uid = -1;
+static gint hf_unixinfo_unixinfo_GetPWUid_infos = -1;
+static gint hf_unixinfo_unixinfo_SidToGid_gid = -1;
+static gint hf_unixinfo_unixinfo_GetPWUidInfo_shell = -1;
+static gint hf_unixinfo_unixinfo_GetPWUidInfo_homedir = -1;
+static gint hf_unixinfo_unixinfo_GetPWUidInfo_status = -1;
+static gint hf_unixinfo_unixinfo_SidToUid_uid = -1;
+
+static gint proto_dcerpc_unixinfo = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_unixinfo = {
+       0x9c54e310, 0xa955, 0x4885,
+       { 0xbd, 0x31, 0x78, 0x78, 0x71, 0x47, 0xdf, 0xa6 }
+};
+static guint16 ver_dcerpc_unixinfo = 0;
+
+static int unixinfo_dissect_element_GetPWUidInfo_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUidInfo_homedir(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUidInfo_shell(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_SidToUid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_SidToUid_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_SidToUid_uid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_UidToSid_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_UidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_UidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_SidToGid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_SidToGid_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_SidToGid_gid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GidToSid_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUid_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUid_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUid_uids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUid_uids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUid_infos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int unixinfo_dissect_element_GetPWUid_infos_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        NTSTATUS status; */
+/* IDL:        [charset(UTF8)] uint8 homedir[*]; */
+/* IDL:        [charset(UTF8)] uint8 shell[*]; */
+/* IDL: } */
+
+static int
+unixinfo_dissect_element_GetPWUidInfo_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_GetPWUidInfo_status, 0);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUidInfo_homedir(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_unixinfo_unixinfo_GetPWUidInfo_homedir, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUidInfo_shell(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint8), hf_unixinfo_unixinfo_GetPWUidInfo_shell, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+unixinfo_dissect_struct_GetPWUidInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_unixinfo_unixinfo_GetPWUidInfo);
+       }
+       
+       offset = unixinfo_dissect_element_GetPWUidInfo_status(tvb, offset, pinfo, tree, drep);
+
+       offset = unixinfo_dissect_element_GetPWUidInfo_homedir(tvb, offset, pinfo, tree, drep);
+
+       offset = unixinfo_dissect_element_GetPWUidInfo_shell(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_SidToUid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = unixinfo_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_unixinfo_unixinfo_SidToUid_sid,0);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_SidToUid_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_SidToUid_uid_, NDR_POINTER_REF, "Pointer to Uid (hyper)",hf_unixinfo_unixinfo_SidToUid_uid);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_SidToUid_uid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_SidToUid_uid, NULL);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS unixinfo_SidToUid( */
+/* IDL: [in] dom_sid sid, */
+/* IDL: [out] [ref] hyper *uid */
+/* IDL: ); */
+
+static int
+unixinfo_dissect_SidToUid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SidToUid";
+       offset = unixinfo_dissect_element_SidToUid_uid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_unixinfo_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_SidToUid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SidToUid";
+       offset = unixinfo_dissect_element_SidToUid_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_UidToSid_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_UidToSid_uid, NULL);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_UidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_UidToSid_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid)",hf_unixinfo_unixinfo_UidToSid_sid);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_UidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = unixinfo_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_unixinfo_unixinfo_UidToSid_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS unixinfo_UidToSid( */
+/* IDL: [in] hyper uid, */
+/* IDL: [out] [ref] dom_sid *sid */
+/* IDL: ); */
+
+static int
+unixinfo_dissect_UidToSid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="UidToSid";
+       offset = unixinfo_dissect_element_UidToSid_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_unixinfo_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_UidToSid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="UidToSid";
+       offset = unixinfo_dissect_element_UidToSid_uid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_SidToGid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = unixinfo_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_unixinfo_unixinfo_SidToGid_sid,0);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_SidToGid_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_SidToGid_gid_, NDR_POINTER_REF, "Pointer to Gid (hyper)",hf_unixinfo_unixinfo_SidToGid_gid);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_SidToGid_gid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_SidToGid_gid, NULL);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS unixinfo_SidToGid( */
+/* IDL: [in] dom_sid sid, */
+/* IDL: [out] [ref] hyper *gid */
+/* IDL: ); */
+
+static int
+unixinfo_dissect_SidToGid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SidToGid";
+       offset = unixinfo_dissect_element_SidToGid_gid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_unixinfo_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_SidToGid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SidToGid";
+       offset = unixinfo_dissect_element_SidToGid_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GidToSid_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_GidToSid_gid, NULL);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GidToSid_sid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_GidToSid_sid_, NDR_POINTER_REF, "Pointer to Sid (dom_sid)",hf_unixinfo_unixinfo_GidToSid_sid);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GidToSid_sid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = unixinfo_dissect_struct_dom_sid(tvb,offset,pinfo,tree,drep,hf_unixinfo_unixinfo_GidToSid_sid,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS unixinfo_GidToSid( */
+/* IDL: [in] hyper gid, */
+/* IDL: [out] [ref] dom_sid *sid */
+/* IDL: ); */
+
+static int
+unixinfo_dissect_GidToSid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GidToSid";
+       offset = unixinfo_dissect_element_GidToSid_sid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_unixinfo_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_GidToSid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GidToSid";
+       offset = unixinfo_dissect_element_GidToSid_gid(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUid_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_GetPWUid_count_, NDR_POINTER_REF, "Pointer to Count (uint32)",hf_unixinfo_unixinfo_GetPWUid_count);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUid_count_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_GetPWUid_count, 0);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUid_uids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_GetPWUid_uids_);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUid_uids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_unixinfo_unixinfo_GetPWUid_uids, NULL);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUid_infos(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, unixinfo_dissect_element_GetPWUid_infos_);
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_element_GetPWUid_infos_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = unixinfo_dissect_struct_GetPWUidInfo(tvb,offset,pinfo,tree,drep,hf_unixinfo_unixinfo_GetPWUid_infos,0);
+
+       return offset;
+}
+
+/* IDL: NTSTATUS unixinfo_GetPWUid( */
+/* IDL: [out] [ref] [in] [range(0,1023)] uint32 *count, */
+/* IDL: [in] [size_is(*count)] hyper uids[*], */
+/* IDL: [out] [size_is(*count)] unixinfo_GetPWUidInfo infos[*] */
+/* IDL: ); */
+
+static int
+unixinfo_dissect_GetPWUid_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetPWUid";
+       offset = unixinfo_dissect_element_GetPWUid_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = unixinfo_dissect_element_GetPWUid_infos(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ntstatus(tvb, offset, pinfo, tree, drep, hf_unixinfo_status, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, NT_errors, "Unknown NT status 0x%08x"));
+
+       return offset;
+}
+
+static int
+unixinfo_dissect_GetPWUid_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetPWUid";
+       offset = unixinfo_dissect_element_GetPWUid_count(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = unixinfo_dissect_element_GetPWUid_uids(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector unixinfo_dissectors[] = {
+       { 0, "SidToUid",
+          unixinfo_dissect_SidToUid_request, unixinfo_dissect_SidToUid_response},
+       { 1, "UidToSid",
+          unixinfo_dissect_UidToSid_request, unixinfo_dissect_UidToSid_response},
+       { 2, "SidToGid",
+          unixinfo_dissect_SidToGid_request, unixinfo_dissect_SidToGid_response},
+       { 3, "GidToSid",
+          unixinfo_dissect_GidToSid_request, unixinfo_dissect_GidToSid_response},
+       { 4, "GetPWUid",
+          unixinfo_dissect_GetPWUid_request, unixinfo_dissect_GetPWUid_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_unixinfo(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_unixinfo_unixinfo_GidToSid_gid,
+         { "Gid", "unixinfo.unixinfo_GidToSid.gid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GetPWUid_uids,
+         { "Uids", "unixinfo.unixinfo_GetPWUid.uids", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_UidToSid_sid,
+         { "Sid", "unixinfo.unixinfo_UidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_SidToUid_sid,
+         { "Sid", "unixinfo.unixinfo_SidToUid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GidToSid_sid,
+         { "Sid", "unixinfo.unixinfo_GidToSid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_opnum,
+         { "Operation", "unixinfo.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_status,
+         { "NT Error", "unixinfo.status", FT_UINT32, BASE_HEX, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_SidToGid_sid,
+         { "Sid", "unixinfo.unixinfo_SidToGid.sid", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GetPWUid_count,
+         { "Count", "unixinfo.unixinfo_GetPWUid.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_UidToSid_uid,
+         { "Uid", "unixinfo.unixinfo_UidToSid.uid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GetPWUid_infos,
+         { "Infos", "unixinfo.unixinfo_GetPWUid.infos", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_SidToGid_gid,
+         { "Gid", "unixinfo.unixinfo_SidToGid.gid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GetPWUidInfo_shell,
+         { "Shell", "unixinfo.unixinfo_GetPWUidInfo.shell", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GetPWUidInfo_homedir,
+         { "Homedir", "unixinfo.unixinfo_GetPWUidInfo.homedir", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_GetPWUidInfo_status,
+         { "Status", "unixinfo.unixinfo_GetPWUidInfo.status", FT_UINT32, BASE_DEC, VALS(NT_errors), 0, NULL, HFILL }},
+       { &hf_unixinfo_unixinfo_SidToUid_uid,
+         { "Uid", "unixinfo.unixinfo_SidToUid.uid", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_unixinfo,
+               &ett_unixinfo_unixinfo_GetPWUidInfo,
+       };
+
+       proto_dcerpc_unixinfo = proto_register_protocol("Unixinfo specific stuff", "UNIXINFO", "unixinfo");
+       proto_register_field_array(proto_dcerpc_unixinfo, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_unixinfo(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_unixinfo, ett_dcerpc_unixinfo,
+               &uuid_dcerpc_unixinfo, ver_dcerpc_unixinfo,
+               unixinfo_dissectors, hf_unixinfo_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-unixinfo.h b/bin/default/librpc/gen_ndr/packet-dcerpc-unixinfo.h
new file mode 100644 (file)
index 0000000..77a9179
--- /dev/null
@@ -0,0 +1,22 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/unixinfo.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/unixinfo.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_UNIXINFO_H
+#define __PACKET_DCERPC_UNIXINFO_H
+
+int unixinfo_dissect_struct_GetPWUidInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_UNIXINFO_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-w32time.c b/bin/default/librpc/gen_ndr/packet-dcerpc-w32time.c
new file mode 100644 (file)
index 0000000..7804f58
--- /dev/null
@@ -0,0 +1,160 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/w32time.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/w32time.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-w32time.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_w32time = -1;
+
+
+/* Header field declarations */
+static gint hf_w32time_werror = -1;
+static gint hf_w32time_opnum = -1;
+
+static gint proto_dcerpc_w32time = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_w32time = {
+       0x8fb6d884, 0x2388, 0x11d0,
+       { 0x8c, 0x35, 0x00, 0xc0, 0x4f, 0xda, 0x27, 0x95 }
+};
+static guint16 ver_dcerpc_w32time = 4;
+
+
+/* IDL: WERROR w32time_SyncTime( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+w32time_dissect_SyncTime_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SyncTime";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_w32time_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+w32time_dissect_SyncTime_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SyncTime";
+       return offset;
+}
+
+/* IDL: WERROR w32time_GetNetLogonServiceBits( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+w32time_dissect_GetNetLogonServiceBits_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetNetLogonServiceBits";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_w32time_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+w32time_dissect_GetNetLogonServiceBits_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetNetLogonServiceBits";
+       return offset;
+}
+
+/* IDL: WERROR w32time_QueryProviderStatus( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+w32time_dissect_QueryProviderStatus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryProviderStatus";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_w32time_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+w32time_dissect_QueryProviderStatus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryProviderStatus";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector w32time_dissectors[] = {
+       { 0, "SyncTime",
+          w32time_dissect_SyncTime_request, w32time_dissect_SyncTime_response},
+       { 1, "GetNetLogonServiceBits",
+          w32time_dissect_GetNetLogonServiceBits_request, w32time_dissect_GetNetLogonServiceBits_response},
+       { 2, "QueryProviderStatus",
+          w32time_dissect_QueryProviderStatus_request, w32time_dissect_QueryProviderStatus_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_w32time(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_w32time_werror,
+         { "Windows Error", "w32time.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_w32time_opnum,
+         { "Operation", "w32time.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_w32time,
+       };
+
+       proto_dcerpc_w32time = proto_register_protocol("Win32 Time Server", "W32TIME", "w32time");
+       proto_register_field_array(proto_dcerpc_w32time, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_w32time(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_w32time, ett_dcerpc_w32time,
+               &uuid_dcerpc_w32time, ver_dcerpc_w32time,
+               w32time_dissectors, hf_w32time_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-w32time.h b/bin/default/librpc/gen_ndr/packet-dcerpc-w32time.h
new file mode 100644 (file)
index 0000000..21fcb45
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/w32time.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/w32time.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_W32TIME_H
+#define __PACKET_DCERPC_W32TIME_H
+
+#endif /* __PACKET_DCERPC_W32TIME_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-winreg.c b/bin/default/librpc/gen_ndr/packet-dcerpc-winreg.c
new file mode 100644 (file)
index 0000000..a3a53c9
--- /dev/null
@@ -0,0 +1,5250 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/winreg.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/winreg.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-winreg.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_winreg = -1;
+static gint ett_winreg_security_secinfo = -1;
+static gint ett_winreg_winreg_AccessMask = -1;
+static gint ett_winreg_winreg_String = -1;
+static gint ett_winreg_KeySecurityData = -1;
+static gint ett_winreg_winreg_SecBuf = -1;
+static gint ett_winreg_winreg_KeyOptions = -1;
+static gint ett_winreg_winreg_StringBuf = -1;
+static gint ett_winreg_winreg_ValNameBuf = -1;
+static gint ett_winreg_winreg_NotifyChangeType = -1;
+static gint ett_winreg_winreg_RestoreKeyFlags = -1;
+static gint ett_winreg_KeySecurityAttribute = -1;
+static gint ett_winreg_QueryMultipleValue = -1;
+
+
+/* Header field declarations */
+static gint hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_string2 = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_message = -1;
+static gint hf_winreg_winreg_String_name = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_message = -1;
+static gint hf_winreg_winreg_EnumValue_enum_index = -1;
+static gint hf_winreg_winreg_CreateKey_options = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_timeout = -1;
+static gint hf_winreg_handle = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_valnamelen = -1;
+static gint hf_winreg_winreg_SecBuf_length = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_do_reboot = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_handle = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_buffer_size = -1;
+static gint hf_winreg_winreg_CreateKey_new_handle = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_needed = -1;
+static gint hf_winreg_QueryMultipleValue_ve_valuelen = -1;
+static gint hf_winreg_winreg_OpenHKPT_access_mask = -1;
+static gint hf_winreg_winreg_OpenHKCC_access_mask = -1;
+static gint hf_winreg_KeySecurityAttribute_sec_data = -1;
+static gint hf_winreg_winreg_GetKeySecurity_sec_info = -1;
+static gint hf_winreg_winreg_SaveKeyEx_handle = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_num_values = -1;
+static gint hf_winreg_winreg_SetKeySecurity_sec_info = -1;
+static gint hf_winreg_winreg_StringBuf_size = -1;
+static gint hf_winreg_winreg_SecBuf_sd = -1;
+static gint hf_winreg_winreg_QueryInfoKey_secdescsize = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY = -1;
+static gint hf_winreg_winreg_SetValue_name = -1;
+static gint hf_winreg_winreg_RestoreKey_flags = -1;
+static gint hf_winreg_QueryMultipleValue_ve_type = -1;
+static gint hf_winreg_winreg_CreateKey_access_mask = -1;
+static gint hf_winreg_winreg_CreateKey_secdesc = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_reserved = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_force_apps = -1;
+static gint hf_winreg_winreg_SetValue_type = -1;
+static gint hf_winreg_opnum = -1;
+static gint hf_winreg_winreg_SetKeySecurity_sd = -1;
+static gint hf_winreg_winreg_EnumValue_name = -1;
+static gint hf_winreg_winreg_LoadKey_filename = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_CREATE_LINK = -1;
+static gint hf_winreg_winreg_DeleteValue_value = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_offered = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_values_in = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_NOTIFY = -1;
+static gint hf_winreg_winreg_OpenKey_parent_handle = -1;
+static gint hf_winreg_winreg_QueryInfoKey_num_subkeys = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY = -1;
+static gint hf_winreg_winreg_SaveKeyEx_sec_attrib = -1;
+static gint hf_winreg_winreg_QueryInfoKey_last_changed_time = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK = -1;
+static gint hf_winreg_winreg_OpenHKPD_access_mask = -1;
+static gint hf_winreg_winreg_AbortSystemShutdown_server = -1;
+static gint hf_winreg_winreg_QueryValue_type = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE = -1;
+static gint hf_winreg_winreg_SecBuf_inherit = -1;
+static gint hf_winreg_winreg_SetValue_size = -1;
+static gint hf_winreg_winreg_SaveKey_handle = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET = -1;
+static gint hf_winreg_winreg_ReplaceKey_handle = -1;
+static gint hf_winreg_winreg_GetVersion_version = -1;
+static gint hf_winreg_winreg_ReplaceKey_old_file = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE = -1;
+static gint hf_winreg_winreg_CreateKey_action_taken = -1;
+static gint hf_winreg_winreg_QueryInfoKey_num_values = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_SET_VALUE = -1;
+static gint hf_winreg_winreg_EnumKey_enum_index = -1;
+static gint hf_winreg_winreg_RestoreKey_handle = -1;
+static gint hf_winreg_winreg_SetValue_data = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_force_apps = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_string1 = -1;
+static gint hf_winreg_winreg_SaveKeyEx_flags = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_buffer = -1;
+static gint hf_winreg_winreg_OpenHKDD_access_mask = -1;
+static gint hf_winreg_winreg_QueryInfoKey_classname = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY = -1;
+static gint hf_winreg_winreg_ReplaceKey_subkey = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_classlen = -1;
+static gint hf_winreg_winreg_ValNameBuf_length = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_notify_filter = -1;
+static gint hf_winreg_winreg_UnLoadKey_subkey = -1;
+static gint hf_winreg_winreg_ReplaceKey_new_file = -1;
+static gint hf_winreg_winreg_SaveKeyEx_filename = -1;
+static gint hf_winreg_QueryMultipleValue_ve_valuename = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_key_handle = -1;
+static gint hf_winreg_KeySecurityData_size = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE = -1;
+static gint hf_winreg_winreg_EnumKey_name = -1;
+static gint hf_winreg_winreg_LoadKey_keyname = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_key_handle = -1;
+static gint hf_winreg_winreg_EnumValue_type = -1;
+static gint hf_winreg_winreg_EnumKey_last_changed_time = -1;
+static gint hf_winreg_winreg_EnumValue_size = -1;
+static gint hf_winreg_winreg_SaveKey_sec_attrib = -1;
+static gint hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK = -1;
+static gint hf_winreg_winreg_OpenKey_options = -1;
+static gint hf_winreg_winreg_SaveKey_filename = -1;
+static gint hf_winreg_winreg_QueryValue_data = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_buffer = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_hostname = -1;
+static gint hf_winreg_winreg_UnLoadKey_handle = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_values_out = -1;
+static gint hf_winreg_KeySecurityData_data = -1;
+static gint hf_winreg_winreg_OpenKey_access_mask = -1;
+static gint hf_winreg_winreg_OpenKey_keyname = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_access_mask = -1;
+static gint hf_winreg_winreg_DeleteKeyEx_key = -1;
+static gint hf_winreg_winreg_QueryValue_data_length = -1;
+static gint hf_winreg_winreg_ValNameBuf_size = -1;
+static gint hf_winreg_KeySecurityData_len = -1;
+static gint hf_winreg_winreg_CreateKey_name = -1;
+static gint hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES = -1;
+static gint hf_winreg_winreg_String_name_len = -1;
+static gint hf_winreg_winreg_DeleteKey_key = -1;
+static gint hf_winreg_winreg_QueryValue_data_size = -1;
+static gint hf_winreg_system_name = -1;
+static gint hf_winreg_winreg_QueryMultipleValues_num_values = -1;
+static gint hf_winreg_QueryMultipleValue_ve_valueptr = -1;
+static gint hf_winreg_KeySecurityAttribute_data_size = -1;
+static gint hf_winreg_access_required = -1;
+static gint hf_winreg_winreg_StringBuf_name = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown2 = -1;
+static gint hf_winreg_winreg_ValNameBuf_name = -1;
+static gint hf_winreg_winreg_StringBuf_length = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_values_in = -1;
+static gint hf_winreg_winreg_String_name_size = -1;
+static gint hf_winreg_winreg_NotifyChangeKeyValue_unknown = -1;
+static gint hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY = -1;
+static gint hf_winreg_winreg_OpenHKCR_access_mask = -1;
+static gint hf_winreg_winreg_RestoreKey_filename = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_valbufsize = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_reason = -1;
+static gint hf_winreg_winreg_OpenHKLM_access_mask = -1;
+static gint hf_winreg_winreg_EnumValue_length = -1;
+static gint hf_winreg_winreg_QueryInfoKey_max_subkeylen = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdown_timeout = -1;
+static gint hf_winreg_winreg_InitiateSystemShutdownEx_hostname = -1;
+static gint hf_winreg_KeySecurityAttribute_inherit = -1;
+static gint hf_winreg_werror = -1;
+static gint hf_winreg_winreg_OpenHKPN_access_mask = -1;
+static gint hf_winreg_winreg_QueryMultipleValues2_values_out = -1;
+static gint hf_winreg_winreg_EnumKey_keyclass = -1;
+static gint hf_winreg_winreg_CreateKey_keyclass = -1;
+static gint hf_winreg_winreg_EnumValue_value = -1;
+static gint hf_winreg_winreg_OpenHKCU_access_mask = -1;
+static gint hf_winreg_winreg_GetKeySecurity_sd = -1;
+static gint hf_winreg_winreg_QueryValue_value_name = -1;
+static gint hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH = -1;
+static gint hf_winreg_winreg_OpenHKU_access_mask = -1;
+
+static gint proto_dcerpc_winreg = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_winreg = {
+       0x338cd001, 0x2244, 0x31f1,
+       { 0xaa, 0xaa, 0x90, 0x00, 0x38, 0x00, 0x10, 0x03 }
+};
+static guint16 ver_dcerpc_winreg = 1;
+
+static const true_false_string winreg_AccessMask_KEY_QUERY_VALUE_tfs = {
+   "KEY_QUERY_VALUE is SET",
+   "KEY_QUERY_VALUE is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_SET_VALUE_tfs = {
+   "KEY_SET_VALUE is SET",
+   "KEY_SET_VALUE is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_CREATE_SUB_KEY_tfs = {
+   "KEY_CREATE_SUB_KEY is SET",
+   "KEY_CREATE_SUB_KEY is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS_tfs = {
+   "KEY_ENUMERATE_SUB_KEYS is SET",
+   "KEY_ENUMERATE_SUB_KEYS is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_NOTIFY_tfs = {
+   "KEY_NOTIFY is SET",
+   "KEY_NOTIFY is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_CREATE_LINK_tfs = {
+   "KEY_CREATE_LINK is SET",
+   "KEY_CREATE_LINK is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_WOW64_64KEY_tfs = {
+   "KEY_WOW64_64KEY is SET",
+   "KEY_WOW64_64KEY is NOT SET",
+};
+static const true_false_string winreg_AccessMask_KEY_WOW64_32KEY_tfs = {
+   "KEY_WOW64_32KEY is SET",
+   "KEY_WOW64_32KEY is NOT SET",
+};
+static int winreg_dissect_element_String_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_String_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_String_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_String_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityData_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SecBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SecBuf_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SecBuf_inherit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string winreg_KeyOptions_REG_OPTION_VOLATILE_tfs = {
+   "REG_OPTION_VOLATILE is SET",
+   "REG_OPTION_VOLATILE is NOT SET",
+};
+static const true_false_string winreg_KeyOptions_REG_OPTION_CREATE_LINK_tfs = {
+   "REG_OPTION_CREATE_LINK is SET",
+   "REG_OPTION_CREATE_LINK is NOT SET",
+};
+static const true_false_string winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE_tfs = {
+   "REG_OPTION_BACKUP_RESTORE is SET",
+   "REG_OPTION_BACKUP_RESTORE is NOT SET",
+};
+static const true_false_string winreg_KeyOptions_REG_OPTION_OPEN_LINK_tfs = {
+   "REG_OPTION_OPEN_LINK is SET",
+   "REG_OPTION_OPEN_LINK is NOT SET",
+};
+const value_string winreg_winreg_CreateAction_vals[] = {
+       { REG_ACTION_NONE, "REG_ACTION_NONE" },
+       { REG_CREATED_NEW_KEY, "REG_CREATED_NEW_KEY" },
+       { REG_OPENED_EXISTING_KEY, "REG_OPENED_EXISTING_KEY" },
+{ 0, NULL }
+};
+static int winreg_dissect_element_StringBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_StringBuf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_StringBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_StringBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_StringBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ValNameBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME_tfs = {
+   "REG_NOTIFY_CHANGE_NAME is SET",
+   "REG_NOTIFY_CHANGE_NAME is NOT SET",
+};
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES_tfs = {
+   "REG_NOTIFY_CHANGE_ATTRIBUTES is SET",
+   "REG_NOTIFY_CHANGE_ATTRIBUTES is NOT SET",
+};
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET_tfs = {
+   "REG_NOTIFY_CHANGE_LAST_SET is SET",
+   "REG_NOTIFY_CHANGE_LAST_SET is NOT SET",
+};
+static const true_false_string winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY_tfs = {
+   "REG_NOTIFY_CHANGE_SECURITY is SET",
+   "REG_NOTIFY_CHANGE_SECURITY is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE_tfs = {
+   "REG_WHOLE_HIVE_VOLATILE is SET",
+   "REG_WHOLE_HIVE_VOLATILE is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_REFRESH_HIVE_tfs = {
+   "REG_REFRESH_HIVE is SET",
+   "REG_REFRESH_HIVE is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH_tfs = {
+   "REG_NO_LAZY_FLUSH is SET",
+   "REG_NO_LAZY_FLUSH is NOT SET",
+};
+static const true_false_string winreg_RestoreKeyFlags_REG_FORCE_RESTORE_tfs = {
+   "REG_FORCE_RESTORE is SET",
+   "REG_FORCE_RESTORE is NOT SET",
+};
+static int winreg_dissect_element_KeySecurityAttribute_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityAttribute_sec_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_KeySecurityAttribute_inherit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valuename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valuename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valuelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_valueptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValue_ve_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCR_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCR_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCR_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCR_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCR_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCU_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCU_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCU_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCU_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCU_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKLM_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKLM_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKLM_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKLM_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKLM_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPD_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPD_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPD_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPD_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPD_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKU_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKU_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKU_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKU_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKU_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CloseKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CloseKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_keyclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_new_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_new_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_action_taken(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_CreateKey_action_taken_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_keyclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_keyclass_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_last_changed_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumKey_last_changed_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_EnumValue_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_FlushKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_FlushKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetKeySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetKeySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetKeySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetKeySecurity_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetKeySecurity_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_LoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_LoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_LoadKey_keyname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_LoadKey_keyname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_LoadKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_LoadKey_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_watch_subtree(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_notify_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_string1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_string2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_NotifyChangeKeyValue_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_parent_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_parent_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_keyname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_classname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_classname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_num_subkeys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_num_subkeys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_subkeylen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_subkeylen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_classlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_classlen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_num_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_valnamelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_valnamelen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_valbufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_max_valbufsize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_secdescsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_secdescsize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_last_changed_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryInfoKey_last_changed_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryValue_data_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_new_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_new_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_old_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_ReplaceKey_old_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_RestoreKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_RestoreKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_RestoreKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_RestoreKey_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_RestoreKey_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKey_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKey_sec_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKey_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetKeySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetKeySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetKeySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetKeySecurity_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetKeySecurity_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SetValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_UnLoadKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdown_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_AbortSystemShutdown_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_AbortSystemShutdown_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetVersion_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetVersion_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_GetVersion_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCC_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCC_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCC_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCC_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKCC_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKDD_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKDD_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKDD_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKDD_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKDD_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues_buffer_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_InitiateSystemShutdownEx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_sec_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_SaveKeyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPT_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPT_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPT_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPT_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPT_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPN_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPN_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPN_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPN_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_OpenHKPN_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_offered_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_QueryMultipleValues2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int winreg_dissect_element_DeleteKeyEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: bitmap { */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_winreg_security_secinfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        KEY_QUERY_VALUE =  0x00001 , */
+/* IDL:        KEY_SET_VALUE =  0x00002 , */
+/* IDL:        KEY_CREATE_SUB_KEY =  0x00004 , */
+/* IDL:        KEY_ENUMERATE_SUB_KEYS =  0x00008 , */
+/* IDL:        KEY_NOTIFY =  0x00010 , */
+/* IDL:        KEY_CREATE_LINK =  0x00020 , */
+/* IDL:        KEY_WOW64_64KEY =  0x00100 , */
+/* IDL:        KEY_WOW64_32KEY =  0x00200 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_AccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_winreg_winreg_AccessMask);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00001 )){
+               proto_item_append_text(item, "KEY_QUERY_VALUE");
+               if (flags & (~( 0x00001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00001 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_SET_VALUE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00002 )){
+               proto_item_append_text(item, "KEY_SET_VALUE");
+               if (flags & (~( 0x00002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00002 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00004 )){
+               proto_item_append_text(item, "KEY_CREATE_SUB_KEY");
+               if (flags & (~( 0x00004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00004 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS, tvb, offset-4, 4, flags);
+       if (flags&( 0x00008 )){
+               proto_item_append_text(item, "KEY_ENUMERATE_SUB_KEYS");
+               if (flags & (~( 0x00008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00008 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_NOTIFY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00010 )){
+               proto_item_append_text(item, "KEY_NOTIFY");
+               if (flags & (~( 0x00010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00010 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_CREATE_LINK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00020 )){
+               proto_item_append_text(item, "KEY_CREATE_LINK");
+               if (flags & (~( 0x00020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00020 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00100 )){
+               proto_item_append_text(item, "KEY_WOW64_64KEY");
+               if (flags & (~( 0x00100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00100 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00200 )){
+               proto_item_append_text(item, "KEY_WOW64_32KEY");
+               if (flags & (~( 0x00200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00200 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen_m_term(name)*2)] uint16 name_len; */
+/* IDL:        [value(strlen_m_term(name)*2)] uint16 name_size; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_String_name_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_String_name_len, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_String_name_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_String_name_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_String_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_String_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_winreg_winreg_String_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_String_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_winreg_winreg_String_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_winreg_String);
+       }
+       
+       offset = winreg_dissect_element_String_name_len(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_String_name_size(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_String_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [length_is(len)] [size_is(size)] uint8 *data; */
+/* IDL:        uint32 size; */
+/* IDL:        uint32 len; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_KeySecurityData_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_KeySecurityData_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_winreg_KeySecurityData_data);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_KeySecurityData_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_KeySecurityData_data__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_KeySecurityData_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_KeySecurityData_data, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_KeySecurityData_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_KeySecurityData_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_KeySecurityData_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_KeySecurityData_len, 0);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_KeySecurityData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_KeySecurityData);
+       }
+       
+       offset = winreg_dissect_element_KeySecurityData_data(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_KeySecurityData_size(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_KeySecurityData_len(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 length; */
+/* IDL:        KeySecurityData sd; */
+/* IDL:        uint8 inherit; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_SecBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SecBuf_length, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SecBuf_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_KeySecurityData(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SecBuf_sd,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SecBuf_inherit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SecBuf_inherit, 0);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_SecBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_winreg_SecBuf);
+       }
+       
+       offset = winreg_dissect_element_SecBuf_length(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_SecBuf_sd(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_SecBuf_inherit(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        REG_OPTION_VOLATILE =  0x00000001 , */
+/* IDL:        REG_OPTION_CREATE_LINK =  0x00000002 , */
+/* IDL:        REG_OPTION_BACKUP_RESTORE =  0x00000004 , */
+/* IDL:        REG_OPTION_OPEN_LINK =  0x00000008 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_KeyOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_winreg_winreg_KeyOptions);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "REG_OPTION_VOLATILE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "REG_OPTION_CREATE_LINK");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "REG_OPTION_BACKUP_RESTORE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "REG_OPTION_OPEN_LINK");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        REG_ACTION_NONE=0, */
+/* IDL:        REG_CREATED_NEW_KEY=1, */
+/* IDL:        REG_OPENED_EXISTING_KEY=2, */
+/* IDL: } */
+
+int
+winreg_dissect_enum_CreateAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen_m_term_null(name)*2)] uint16 length; */
+/* IDL:        uint16 size; */
+/* IDL:        [unique(1)] [length_is(length/2)] [charset(UTF16)] [size_is(size/2)] uint16 *name; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_StringBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_StringBuf_length, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_StringBuf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_StringBuf_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_StringBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_StringBuf_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_winreg_winreg_StringBuf_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_StringBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_StringBuf_name__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_StringBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_StringBuf_name, 0);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_StringBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_winreg_StringBuf);
+       }
+       
+       offset = winreg_dissect_element_StringBuf_length(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_StringBuf_size(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_StringBuf_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [value(strlen_m_term(name)*2)] uint16 length; */
+/* IDL:        uint16 size; */
+/* IDL:        [unique(1)] [length_is(length/2)] [charset(UTF16)] [size_is(size/2)] uint16 *name; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_ValNameBuf_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ValNameBuf_length, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ValNameBuf_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ValNameBuf_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_winreg_winreg_ValNameBuf_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ValNameBuf_name__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ValNameBuf_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ValNameBuf_name, 0);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_ValNameBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_winreg_ValNameBuf);
+       }
+       
+       offset = winreg_dissect_element_ValNameBuf_length(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_ValNameBuf_size(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_ValNameBuf_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        REG_NOTIFY_CHANGE_NAME =  0x00000001 , */
+/* IDL:        REG_NOTIFY_CHANGE_ATTRIBUTES =  0x00000002 , */
+/* IDL:        REG_NOTIFY_CHANGE_LAST_SET =  0x00000004 , */
+/* IDL:        REG_NOTIFY_CHANGE_SECURITY =  0x00000008 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_NotifyChangeType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_winreg_winreg_NotifyChangeType);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "REG_NOTIFY_CHANGE_NAME");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "REG_NOTIFY_CHANGE_ATTRIBUTES");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "REG_NOTIFY_CHANGE_LAST_SET");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "REG_NOTIFY_CHANGE_SECURITY");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        REG_WHOLE_HIVE_VOLATILE =  0x00000001 , */
+/* IDL:        REG_REFRESH_HIVE =  0x00000002 , */
+/* IDL:        REG_NO_LAZY_FLUSH =  0x00000004 , */
+/* IDL:        REG_FORCE_RESTORE =  0x00000008 , */
+/* IDL: } */
+
+int
+winreg_dissect_bitmap_RestoreKeyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_winreg_winreg_RestoreKeyFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "REG_WHOLE_HIVE_VOLATILE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "REG_REFRESH_HIVE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "REG_NO_LAZY_FLUSH");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "REG_FORCE_RESTORE");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 data_size; */
+/* IDL:        KeySecurityData sec_data; */
+/* IDL:        uint8 inherit; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_KeySecurityAttribute_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_KeySecurityAttribute_data_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_KeySecurityAttribute_sec_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_KeySecurityData(tvb,offset,pinfo,tree,drep,hf_winreg_KeySecurityAttribute_sec_data,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_KeySecurityAttribute_inherit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_KeySecurityAttribute_inherit, 0);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_KeySecurityAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_KeySecurityAttribute);
+       }
+       
+       offset = winreg_dissect_element_KeySecurityAttribute_data_size(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_KeySecurityAttribute_sec_data(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_KeySecurityAttribute_inherit(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] winreg_ValNameBuf *ve_valuename; */
+/* IDL:        uint32 ve_valuelen; */
+/* IDL:        uint32 ve_valueptr; */
+/* IDL:        winreg_Type ve_type; */
+/* IDL: } */
+
+static int
+winreg_dissect_element_QueryMultipleValue_ve_valuename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValue_ve_valuename_, NDR_POINTER_UNIQUE, "Pointer to Ve Valuename (winreg_ValNameBuf)",hf_winreg_QueryMultipleValue_ve_valuename);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValue_ve_valuename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_ValNameBuf(tvb,offset,pinfo,tree,drep,hf_winreg_QueryMultipleValue_ve_valuename,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValue_ve_valuelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_ve_valuelen, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValue_ve_valueptr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_QueryMultipleValue_ve_valueptr, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValue_ve_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_winreg_Type(tvb,offset,pinfo,tree,drep,hf_winreg_QueryMultipleValue_ve_type,0);
+
+       return offset;
+}
+
+int
+winreg_dissect_struct_QueryMultipleValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_winreg_QueryMultipleValue);
+       }
+       
+       offset = winreg_dissect_element_QueryMultipleValue_ve_valuename(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValue_ve_valuelen(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValue_ve_valueptr(tvb, offset, pinfo, tree, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValue_ve_type(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCR_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKCR_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCR_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCR_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKCR_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCR_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKCR_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCR_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKCR( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKCR_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKCR";
+       offset = winreg_dissect_element_OpenHKCR_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKCR_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKCR";
+       offset = winreg_dissect_element_OpenHKCR_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKCR_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCU_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKCU_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCU_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCU_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKCU_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCU_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKCU_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCU_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKCU( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKCU_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKCU";
+       offset = winreg_dissect_element_OpenHKCU_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKCU_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKCU";
+       offset = winreg_dissect_element_OpenHKCU_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKCU_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKLM_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKLM_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKLM_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKLM_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKLM_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKLM_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKLM_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKLM_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKLM( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKLM_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKLM";
+       offset = winreg_dissect_element_OpenHKLM_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKLM_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKLM";
+       offset = winreg_dissect_element_OpenHKLM_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKLM_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPD_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKPD_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPD_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPD_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKPD_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPD_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKPD_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPD_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKPD( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKPD_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKPD";
+       offset = winreg_dissect_element_OpenHKPD_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKPD_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKPD";
+       offset = winreg_dissect_element_OpenHKPD_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKPD_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKU_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKU_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKU_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKU_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKU_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKU_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKU_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKU_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKU( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKU_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKU";
+       offset = winreg_dissect_element_OpenHKU_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKU_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKU";
+       offset = winreg_dissect_element_OpenHKU_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKU_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_CloseKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_CloseKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CloseKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_CloseKey( */
+/* IDL: [out] [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_CloseKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CloseKey";
+       offset = winreg_dissect_element_CloseKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_CloseKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CloseKey";
+       offset = winreg_dissect_element_CloseKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_CreateKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_CreateKey_name,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_keyclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_CreateKey_keyclass,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_KeyOptions(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_CreateKey_options, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_CreateKey_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_secdesc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_CreateKey_secdesc_, NDR_POINTER_UNIQUE, "Pointer to Secdesc (winreg_SecBuf)",hf_winreg_winreg_CreateKey_secdesc);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_secdesc_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_SecBuf(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_CreateKey_secdesc,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_new_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_CreateKey_new_handle_, NDR_POINTER_REF, "Pointer to New Handle (policy_handle)",hf_winreg_winreg_CreateKey_new_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_new_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_CreateKey_new_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_action_taken(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_CreateKey_action_taken_, NDR_POINTER_UNIQUE, "Pointer to Action Taken (winreg_CreateAction)",hf_winreg_winreg_CreateKey_action_taken);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_CreateKey_action_taken_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_enum_CreateAction(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_CreateKey_action_taken, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_CreateKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] winreg_String name, */
+/* IDL: [in] winreg_String keyclass, */
+/* IDL: [in] winreg_KeyOptions options, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [unique(1)] [in] winreg_SecBuf *secdesc, */
+/* IDL: [out] [ref] policy_handle *new_handle, */
+/* IDL: [out] [unique(1)] [in] winreg_CreateAction *action_taken */
+/* IDL: ); */
+
+static int
+winreg_dissect_CreateKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="CreateKey";
+       offset = winreg_dissect_element_CreateKey_new_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_CreateKey_action_taken(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_CreateKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CreateKey";
+       offset = winreg_dissect_element_CreateKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_CreateKey_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_CreateKey_keyclass(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_CreateKey_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_CreateKey_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_CreateKey_secdesc(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_CreateKey_action_taken(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_DeleteKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKey_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_DeleteKey_key,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_DeleteKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] winreg_String key */
+/* IDL: ); */
+
+static int
+winreg_dissect_DeleteKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_DeleteKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteKey";
+       offset = winreg_dissect_element_DeleteKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_DeleteKey_key(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_DeleteValue_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_DeleteValue_value,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_DeleteValue( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] winreg_String value */
+/* IDL: ); */
+
+static int
+winreg_dissect_DeleteValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteValue";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_DeleteValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteValue";
+       offset = winreg_dissect_element_DeleteValue_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_DeleteValue_value(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumKey_enum_index, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumKey_name_, NDR_POINTER_REF, "Pointer to Name (winreg_StringBuf)",hf_winreg_winreg_EnumKey_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_StringBuf(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_EnumKey_name,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_keyclass(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumKey_keyclass_, NDR_POINTER_UNIQUE, "Pointer to Keyclass (winreg_StringBuf)",hf_winreg_winreg_EnumKey_keyclass);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_keyclass_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_StringBuf(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_EnumKey_keyclass,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_last_changed_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumKey_last_changed_time_, NDR_POINTER_UNIQUE, "Pointer to Last Changed Time (NTTIME)",hf_winreg_winreg_EnumKey_last_changed_time);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumKey_last_changed_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumKey_last_changed_time);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_EnumKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 enum_index, */
+/* IDL: [out] [in] [ref] winreg_StringBuf *name, */
+/* IDL: [out] [unique(1)] [in] winreg_StringBuf *keyclass, */
+/* IDL: [out] [unique(1)] [in] NTTIME *last_changed_time */
+/* IDL: ); */
+
+static int
+winreg_dissect_EnumKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumKey";
+       offset = winreg_dissect_element_EnumKey_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_EnumKey_keyclass(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_EnumKey_last_changed_time(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_EnumKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumKey";
+       offset = winreg_dissect_element_EnumKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumKey_enum_index(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumKey_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumKey_keyclass(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumKey_last_changed_time(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_enum_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_enum_index, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_name_, NDR_POINTER_REF, "Pointer to Name (winreg_ValNameBuf)",hf_winreg_winreg_EnumValue_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_ValNameBuf(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_EnumValue_name,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_type_, NDR_POINTER_UNIQUE, "Pointer to Type (winreg_Type)",hf_winreg_winreg_EnumValue_type);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_winreg_Type(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_EnumValue_type,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_value_, NDR_POINTER_UNIQUE, "Pointer to Value (uint8)",hf_winreg_winreg_EnumValue_value);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_value_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_value__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_value__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_value, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_size_, NDR_POINTER_UNIQUE, "Pointer to Size (uint32)",hf_winreg_winreg_EnumValue_size);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_EnumValue_length_, NDR_POINTER_UNIQUE, "Pointer to Length (uint32)",hf_winreg_winreg_EnumValue_length);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_EnumValue_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_EnumValue_length, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_EnumValue( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint32 enum_index, */
+/* IDL: [out] [in] [ref] winreg_ValNameBuf *name, */
+/* IDL: [out] [unique(1)] [in] winreg_Type *type, */
+/* IDL: [unique(1)] [out] [in] [range(0,0x4000000)] [length_is(length?*length:0)] [size_is(size?*size:0)] uint8 *value, */
+/* IDL: [out] [unique(1)] [in] uint32 *size, */
+/* IDL: [out] [unique(1)] [in] uint32 *length */
+/* IDL: ); */
+
+static int
+winreg_dissect_EnumValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="EnumValue";
+       offset = winreg_dissect_element_EnumValue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_EnumValue_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_EnumValue_value(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_EnumValue_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_EnumValue_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_EnumValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumValue";
+       offset = winreg_dissect_element_EnumValue_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumValue_enum_index(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumValue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumValue_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumValue_value(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumValue_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_EnumValue_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_FlushKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_FlushKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_FlushKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_FlushKey( */
+/* IDL: [in] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_FlushKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="FlushKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_FlushKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FlushKey";
+       offset = winreg_dissect_element_FlushKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetKeySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_GetKeySecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetKeySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetKeySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+               offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_GetKeySecurity_sec_info, NULL);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetKeySecurity_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_GetKeySecurity_sd_, NDR_POINTER_REF, "Pointer to Sd (KeySecurityData)",hf_winreg_winreg_GetKeySecurity_sd);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetKeySecurity_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_KeySecurityData(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_GetKeySecurity_sd,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_GetKeySecurity( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] security_secinfo sec_info, */
+/* IDL: [out] [in] [ref] KeySecurityData *sd */
+/* IDL: ); */
+
+static int
+winreg_dissect_GetKeySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetKeySecurity";
+       offset = winreg_dissect_element_GetKeySecurity_sd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_GetKeySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetKeySecurity";
+       offset = winreg_dissect_element_GetKeySecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_GetKeySecurity_sec_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_GetKeySecurity_sd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_LoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_LoadKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_LoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_LoadKey_keyname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_LoadKey_keyname_, NDR_POINTER_UNIQUE, "Pointer to Keyname (winreg_String)",hf_winreg_winreg_LoadKey_keyname);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_LoadKey_keyname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_LoadKey_keyname,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_LoadKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_LoadKey_filename_, NDR_POINTER_UNIQUE, "Pointer to Filename (winreg_String)",hf_winreg_winreg_LoadKey_filename);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_LoadKey_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_LoadKey_filename,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_LoadKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [unique(1)] [in] winreg_String *keyname, */
+/* IDL: [unique(1)] [in] winreg_String *filename */
+/* IDL: ); */
+
+static int
+winreg_dissect_LoadKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="LoadKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_LoadKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="LoadKey";
+       offset = winreg_dissect_element_LoadKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_LoadKey_keyname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_LoadKey_filename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_NotifyChangeKeyValue_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_watch_subtree(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_notify_filter(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_NotifyChangeType(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_NotifyChangeKeyValue_notify_filter, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_NotifyChangeKeyValue_unknown, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_string1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_NotifyChangeKeyValue_string1,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_string2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_NotifyChangeKeyValue_string2,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_NotifyChangeKeyValue_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_NotifyChangeKeyValue_unknown2, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_NotifyChangeKeyValue( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] uint8 watch_subtree, */
+/* IDL: [in] winreg_NotifyChangeType notify_filter, */
+/* IDL: [in] uint32 unknown, */
+/* IDL: [in] winreg_String string1, */
+/* IDL: [in] winreg_String string2, */
+/* IDL: [in] uint32 unknown2 */
+/* IDL: ); */
+
+static int
+winreg_dissect_NotifyChangeKeyValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NotifyChangeKeyValue";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_NotifyChangeKeyValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NotifyChangeKeyValue";
+       offset = winreg_dissect_element_NotifyChangeKeyValue_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_NotifyChangeKeyValue_watch_subtree(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_NotifyChangeKeyValue_notify_filter(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_NotifyChangeKeyValue_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_NotifyChangeKeyValue_string1(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_NotifyChangeKeyValue_string2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_NotifyChangeKeyValue_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_parent_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenKey_parent_handle_, NDR_POINTER_REF, "Pointer to Parent Handle (policy_handle)",hf_winreg_winreg_OpenKey_parent_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_parent_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenKey_parent_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_keyname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_OpenKey_keyname,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_options(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_KeyOptions(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenKey_options, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenKey_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenKey( */
+/* IDL: [in] [ref] policy_handle *parent_handle, */
+/* IDL: [in] winreg_String keyname, */
+/* IDL: [in] winreg_KeyOptions options, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenKey";
+       offset = winreg_dissect_element_OpenKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenKey";
+       offset = winreg_dissect_element_OpenKey_parent_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenKey_keyname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenKey_options(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenKey_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_classname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_classname_, NDR_POINTER_REF, "Pointer to Classname (winreg_String)",hf_winreg_winreg_QueryInfoKey_classname);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_classname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryInfoKey_classname,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_num_subkeys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_num_subkeys_, NDR_POINTER_REF, "Pointer to Num Subkeys (uint32)",hf_winreg_winreg_QueryInfoKey_num_subkeys);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_num_subkeys_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_num_subkeys, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_subkeylen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_max_subkeylen_, NDR_POINTER_REF, "Pointer to Max Subkeylen (uint32)",hf_winreg_winreg_QueryInfoKey_max_subkeylen);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_subkeylen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_max_subkeylen, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_classlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_max_classlen_, NDR_POINTER_REF, "Pointer to Max Classlen (uint32)",hf_winreg_winreg_QueryInfoKey_max_classlen);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_classlen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_max_classlen, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_num_values_, NDR_POINTER_REF, "Pointer to Num Values (uint32)",hf_winreg_winreg_QueryInfoKey_num_values);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_num_values_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_num_values, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_valnamelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_max_valnamelen_, NDR_POINTER_REF, "Pointer to Max Valnamelen (uint32)",hf_winreg_winreg_QueryInfoKey_max_valnamelen);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_valnamelen_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_max_valnamelen, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_valbufsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_max_valbufsize_, NDR_POINTER_REF, "Pointer to Max Valbufsize (uint32)",hf_winreg_winreg_QueryInfoKey_max_valbufsize);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_max_valbufsize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_max_valbufsize, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_secdescsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_secdescsize_, NDR_POINTER_REF, "Pointer to Secdescsize (uint32)",hf_winreg_winreg_QueryInfoKey_secdescsize);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_secdescsize_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_secdescsize, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_last_changed_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryInfoKey_last_changed_time_, NDR_POINTER_REF, "Pointer to Last Changed Time (NTTIME)",hf_winreg_winreg_QueryInfoKey_last_changed_time);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryInfoKey_last_changed_time_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryInfoKey_last_changed_time);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_QueryInfoKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [in] [ref] winreg_String *classname, */
+/* IDL: [out] [ref] uint32 *num_subkeys, */
+/* IDL: [out] [ref] uint32 *max_subkeylen, */
+/* IDL: [out] [ref] uint32 *max_classlen, */
+/* IDL: [out] [ref] uint32 *num_values, */
+/* IDL: [out] [ref] uint32 *max_valnamelen, */
+/* IDL: [out] [ref] uint32 *max_valbufsize, */
+/* IDL: [out] [ref] uint32 *secdescsize, */
+/* IDL: [out] [ref] NTTIME *last_changed_time */
+/* IDL: ); */
+
+static int
+winreg_dissect_QueryInfoKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryInfoKey";
+       offset = winreg_dissect_element_QueryInfoKey_classname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_num_subkeys(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_max_subkeylen(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_max_classlen(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_num_values(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_max_valnamelen(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_max_valbufsize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_secdescsize(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryInfoKey_last_changed_time(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_QueryInfoKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryInfoKey";
+       offset = winreg_dissect_element_QueryInfoKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryInfoKey_classname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_value_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_value_name_, NDR_POINTER_REF, "Pointer to Value Name (winreg_String)",hf_winreg_winreg_QueryValue_value_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_value_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryValue_value_name,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_type_, NDR_POINTER_UNIQUE, "Pointer to Type (winreg_Type)",hf_winreg_winreg_QueryValue_type);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_winreg_Type(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryValue_type,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data_, NDR_POINTER_UNIQUE, "Pointer to Data (uint8)",hf_winreg_winreg_QueryValue_data);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_data, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data_size_, NDR_POINTER_UNIQUE, "Pointer to Data Size (uint32)",hf_winreg_winreg_QueryValue_data_size);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_data_size, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data_length(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryValue_data_length_, NDR_POINTER_UNIQUE, "Pointer to Data Length (uint32)",hf_winreg_winreg_QueryValue_data_length);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryValue_data_length_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryValue_data_length, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_QueryValue( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *value_name, */
+/* IDL: [out] [unique(1)] [in] winreg_Type *type, */
+/* IDL: [unique(1)] [out] [in] [range(0,0x4000000)] [length_is(data_length?*data_length:0)] [size_is(data_size?*data_size:0)] uint8 *data, */
+/* IDL: [out] [unique(1)] [in] uint32 *data_size, */
+/* IDL: [out] [unique(1)] [in] uint32 *data_length */
+/* IDL: ); */
+
+static int
+winreg_dissect_QueryValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryValue";
+       offset = winreg_dissect_element_QueryValue_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryValue_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryValue_data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryValue_data_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_QueryValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryValue";
+       offset = winreg_dissect_element_QueryValue_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryValue_value_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryValue_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryValue_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryValue_data_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryValue_data_length(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_ReplaceKey_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_ReplaceKey_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_subkey_, NDR_POINTER_REF, "Pointer to Subkey (winreg_String)",hf_winreg_winreg_ReplaceKey_subkey);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_ReplaceKey_subkey,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_new_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_new_file_, NDR_POINTER_REF, "Pointer to New File (winreg_String)",hf_winreg_winreg_ReplaceKey_new_file);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_new_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_ReplaceKey_new_file,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_old_file(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_ReplaceKey_old_file_, NDR_POINTER_REF, "Pointer to Old File (winreg_String)",hf_winreg_winreg_ReplaceKey_old_file);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_ReplaceKey_old_file_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_ReplaceKey_old_file,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_ReplaceKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *subkey, */
+/* IDL: [in] [ref] winreg_String *new_file, */
+/* IDL: [in] [ref] winreg_String *old_file */
+/* IDL: ); */
+
+static int
+winreg_dissect_ReplaceKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="ReplaceKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_ReplaceKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="ReplaceKey";
+       offset = winreg_dissect_element_ReplaceKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_ReplaceKey_subkey(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_ReplaceKey_new_file(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_ReplaceKey_old_file(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_RestoreKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_RestoreKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_RestoreKey_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_RestoreKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_RestoreKey_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_RestoreKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_RestoreKey_filename_, NDR_POINTER_REF, "Pointer to Filename (winreg_String)",hf_winreg_winreg_RestoreKey_filename);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_RestoreKey_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_RestoreKey_filename,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_RestoreKey_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_RestoreKeyFlags(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_RestoreKey_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_RestoreKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *filename, */
+/* IDL: [in] winreg_RestoreKeyFlags flags */
+/* IDL: ); */
+
+static int
+winreg_dissect_RestoreKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="RestoreKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_RestoreKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RestoreKey";
+       offset = winreg_dissect_element_RestoreKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_RestoreKey_filename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_RestoreKey_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_SaveKey_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SaveKey_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKey_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKey_filename_, NDR_POINTER_REF, "Pointer to Filename (winreg_String)",hf_winreg_winreg_SaveKey_filename);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKey_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SaveKey_filename,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKey_sec_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKey_sec_attrib_, NDR_POINTER_UNIQUE, "Pointer to Sec Attrib (KeySecurityAttribute)",hf_winreg_winreg_SaveKey_sec_attrib);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKey_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_KeySecurityAttribute(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SaveKey_sec_attrib,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_SaveKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *filename, */
+/* IDL: [unique(1)] [in] KeySecurityAttribute *sec_attrib */
+/* IDL: ); */
+
+static int
+winreg_dissect_SaveKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SaveKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_SaveKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SaveKey";
+       offset = winreg_dissect_element_SaveKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SaveKey_filename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SaveKey_sec_attrib(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetKeySecurity_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetKeySecurity_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetKeySecurity_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetKeySecurity_sec_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+               offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_GetKeySecurity_sec_info, NULL);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetKeySecurity_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetKeySecurity_sd_, NDR_POINTER_REF, "Pointer to Sd (KeySecurityData)",hf_winreg_winreg_SetKeySecurity_sd);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetKeySecurity_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_KeySecurityData(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SetKeySecurity_sd,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_SetKeySecurity( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] security_secinfo sec_info, */
+/* IDL: [in] [ref] KeySecurityData *sd */
+/* IDL: ); */
+
+static int
+winreg_dissect_SetKeySecurity_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetKeySecurity";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_SetKeySecurity_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetKeySecurity";
+       offset = winreg_dissect_element_SetKeySecurity_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SetKeySecurity_sec_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SetKeySecurity_sd(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetValue_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SetValue_name,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_winreg_Type(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SetValue_type,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetValue_data_, NDR_POINTER_REF, "Pointer to Data (uint8)",hf_winreg_winreg_SetValue_data);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SetValue_data__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_data__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SetValue_data, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SetValue_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SetValue_size, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_SetValue( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] winreg_String name, */
+/* IDL: [in] winreg_Type type, */
+/* IDL: [in] [ref] [size_is(size)] uint8 *data, */
+/* IDL: [in] uint32 size */
+/* IDL: ); */
+
+static int
+winreg_dissect_SetValue_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SetValue";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_SetValue_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetValue";
+       offset = winreg_dissect_element_SetValue_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SetValue_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SetValue_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SetValue_data(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SetValue_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_UnLoadKey_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_UnLoadKey_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_UnLoadKey_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_subkey(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_UnLoadKey_subkey_, NDR_POINTER_REF, "Pointer to Subkey (winreg_String)",hf_winreg_winreg_UnLoadKey_subkey);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_UnLoadKey_subkey_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_UnLoadKey_subkey,0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_UnLoadKey( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *subkey */
+/* IDL: ); */
+
+static int
+winreg_dissect_UnLoadKey_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="UnLoadKey";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_UnLoadKey_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="UnLoadKey";
+       offset = winreg_dissect_element_UnLoadKey_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_UnLoadKey_subkey(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdown_hostname_, NDR_POINTER_UNIQUE, "Pointer to Hostname (uint16)",hf_winreg_winreg_InitiateSystemShutdown_hostname);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_hostname, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdown_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_winreg_winreg_InitiateSystemShutdown_message);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_InitiateSystemShutdown_message,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_timeout, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_force_apps, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdown_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdown_do_reboot, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_InitiateSystemShutdown( */
+/* IDL: [unique(1)] [in] uint16 *hostname, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
+/* IDL: [in] uint32 timeout, */
+/* IDL: [in] uint8 force_apps, */
+/* IDL: [in] uint8 do_reboot */
+/* IDL: ); */
+
+static int
+winreg_dissect_InitiateSystemShutdown_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="InitiateSystemShutdown";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_InitiateSystemShutdown_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="InitiateSystemShutdown";
+       offset = winreg_dissect_element_InitiateSystemShutdown_hostname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdown_message(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdown_timeout(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdown_force_apps(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdown_do_reboot(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_AbortSystemShutdown_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_AbortSystemShutdown_server_, NDR_POINTER_UNIQUE, "Pointer to Server (uint16)",hf_winreg_winreg_AbortSystemShutdown_server);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_AbortSystemShutdown_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_AbortSystemShutdown_server, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_AbortSystemShutdown( */
+/* IDL: [unique(1)] [in] uint16 *server */
+/* IDL: ); */
+
+static int
+winreg_dissect_AbortSystemShutdown_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="AbortSystemShutdown";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_AbortSystemShutdown_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="AbortSystemShutdown";
+       offset = winreg_dissect_element_AbortSystemShutdown_server(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetVersion_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_GetVersion_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetVersion_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetVersion_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_GetVersion_version_, NDR_POINTER_REF, "Pointer to Version (uint32)",hf_winreg_winreg_GetVersion_version);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_GetVersion_version_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_GetVersion_version, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_GetVersion( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [out] [ref] uint32 *version */
+/* IDL: ); */
+
+static int
+winreg_dissect_GetVersion_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="GetVersion";
+       offset = winreg_dissect_element_GetVersion_version(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_GetVersion_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetVersion";
+       offset = winreg_dissect_element_GetVersion_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCC_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKCC_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCC_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCC_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKCC_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCC_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKCC_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKCC_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKCC( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKCC_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKCC";
+       offset = winreg_dissect_element_OpenHKCC_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKCC_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKCC";
+       offset = winreg_dissect_element_OpenHKCC_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKCC_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKDD_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKDD_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKDD_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKDD_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKDD_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKDD_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKDD_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKDD_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKDD( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKDD_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKDD";
+       offset = winreg_dissect_element_OpenHKDD_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKDD_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKDD";
+       offset = winreg_dissect_element_OpenHKDD_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKDD_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_key_handle_, NDR_POINTER_REF, "Pointer to Key Handle (policy_handle)",hf_winreg_winreg_QueryMultipleValues_key_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues_key_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_in_, NDR_POINTER_REF, "Pointer to Values In (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues_values_in);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_in__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues_values_in,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_out_, NDR_POINTER_REF, "Pointer to Values Out (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues_values_out);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_values_out__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues_values_out,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues_num_values, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_winreg_winreg_QueryMultipleValues_buffer);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_buffer__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues_buffer, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_buffer_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues_buffer_size_, NDR_POINTER_REF, "Pointer to Buffer Size (uint32)",hf_winreg_winreg_QueryMultipleValues_buffer_size);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues_buffer_size_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues_buffer_size, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_QueryMultipleValues( */
+/* IDL: [in] [ref] policy_handle *key_handle, */
+/* IDL: [in] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_in, */
+/* IDL: [out] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_out, */
+/* IDL: [in] uint32 num_values, */
+/* IDL: [out] [unique(1)] [in] [length_is(*buffer_size)] [size_is(*buffer_size)] uint8 *buffer, */
+/* IDL: [out] [in] [ref] uint32 *buffer_size */
+/* IDL: ); */
+
+static int
+winreg_dissect_QueryMultipleValues_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryMultipleValues";
+       offset = winreg_dissect_element_QueryMultipleValues_values_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValues_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValues_buffer_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_QueryMultipleValues_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryMultipleValues";
+       offset = winreg_dissect_element_QueryMultipleValues_key_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues_values_in(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues_num_values(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues_buffer_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_hostname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdownEx_hostname_, NDR_POINTER_UNIQUE, "Pointer to Hostname (uint16)",hf_winreg_winreg_InitiateSystemShutdownEx_hostname);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_hostname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_hostname, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_message(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_InitiateSystemShutdownEx_message_, NDR_POINTER_UNIQUE, "Pointer to Message (lsa_StringLarge)",hf_winreg_winreg_InitiateSystemShutdownEx_message);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_message_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_lsa_StringLarge(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_InitiateSystemShutdownEx_message,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_timeout, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_force_apps(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_force_apps, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_do_reboot(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_InitiateSystemShutdownEx_reason(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_InitiateSystemShutdownEx_reason, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_InitiateSystemShutdownEx( */
+/* IDL: [unique(1)] [in] uint16 *hostname, */
+/* IDL: [unique(1)] [in] lsa_StringLarge *message, */
+/* IDL: [in] uint32 timeout, */
+/* IDL: [in] uint8 force_apps, */
+/* IDL: [in] uint8 do_reboot, */
+/* IDL: [in] uint32 reason */
+/* IDL: ); */
+
+static int
+winreg_dissect_InitiateSystemShutdownEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="InitiateSystemShutdownEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_InitiateSystemShutdownEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="InitiateSystemShutdownEx";
+       offset = winreg_dissect_element_InitiateSystemShutdownEx_hostname(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdownEx_message(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdownEx_timeout(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdownEx_force_apps(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdownEx_do_reboot(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_InitiateSystemShutdownEx_reason(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKeyEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_SaveKeyEx_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SaveKeyEx_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_filename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKeyEx_filename_, NDR_POINTER_REF, "Pointer to Filename (winreg_String)",hf_winreg_winreg_SaveKeyEx_filename);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_filename_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SaveKeyEx_filename,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_sec_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_SaveKeyEx_sec_attrib_, NDR_POINTER_UNIQUE, "Pointer to Sec Attrib (KeySecurityAttribute)",hf_winreg_winreg_SaveKeyEx_sec_attrib);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_sec_attrib_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_KeySecurityAttribute(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_SaveKeyEx_sec_attrib,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_SaveKeyEx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_SaveKeyEx_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_SaveKeyEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *filename, */
+/* IDL: [unique(1)] [in] KeySecurityAttribute *sec_attrib, */
+/* IDL: [in] uint32 flags */
+/* IDL: ); */
+
+static int
+winreg_dissect_SaveKeyEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="SaveKeyEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_SaveKeyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SaveKeyEx";
+       offset = winreg_dissect_element_SaveKeyEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SaveKeyEx_filename(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SaveKeyEx_sec_attrib(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_SaveKeyEx_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPT_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKPT_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPT_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPT_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKPT_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPT_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKPT_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPT_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKPT( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKPT_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKPT";
+       offset = winreg_dissect_element_OpenHKPT_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKPT_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKPT";
+       offset = winreg_dissect_element_OpenHKPT_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKPT_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPN_system_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKPN_system_name_, NDR_POINTER_UNIQUE, "Pointer to System Name (uint16)",hf_winreg_system_name);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPN_system_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_winreg_system_name, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPN_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_OpenHKPN_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPN_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_OpenHKPN_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_OpenHKPN_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_OpenHKPN( */
+/* IDL: [unique(1)] [in] uint16 *system_name, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [out] [ref] policy_handle *handle */
+/* IDL: ); */
+
+static int
+winreg_dissect_OpenHKPN_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="OpenHKPN";
+       offset = winreg_dissect_element_OpenHKPN_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_OpenHKPN_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenHKPN";
+       offset = winreg_dissect_element_OpenHKPN_system_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_OpenHKPN_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_key_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_key_handle_, NDR_POINTER_REF, "Pointer to Key Handle (policy_handle)",hf_winreg_winreg_QueryMultipleValues2_key_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_key_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_key_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_in(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_in_, NDR_POINTER_REF, "Pointer to Values In (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues2_values_in);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_in_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_in__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_in__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues2_values_in,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_out(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_out_, NDR_POINTER_REF, "Pointer to Values Out (QueryMultipleValue)",hf_winreg_winreg_QueryMultipleValues2_values_out);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_out_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_values_out__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_values_out__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_QueryMultipleValue(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_QueryMultipleValues2_values_out,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_num_values(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_num_values, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_buffer_, NDR_POINTER_UNIQUE, "Pointer to Buffer (uint8)",hf_winreg_winreg_QueryMultipleValues2_buffer);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_buffer__);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_buffer, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_offered(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_offered_, NDR_POINTER_REF, "Pointer to Offered (uint32)",hf_winreg_winreg_QueryMultipleValues2_offered);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_offered_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_offered, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_needed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_QueryMultipleValues2_needed_, NDR_POINTER_REF, "Pointer to Needed (uint32)",hf_winreg_winreg_QueryMultipleValues2_needed);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_QueryMultipleValues2_needed_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_QueryMultipleValues2_needed, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_QueryMultipleValues2( */
+/* IDL: [in] [ref] policy_handle *key_handle, */
+/* IDL: [in] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_in, */
+/* IDL: [out] [ref] [length_is(num_values)] [size_is(num_values)] QueryMultipleValue *values_out, */
+/* IDL: [in] uint32 num_values, */
+/* IDL: [out] [unique(1)] [in] [length_is(*offered)] [size_is(*offered)] uint8 *buffer, */
+/* IDL: [in] [ref] uint32 *offered, */
+/* IDL: [out] [ref] uint32 *needed */
+/* IDL: ); */
+
+static int
+winreg_dissect_QueryMultipleValues2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="QueryMultipleValues2";
+       offset = winreg_dissect_element_QueryMultipleValues2_values_out(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValues2_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = winreg_dissect_element_QueryMultipleValues2_needed(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_QueryMultipleValues2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryMultipleValues2";
+       offset = winreg_dissect_element_QueryMultipleValues2_key_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues2_values_in(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues2_num_values(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues2_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_QueryMultipleValues2_offered(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_DeleteKeyEx_handle_, NDR_POINTER_REF, "Pointer to Handle (policy_handle)",hf_winreg_winreg_DeleteKeyEx_handle);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_policy_hnd(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_DeleteKeyEx_handle, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_key(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, winreg_dissect_element_DeleteKeyEx_key_, NDR_POINTER_REF, "Pointer to Key (winreg_String)",hf_winreg_winreg_DeleteKeyEx_key);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_key_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_struct_String(tvb,offset,pinfo,tree,drep,hf_winreg_winreg_DeleteKeyEx_key,0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_access_mask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = winreg_dissect_bitmap_AccessMask(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_DeleteKeyEx_access_mask, 0);
+
+       return offset;
+}
+
+static int
+winreg_dissect_element_DeleteKeyEx_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_winreg_DeleteKeyEx_reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR winreg_DeleteKeyEx( */
+/* IDL: [in] [ref] policy_handle *handle, */
+/* IDL: [in] [ref] winreg_String *key, */
+/* IDL: [in] winreg_AccessMask access_mask, */
+/* IDL: [in] uint32 reserved */
+/* IDL: ); */
+
+static int
+winreg_dissect_DeleteKeyEx_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="DeleteKeyEx";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_winreg_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+winreg_dissect_DeleteKeyEx_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="DeleteKeyEx";
+       offset = winreg_dissect_element_DeleteKeyEx_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_DeleteKeyEx_key(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_DeleteKeyEx_access_mask(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = winreg_dissect_element_DeleteKeyEx_reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector winreg_dissectors[] = {
+       { 0, "OpenHKCR",
+          winreg_dissect_OpenHKCR_request, winreg_dissect_OpenHKCR_response},
+       { 1, "OpenHKCU",
+          winreg_dissect_OpenHKCU_request, winreg_dissect_OpenHKCU_response},
+       { 2, "OpenHKLM",
+          winreg_dissect_OpenHKLM_request, winreg_dissect_OpenHKLM_response},
+       { 3, "OpenHKPD",
+          winreg_dissect_OpenHKPD_request, winreg_dissect_OpenHKPD_response},
+       { 4, "OpenHKU",
+          winreg_dissect_OpenHKU_request, winreg_dissect_OpenHKU_response},
+       { 5, "CloseKey",
+          winreg_dissect_CloseKey_request, winreg_dissect_CloseKey_response},
+       { 6, "CreateKey",
+          winreg_dissect_CreateKey_request, winreg_dissect_CreateKey_response},
+       { 7, "DeleteKey",
+          winreg_dissect_DeleteKey_request, winreg_dissect_DeleteKey_response},
+       { 8, "DeleteValue",
+          winreg_dissect_DeleteValue_request, winreg_dissect_DeleteValue_response},
+       { 9, "EnumKey",
+          winreg_dissect_EnumKey_request, winreg_dissect_EnumKey_response},
+       { 10, "EnumValue",
+          winreg_dissect_EnumValue_request, winreg_dissect_EnumValue_response},
+       { 11, "FlushKey",
+          winreg_dissect_FlushKey_request, winreg_dissect_FlushKey_response},
+       { 12, "GetKeySecurity",
+          winreg_dissect_GetKeySecurity_request, winreg_dissect_GetKeySecurity_response},
+       { 13, "LoadKey",
+          winreg_dissect_LoadKey_request, winreg_dissect_LoadKey_response},
+       { 14, "NotifyChangeKeyValue",
+          winreg_dissect_NotifyChangeKeyValue_request, winreg_dissect_NotifyChangeKeyValue_response},
+       { 15, "OpenKey",
+          winreg_dissect_OpenKey_request, winreg_dissect_OpenKey_response},
+       { 16, "QueryInfoKey",
+          winreg_dissect_QueryInfoKey_request, winreg_dissect_QueryInfoKey_response},
+       { 17, "QueryValue",
+          winreg_dissect_QueryValue_request, winreg_dissect_QueryValue_response},
+       { 18, "ReplaceKey",
+          winreg_dissect_ReplaceKey_request, winreg_dissect_ReplaceKey_response},
+       { 19, "RestoreKey",
+          winreg_dissect_RestoreKey_request, winreg_dissect_RestoreKey_response},
+       { 20, "SaveKey",
+          winreg_dissect_SaveKey_request, winreg_dissect_SaveKey_response},
+       { 21, "SetKeySecurity",
+          winreg_dissect_SetKeySecurity_request, winreg_dissect_SetKeySecurity_response},
+       { 22, "SetValue",
+          winreg_dissect_SetValue_request, winreg_dissect_SetValue_response},
+       { 23, "UnLoadKey",
+          winreg_dissect_UnLoadKey_request, winreg_dissect_UnLoadKey_response},
+       { 24, "InitiateSystemShutdown",
+          winreg_dissect_InitiateSystemShutdown_request, winreg_dissect_InitiateSystemShutdown_response},
+       { 25, "AbortSystemShutdown",
+          winreg_dissect_AbortSystemShutdown_request, winreg_dissect_AbortSystemShutdown_response},
+       { 26, "GetVersion",
+          winreg_dissect_GetVersion_request, winreg_dissect_GetVersion_response},
+       { 27, "OpenHKCC",
+          winreg_dissect_OpenHKCC_request, winreg_dissect_OpenHKCC_response},
+       { 28, "OpenHKDD",
+          winreg_dissect_OpenHKDD_request, winreg_dissect_OpenHKDD_response},
+       { 29, "QueryMultipleValues",
+          winreg_dissect_QueryMultipleValues_request, winreg_dissect_QueryMultipleValues_response},
+       { 30, "InitiateSystemShutdownEx",
+          winreg_dissect_InitiateSystemShutdownEx_request, winreg_dissect_InitiateSystemShutdownEx_response},
+       { 31, "SaveKeyEx",
+          winreg_dissect_SaveKeyEx_request, winreg_dissect_SaveKeyEx_response},
+       { 32, "OpenHKPT",
+          winreg_dissect_OpenHKPT_request, winreg_dissect_OpenHKPT_response},
+       { 33, "OpenHKPN",
+          winreg_dissect_OpenHKPN_request, winreg_dissect_OpenHKPN_response},
+       { 34, "QueryMultipleValues2",
+          winreg_dissect_QueryMultipleValues2_request, winreg_dissect_QueryMultipleValues2_response},
+       { 35, "DeleteKeyEx",
+          winreg_dissect_DeleteKeyEx_request, winreg_dissect_DeleteKeyEx_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_winreg(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_winreg_winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS,
+         { "Key Enumerate Sub Keys", "winreg.winreg_AccessMask.KEY_ENUMERATE_SUB_KEYS", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_ENUMERATE_SUB_KEYS_tfs), ( 0x00008 ), NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeKeyValue_string2,
+         { "String2", "winreg.winreg_NotifyChangeKeyValue.string2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdown_message,
+         { "Message", "winreg.winreg_InitiateSystemShutdown.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_String_name,
+         { "Name", "winreg.winreg_String.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdownEx_message,
+         { "Message", "winreg.winreg_InitiateSystemShutdownEx.message", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumValue_enum_index,
+         { "Enum Index", "winreg.winreg_EnumValue.enum_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_options,
+         { "Options", "winreg.winreg_CreateKey.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdownEx_timeout,
+         { "Timeout", "winreg.winreg_InitiateSystemShutdownEx.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_handle,
+         { "Handle", "winreg.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_max_valnamelen,
+         { "Max Valnamelen", "winreg.winreg_QueryInfoKey.max_valnamelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SecBuf_length,
+         { "Length", "winreg.winreg_SecBuf.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdown_do_reboot,
+         { "Do Reboot", "winreg.winreg_InitiateSystemShutdown.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_DeleteKeyEx_handle,
+         { "Handle", "winreg.winreg_DeleteKeyEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues_buffer_size,
+         { "Buffer Size", "winreg.winreg_QueryMultipleValues.buffer_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_new_handle,
+         { "New Handle", "winreg.winreg_CreateKey.new_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_needed,
+         { "Needed", "winreg.winreg_QueryMultipleValues2.needed", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_QueryMultipleValue_ve_valuelen,
+         { "Ve Valuelen", "winreg.QueryMultipleValue.ve_valuelen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKPT_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKPT.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKCC_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKCC.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_KeySecurityAttribute_sec_data,
+         { "Sec Data", "winreg.KeySecurityAttribute.sec_data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_GetKeySecurity_sec_info,
+         { "Sec Info", "winreg.winreg_GetKeySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKeyEx_handle,
+         { "Handle", "winreg.winreg_SaveKeyEx.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_KeyOptions_REG_OPTION_VOLATILE,
+         { "Reg Option Volatile", "winreg.winreg_KeyOptions.REG_OPTION_VOLATILE", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_VOLATILE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_num_values,
+         { "Num Values", "winreg.winreg_QueryMultipleValues2.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SetKeySecurity_sec_info,
+         { "Sec Info", "winreg.winreg_SetKeySecurity.sec_info", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_StringBuf_size,
+         { "Size", "winreg.winreg_StringBuf.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SecBuf_sd,
+         { "Sd", "winreg.winreg_SecBuf.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_secdescsize,
+         { "Secdescsize", "winreg.winreg_QueryInfoKey.secdescsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY,
+         { "Reg Notify Change Security", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_SECURITY", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_SECURITY_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_winreg_winreg_SetValue_name,
+         { "Name", "winreg.winreg_SetValue.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKey_flags,
+         { "Flags", "winreg.winreg_RestoreKey.flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_QueryMultipleValue_ve_type,
+         { "Ve Type", "winreg.QueryMultipleValue.ve_type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_access_mask,
+         { "Access Mask", "winreg.winreg_CreateKey.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_secdesc,
+         { "Secdesc", "winreg.winreg_CreateKey.secdesc", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_DeleteKeyEx_reserved,
+         { "Reserved", "winreg.winreg_DeleteKeyEx.reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdownEx_force_apps,
+         { "Force Apps", "winreg.winreg_InitiateSystemShutdownEx.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SetValue_type,
+         { "Type", "winreg.winreg_SetValue.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_opnum,
+         { "Operation", "winreg.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SetKeySecurity_sd,
+         { "Sd", "winreg.winreg_SetKeySecurity.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumValue_name,
+         { "Name", "winreg.winreg_EnumValue.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_LoadKey_filename,
+         { "Filename", "winreg.winreg_LoadKey.filename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_CREATE_LINK,
+         { "Key Create Link", "winreg.winreg_AccessMask.KEY_CREATE_LINK", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_LINK_tfs), ( 0x00020 ), NULL, HFILL }},
+       { &hf_winreg_winreg_DeleteValue_value,
+         { "Value", "winreg.winreg_DeleteValue.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_offered,
+         { "Offered", "winreg.winreg_QueryMultipleValues2.offered", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues_values_in,
+         { "Values In", "winreg.winreg_QueryMultipleValues.values_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_NOTIFY,
+         { "Key Notify", "winreg.winreg_AccessMask.KEY_NOTIFY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_NOTIFY_tfs), ( 0x00010 ), NULL, HFILL }},
+       { &hf_winreg_winreg_OpenKey_parent_handle,
+         { "Parent Handle", "winreg.winreg_OpenKey.parent_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_num_subkeys,
+         { "Num Subkeys", "winreg.winreg_QueryInfoKey.num_subkeys", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_WOW64_32KEY,
+         { "Key Wow64 32key", "winreg.winreg_AccessMask.KEY_WOW64_32KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_WOW64_32KEY_tfs), ( 0x00200 ), NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKeyEx_sec_attrib,
+         { "Sec Attrib", "winreg.winreg_SaveKeyEx.sec_attrib", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_last_changed_time,
+         { "Last Changed Time", "winreg.winreg_QueryInfoKey.last_changed_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_KeyOptions_REG_OPTION_OPEN_LINK,
+         { "Reg Option Open Link", "winreg.winreg_KeyOptions.REG_OPTION_OPEN_LINK", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_OPEN_LINK_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKPD_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKPD.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AbortSystemShutdown_server,
+         { "Server", "winreg.winreg_AbortSystemShutdown.server", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryValue_type,
+         { "Type", "winreg.winreg_QueryValue.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKeyFlags_REG_FORCE_RESTORE,
+         { "Reg Force Restore", "winreg.winreg_RestoreKeyFlags.REG_FORCE_RESTORE", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_FORCE_RESTORE_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_winreg_winreg_SecBuf_inherit,
+         { "Inherit", "winreg.winreg_SecBuf.inherit", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SetValue_size,
+         { "Size", "winreg.winreg_SetValue.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKey_handle,
+         { "Handle", "winreg.winreg_SaveKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET,
+         { "Reg Notify Change Last Set", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_LAST_SET", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_LAST_SET_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_winreg_winreg_ReplaceKey_handle,
+         { "Handle", "winreg.winreg_ReplaceKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_GetVersion_version,
+         { "Version", "winreg.winreg_GetVersion.version", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_ReplaceKey_old_file,
+         { "Old File", "winreg.winreg_ReplaceKey.old_file", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_QUERY_VALUE,
+         { "Key Query Value", "winreg.winreg_AccessMask.KEY_QUERY_VALUE", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_QUERY_VALUE_tfs), ( 0x00001 ), NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_action_taken,
+         { "Action Taken", "winreg.winreg_CreateKey.action_taken", FT_UINT32, BASE_DEC, VALS(winreg_winreg_CreateAction_vals), 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_num_values,
+         { "Num Values", "winreg.winreg_QueryInfoKey.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE,
+         { "Reg Whole Hive Volatile", "winreg.winreg_RestoreKeyFlags.REG_WHOLE_HIVE_VOLATILE", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_WHOLE_HIVE_VOLATILE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME,
+         { "Reg Notify Change Name", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_NAME", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_NAME_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_SET_VALUE,
+         { "Key Set Value", "winreg.winreg_AccessMask.KEY_SET_VALUE", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_SET_VALUE_tfs), ( 0x00002 ), NULL, HFILL }},
+       { &hf_winreg_winreg_EnumKey_enum_index,
+         { "Enum Index", "winreg.winreg_EnumKey.enum_index", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKey_handle,
+         { "Handle", "winreg.winreg_RestoreKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SetValue_data,
+         { "Data", "winreg.winreg_SetValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdown_force_apps,
+         { "Force Apps", "winreg.winreg_InitiateSystemShutdown.force_apps", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeKeyValue_string1,
+         { "String1", "winreg.winreg_NotifyChangeKeyValue.string1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKeyEx_flags,
+         { "Flags", "winreg.winreg_SaveKeyEx.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues_buffer,
+         { "Buffer", "winreg.winreg_QueryMultipleValues.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKDD_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKDD.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_classname,
+         { "Classname", "winreg.winreg_QueryInfoKey.classname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_WOW64_64KEY,
+         { "Key Wow64 64key", "winreg.winreg_AccessMask.KEY_WOW64_64KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_WOW64_64KEY_tfs), ( 0x00100 ), NULL, HFILL }},
+       { &hf_winreg_winreg_ReplaceKey_subkey,
+         { "Subkey", "winreg.winreg_ReplaceKey.subkey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_max_classlen,
+         { "Max Classlen", "winreg.winreg_QueryInfoKey.max_classlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_ValNameBuf_length,
+         { "Length", "winreg.winreg_ValNameBuf.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeKeyValue_notify_filter,
+         { "Notify Filter", "winreg.winreg_NotifyChangeKeyValue.notify_filter", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_UnLoadKey_subkey,
+         { "Subkey", "winreg.winreg_UnLoadKey.subkey", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_ReplaceKey_new_file,
+         { "New File", "winreg.winreg_ReplaceKey.new_file", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKeyEx_filename,
+         { "Filename", "winreg.winreg_SaveKeyEx.filename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_QueryMultipleValue_ve_valuename,
+         { "Ve Valuename", "winreg.QueryMultipleValue.ve_valuename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_key_handle,
+         { "Key Handle", "winreg.winreg_QueryMultipleValues2.key_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_KeySecurityData_size,
+         { "Size", "winreg.KeySecurityData.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE,
+         { "Reg Option Backup Restore", "winreg.winreg_KeyOptions.REG_OPTION_BACKUP_RESTORE", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_BACKUP_RESTORE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_winreg_winreg_EnumKey_name,
+         { "Name", "winreg.winreg_EnumKey.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_LoadKey_keyname,
+         { "Keyname", "winreg.winreg_LoadKey.keyname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues_key_handle,
+         { "Key Handle", "winreg.winreg_QueryMultipleValues.key_handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumValue_type,
+         { "Type", "winreg.winreg_EnumValue.type", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumKey_last_changed_time,
+         { "Last Changed Time", "winreg.winreg_EnumKey.last_changed_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumValue_size,
+         { "Size", "winreg.winreg_EnumValue.size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKey_sec_attrib,
+         { "Sec Attrib", "winreg.winreg_SaveKey.sec_attrib", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_KeyOptions_REG_OPTION_CREATE_LINK,
+         { "Reg Option Create Link", "winreg.winreg_KeyOptions.REG_OPTION_CREATE_LINK", FT_BOOLEAN, 32, TFS(&winreg_KeyOptions_REG_OPTION_CREATE_LINK_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_winreg_winreg_OpenKey_options,
+         { "Options", "winreg.winreg_OpenKey.options", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_SaveKey_filename,
+         { "Filename", "winreg.winreg_SaveKey.filename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryValue_data,
+         { "Data", "winreg.winreg_QueryValue.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_buffer,
+         { "Buffer", "winreg.winreg_QueryMultipleValues2.buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdown_hostname,
+         { "Hostname", "winreg.winreg_InitiateSystemShutdown.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_UnLoadKey_handle,
+         { "Handle", "winreg.winreg_UnLoadKey.handle", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues_values_out,
+         { "Values Out", "winreg.winreg_QueryMultipleValues.values_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_KeySecurityData_data,
+         { "Data", "winreg.KeySecurityData.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenKey_access_mask,
+         { "Access Mask", "winreg.winreg_OpenKey.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenKey_keyname,
+         { "Keyname", "winreg.winreg_OpenKey.keyname", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdownEx_do_reboot,
+         { "Do Reboot", "winreg.winreg_InitiateSystemShutdownEx.do_reboot", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeKeyValue_watch_subtree,
+         { "Watch Subtree", "winreg.winreg_NotifyChangeKeyValue.watch_subtree", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_DeleteKeyEx_access_mask,
+         { "Access Mask", "winreg.winreg_DeleteKeyEx.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_DeleteKeyEx_key,
+         { "Key", "winreg.winreg_DeleteKeyEx.key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryValue_data_length,
+         { "Data Length", "winreg.winreg_QueryValue.data_length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_ValNameBuf_size,
+         { "Size", "winreg.winreg_ValNameBuf.size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_KeySecurityData_len,
+         { "Len", "winreg.KeySecurityData.len", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_name,
+         { "Name", "winreg.winreg_CreateKey.name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES,
+         { "Reg Notify Change Attributes", "winreg.winreg_NotifyChangeType.REG_NOTIFY_CHANGE_ATTRIBUTES", FT_BOOLEAN, 32, TFS(&winreg_NotifyChangeType_REG_NOTIFY_CHANGE_ATTRIBUTES_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_winreg_winreg_String_name_len,
+         { "Name Len", "winreg.winreg_String.name_len", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_DeleteKey_key,
+         { "Key", "winreg.winreg_DeleteKey.key", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryValue_data_size,
+         { "Data Size", "winreg.winreg_QueryValue.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_system_name,
+         { "System Name", "winreg.system_name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues_num_values,
+         { "Num Values", "winreg.winreg_QueryMultipleValues.num_values", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_QueryMultipleValue_ve_valueptr,
+         { "Ve Valueptr", "winreg.QueryMultipleValue.ve_valueptr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_KeySecurityAttribute_data_size,
+         { "Data Size", "winreg.KeySecurityAttribute.data_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_access_required,
+         { "Access Required", "winreg.access_required", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_StringBuf_name,
+         { "Name", "winreg.winreg_StringBuf.name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeKeyValue_unknown2,
+         { "Unknown2", "winreg.winreg_NotifyChangeKeyValue.unknown2", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_ValNameBuf_name,
+         { "Name", "winreg.winreg_ValNameBuf.name", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_StringBuf_length,
+         { "Length", "winreg.winreg_StringBuf.length", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_values_in,
+         { "Values In", "winreg.winreg_QueryMultipleValues2.values_in", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_String_name_size,
+         { "Name Size", "winreg.winreg_String.name_size", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_NotifyChangeKeyValue_unknown,
+         { "Unknown", "winreg.winreg_NotifyChangeKeyValue.unknown", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_AccessMask_KEY_CREATE_SUB_KEY,
+         { "Key Create Sub Key", "winreg.winreg_AccessMask.KEY_CREATE_SUB_KEY", FT_BOOLEAN, 32, TFS(&winreg_AccessMask_KEY_CREATE_SUB_KEY_tfs), ( 0x00004 ), NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKCR_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKCR.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKey_filename,
+         { "Filename", "winreg.winreg_RestoreKey.filename", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKeyFlags_REG_REFRESH_HIVE,
+         { "Reg Refresh Hive", "winreg.winreg_RestoreKeyFlags.REG_REFRESH_HIVE", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_REFRESH_HIVE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_max_valbufsize,
+         { "Max Valbufsize", "winreg.winreg_QueryInfoKey.max_valbufsize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdownEx_reason,
+         { "Reason", "winreg.winreg_InitiateSystemShutdownEx.reason", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKLM_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKLM.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumValue_length,
+         { "Length", "winreg.winreg_EnumValue.length", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryInfoKey_max_subkeylen,
+         { "Max Subkeylen", "winreg.winreg_QueryInfoKey.max_subkeylen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdown_timeout,
+         { "Timeout", "winreg.winreg_InitiateSystemShutdown.timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_InitiateSystemShutdownEx_hostname,
+         { "Hostname", "winreg.winreg_InitiateSystemShutdownEx.hostname", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_KeySecurityAttribute_inherit,
+         { "Inherit", "winreg.KeySecurityAttribute.inherit", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_werror,
+         { "Windows Error", "winreg.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKPN_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKPN.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryMultipleValues2_values_out,
+         { "Values Out", "winreg.winreg_QueryMultipleValues2.values_out", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumKey_keyclass,
+         { "Keyclass", "winreg.winreg_EnumKey.keyclass", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_CreateKey_keyclass,
+         { "Keyclass", "winreg.winreg_CreateKey.keyclass", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_EnumValue_value,
+         { "Value", "winreg.winreg_EnumValue.value", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKCU_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKCU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_GetKeySecurity_sd,
+         { "Sd", "winreg.winreg_GetKeySecurity.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_QueryValue_value_name,
+         { "Value Name", "winreg.winreg_QueryValue.value_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_winreg_winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH,
+         { "Reg No Lazy Flush", "winreg.winreg_RestoreKeyFlags.REG_NO_LAZY_FLUSH", FT_BOOLEAN, 32, TFS(&winreg_RestoreKeyFlags_REG_NO_LAZY_FLUSH_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_winreg_winreg_OpenHKU_access_mask,
+         { "Access Mask", "winreg.winreg_OpenHKU.access_mask", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_winreg,
+               &ett_winreg_security_secinfo,
+               &ett_winreg_winreg_AccessMask,
+               &ett_winreg_winreg_String,
+               &ett_winreg_KeySecurityData,
+               &ett_winreg_winreg_SecBuf,
+               &ett_winreg_winreg_KeyOptions,
+               &ett_winreg_winreg_StringBuf,
+               &ett_winreg_winreg_ValNameBuf,
+               &ett_winreg_winreg_NotifyChangeType,
+               &ett_winreg_winreg_RestoreKeyFlags,
+               &ett_winreg_KeySecurityAttribute,
+               &ett_winreg_QueryMultipleValue,
+       };
+
+       proto_dcerpc_winreg = proto_register_protocol("Remote Registry Service", "WINREG", "winreg");
+       proto_register_field_array(proto_dcerpc_winreg, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_winreg(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_winreg, ett_dcerpc_winreg,
+               &uuid_dcerpc_winreg, ver_dcerpc_winreg,
+               winreg_dissectors, hf_winreg_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-winreg.h b/bin/default/librpc/gen_ndr/packet-dcerpc-winreg.h
new file mode 100644 (file)
index 0000000..ca10004
--- /dev/null
@@ -0,0 +1,50 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/winreg.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/winreg.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-lsa.h"
+#include "packet-dcerpc-security.h"
+#include "packet-dcerpc-misc.h"
+
+#ifndef __PACKET_DCERPC_WINREG_H
+#define __PACKET_DCERPC_WINREG_H
+
+#define REG_KEY_READ   ( (STANDARD_RIGHTS_READ_ACCESS|KEY_QUERY_VALUE|KEY_ENUMERATE_SUB_KEYS|KEY_NOTIFY) )
+
+#define REG_KEY_EXECUTE        ( REG_KEY_READ )
+
+#define REG_KEY_WRITE  ( (STANDARD_RIGHTS_WRITE_ACCESS|KEY_SET_VALUE|KEY_CREATE_SUB_KEY) )
+
+#define REG_KEY_ALL    ( (STANDARD_RIGHTS_REQUIRED_ACCESS|REG_KEY_READ|REG_KEY_WRITE|KEY_CREATE_LINK) )
+
+#define REG_OPTION_NON_VOLATILE        ( 0x00000000 )
+
+int winreg_dissect_bitmap_security_secinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_AccessMask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_String(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_KeySecurityData(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_SecBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_KeyOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define REG_ACTION_NONE (0)
+#define REG_CREATED_NEW_KEY (1)
+#define REG_OPENED_EXISTING_KEY (2)
+extern const value_string winreg_winreg_CreateAction_vals[];
+int winreg_dissect_enum_CreateAction(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int winreg_dissect_struct_StringBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_ValNameBuf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_NotifyChangeType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_bitmap_RestoreKeyFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_KeySecurityAttribute(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int winreg_dissect_struct_QueryMultipleValue(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_WINREG_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.c
new file mode 100644 (file)
index 0000000..578875e
--- /dev/null
@@ -0,0 +1,11029 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wkssvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wkssvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-wkssvc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_wkssvc = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo100 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo101 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo102 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo502 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1010 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1011 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1012 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1013 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1018 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1023 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1027 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1028 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1032 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1033 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1041 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1042 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1043 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1044 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1045 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1046 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1047 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1048 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1049 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1050 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1051 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1052 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1053 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1054 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1055 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1056 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1057 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1058 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1059 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1060 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1061 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo1062 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaInfo = -1;
+static gint ett_wkssvc_wkssvc_NetrWkstaUserInfo0 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr0 = -1;
+static gint ett_wkssvc_wkssvc_NetrWkstaUserInfo1 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr1 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaEnumUsersInfo = -1;
+static gint ett_wkssvc_wkssvc_NetrWkstaUserInfo1101 = -1;
+static gint ett_wkssvc_wkssvc_NetrWkstaUserInfo = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaTransportInfo0 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaTransportCtr0 = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaTransportCtr = -1;
+static gint ett_wkssvc_wkssvc_NetWkstaTransportInfo = -1;
+static gint ett_wkssvc_wkssvc_NetrUseInfo3 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseInfo2 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseInfo1 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseInfo0 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseGetInfoCtr = -1;
+static gint ett_wkssvc_wkssvc_NetrUseEnumCtr2 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseEnumCtr1 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseEnumCtr0 = -1;
+static gint ett_wkssvc_wkssvc_NetrUseEnumCtr = -1;
+static gint ett_wkssvc_wkssvc_NetrUseEnumInfo = -1;
+static gint ett_wkssvc_wkssvc_NetrWorkstationStatistics = -1;
+static gint ett_wkssvc_wkssvc_renameflags = -1;
+static gint ett_wkssvc_wkssvc_PasswordBuffer = -1;
+static gint ett_wkssvc_wkssvc_joinflags = -1;
+static gint ett_wkssvc_wkssvc_ComputerNamesCtr = -1;
+
+
+/* Header field declarations */
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_use_count = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo0_quality_of_service = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1045_pipe_maximum = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_password = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain2_join_flags = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr1 = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnum_entries_read = -1;
+static gint hf_wkssvc_wkssvc_NetrSetPrimaryComputername_EncryptedPassword = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_parm_err = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnum_info = -1;
+static gint hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Account = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown14 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user0 = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_user_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo101_version_major = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo1_other_domains = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus_Account = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportCtr_ctr0 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_dgram_event_reset_freq = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_lan_root = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo1_user_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info502 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown32 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown29 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1055_use_raw_write = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1051 = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName2_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_dormant_file_limit = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_maximum_collection_count = -1;
+static gint hf_wkssvc_wkssvc_NetrMessageBufferSend_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_write_raw_data = -1;
+static gint hf_wkssvc_wkssvc_NetrEnumerateComputerNames_Reserved = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_size_char_buf = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportCtr0_array = -1;
+static gint hf_wkssvc_wkssvc_NetrEnumerateComputerNames_name_type = -1;
+static gint hf_wkssvc_wkssvc_NetrUseAdd_parm_err = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown9 = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus2_num_ous = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown38 = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo1101_other_domains = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaGetInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_ref_count = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown4 = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain2_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr2 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown3 = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain_join_flags = -1;
+static gint hf_wkssvc_wkssvc_NetrUseDel_use_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_buf_files_deny_write = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfo_use_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1060 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown4 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1057 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo0_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr1_array = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown20 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnum_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_entries_read = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown37 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1058 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfo_server_name = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1043_lock_maximum = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown24 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseDel_force_cond = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsers_resume_handle = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr0_count = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1053_utilize_nt_caching = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_num_srv_announce_buffers = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo100_platform_id = -1;
+static gint hf_wkssvc_wkssvc_NetrSetPrimaryComputername_primary_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown36 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info0 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfo_ctr = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo3_unknown2 = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1048_use_opportunistic_locking = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown27 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo0_vc_count = -1;
+static gint hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_EncryptedPassword = -1;
+static gint hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Account = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_info = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsers_entries_read = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsers_prefmaxlen = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_domain = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown16 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_log_election_packets = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_raw_read = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus_unknown = -1;
+static gint hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Reserved = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1027_errorlog_sz = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1052 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1012_maximum_collection_count = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain2_admin_account = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr0 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1050_use_close_behind = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_unlock_behind = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user1 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_version_minor = -1;
+static gint hf_wkssvc_wkssvc_ComputerNamesCtr_count = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1048 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1018_session_timeout = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_keep_connection = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown31 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_max_commands = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_lock_quota = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown40 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1033_max_threads = -1;
+static gint hf_wkssvc_wkssvc_NetrUseAdd_level = -1;
+static gint hf_wkssvc_wkssvc_renameflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown25 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseDel_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_server = -1;
+static gint hf_wkssvc_wkssvc_PasswordBuffer_data = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo3_unknown1 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_cache_file_timeout = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_num_mailslot_buffers = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1055 = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain_password = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown13 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_utilize_nt_caching = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1061_use_512_byte_max_transfer = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_info = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaSetInfo_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain2_encrypted_password = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnum_prefmaxlen = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown2 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportDel_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain2_account_ou = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DEFER_SPN = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1010_char_wait = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain_RenameOptions = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsers_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain_Account = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown23 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumInfo_ctr = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersInfo_ctr = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_user0 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_buf_read_only_files = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo101_lan_root = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_TYPE = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_buf_named_pipes = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_ref_count = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1044_pipe_increment = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED = -1;
+static gint hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr2_array = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaGetInfo_info = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_max_illegal_dgram_events = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1047 = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName_Password = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1028_print_buf_time = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info3 = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus2_Account = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_RenameOptions = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1101 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown17 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1013 = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName2_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown34 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1018 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_entries_read = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1057_use_encryption = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_status = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo0_wan_link = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown35 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown7 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaSetInfo_parm_error = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo0_remote = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo_info0 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1060_force_core_create_mode = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserInfo0_user_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info101 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo0_address = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown39 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr2_count = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinInformation_name_buffer = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain_NewMachineName = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_lock_maximum = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain_Account = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1049 = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus_num_ous = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_asg_type = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_password = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_local = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1054_use_raw_read = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1023_size_char_buf = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo100_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportEnum_max_buffer = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1042 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1045 = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_unknown = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1011 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1049_use_unlock_behind = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1062_read_ahead_throughput = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1056_use_write_raw_data = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportAdd_info0 = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown18 = -1;
+static gint hf_wkssvc_wkssvc_NetrMessageBufferSend_message_size = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_UNSECURE = -1;
+static gint hf_wkssvc_wkssvc_ComputerNamesCtr_computer_name = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName2_name_type = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName2_Account = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportEnum_total_entries = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName2_EncryptedPassword = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportDel_unknown3 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1062 = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_unknown = -1;
+static gint hf_wkssvc_wkssvc_NetrAddAlternateComputerName_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain2_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info102 = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain_Account = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1046_dormant_file_limit = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportAdd_parm_err = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_version_major = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown22 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_use_count = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain2_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_512_byte_max_transfer = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportEnum_info = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1033 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1046 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaSetInfo_info = -1;
+static gint hf_wkssvc_wkssvc_NetrMessageBufferSend_message_sender_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_remote = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr1_count = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1047_cache_file_timeout = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info2 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown30 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1028 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info100 = -1;
+static gint hf_wkssvc_wkssvc_NetrLogonDomainNameDel_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1013_keep_connection = -1;
+static gint hf_wkssvc_wkssvc_NetrEnumerateComputerNames_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_info = -1;
+static gint hf_wkssvc_wkssvc_NetrMessageBufferSend_message_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_session_timeout = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumCtr0_array = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown6 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportInfo_ctr = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_collection_time = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1054 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown10 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1032_wrk_heuristics = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo101_version_minor = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportAdd_level = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown33 = -1;
+static gint hf_wkssvc_wkssvc_NetrEnumerateComputerNames_ctr = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportEnum_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_max_threads = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1042_lock_increment = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1050 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_lock_increment = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_local = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1041 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_status = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown12 = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain_account_ou = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown3 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown19 = -1;
+static gint hf_wkssvc_wkssvc_NetrAddAlternateComputerName_EncryptedPassword = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1058_buf_files_deny_write = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain2_account = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown2 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1043 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown21 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_encryption = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1059 = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName_name_type = -1;
+static gint hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportCtr0_count = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnumInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1041_lock_quota = -1;
+static gint hf_wkssvc_wkssvc_NetrUseAdd_ctr = -1;
+static gint hf_wkssvc_wkssvc_NetrUseEnum_resume_handle = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo100_version_major = -1;
+static gint hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Reserved = -1;
+static gint hf_wkssvc_wkssvc_NetrUseAdd_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown11 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1012 = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain_password = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain_password = -1;
+static gint hf_wkssvc_werror = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus2_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_pipe_increment = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1044 = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus2_EncryptedPassword = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1010 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1051_buf_named_pipes = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_read_ahead_throughput = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus_ous = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown5 = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_NewMachineName = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportDel_transport_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo0_local = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_raw_write = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus2_ous = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo101_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinableOus2_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1059_buf_read_only_files = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo100_version_minor = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_close_behind = -1;
+static gint hf_wkssvc_opnum = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_force_core_create_mode = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1011_collection_time = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinInformation_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo101_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1061 = -1;
+static gint hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info1 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetrSetPrimaryComputername_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain_unjoin_flags = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaTransportEnum_resume_handle = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_platform_id = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown8 = -1;
+static gint hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Reserved = -1;
+static gint hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME = -1;
+static gint hf_wkssvc_wkssvc_NetrWkstaTransportAdd_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo101_platform_id = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_opportunistic_locking = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo100_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown28 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_user1 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaGetInfo_server_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1023 = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown15 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_use_lock_read_unlock = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo1_asg_type = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain2_unjoin_flags = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown1 = -1;
+static gint hf_wkssvc_wkssvc_NetrLogonDomainNameAdd_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown26 = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_Account = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaEnumUsers_info = -1;
+static gint hf_wkssvc_wkssvc_NetrGetJoinInformation_name_type = -1;
+static gint hf_wkssvc_wkssvc_NetrAddAlternateComputerName_NewAlternateMachineName = -1;
+static gint hf_wkssvc_wkssvc_NetrUnjoinDomain2_encrypted_password = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_pipe_maximum = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo502_char_wait = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1027 = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo1052_use_lock_read_unlock = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1056 = -1;
+static gint hf_wkssvc_wkssvc_NetrValidateName_Account = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1032 = -1;
+static gint hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Account = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo_info1053 = -1;
+static gint hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_EncryptedPassword = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaSetInfo_level = -1;
+static gint hf_wkssvc_wkssvc_NetrJoinDomain_domain_name = -1;
+static gint hf_wkssvc_wkssvc_NetWkstaInfo102_logged_on_users = -1;
+static gint hf_wkssvc_wkssvc_NetrUseInfo2_remote = -1;
+
+static gint proto_dcerpc_wkssvc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_wkssvc = {
+       0x6bffd098, 0xa112, 0x3610,
+       { 0x98, 0x33, 0x46, 0xc3, 0xf8, 0x7e, 0x34, 0x5a }
+};
+static guint16 ver_dcerpc_wkssvc = 1;
+
+const value_string wkssvc_srvsvc_PlatformId_vals[] = {
+{ 0, NULL }
+};
+static int wkssvc_dissect_element_NetWkstaInfo100_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo100_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo100_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo100_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo100_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo100_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo100_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_lan_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo101_lan_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_lan_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_lan_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo102_logged_on_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_char_wait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_collection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_maximum_collection_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_keep_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_max_commands(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_session_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_size_char_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_max_threads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_lock_quota(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_lock_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_lock_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_pipe_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_pipe_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_cache_file_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_dormant_file_limit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_read_ahead_throughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_num_mailslot_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_num_srv_announce_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_max_illegal_dgram_events(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_dgram_event_reset_freq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_log_election_packets(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_opportunistic_locking(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_unlock_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_close_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_buf_named_pipes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_lock_read_unlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_utilize_nt_caching(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_raw_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_raw_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_write_raw_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_encryption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_buf_files_deny_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_buf_read_only_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_force_core_create_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo502_use_512_byte_max_transfer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1010_char_wait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1011_collection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1012_maximum_collection_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1013_keep_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1018_session_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1023_size_char_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1027_errorlog_sz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1028_print_buf_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1032_wrk_heuristics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1033_max_threads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1041_lock_quota(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1042_lock_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1043_lock_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1044_pipe_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1045_pipe_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1046_dormant_file_limit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1047_cache_file_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1048_use_opportunistic_locking(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1049_use_unlock_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1050_use_close_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1051_buf_named_pipes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1052_use_lock_read_unlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1053_utilize_nt_caching(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1054_use_raw_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1055_use_raw_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1056_use_write_raw_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1057_use_encryption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1058_buf_files_deny_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1059_buf_read_only_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1060_force_core_create_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1061_use_512_byte_max_transfer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo1062_read_ahead_throughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info102_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1010_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1011(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1011_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1012(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1012_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1013(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1013_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1018_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1023(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1023_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1027(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1027_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1028(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1028_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1032(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1032_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1033(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1033_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1041(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1041_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1042(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1042_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1043(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1043_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1044(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1044_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1045(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1045_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1046(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1046_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1047(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1047_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1048(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1048_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1049(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1049_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1050(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1050_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1051(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1051_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1052(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1052_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1053(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1053_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1054(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1054_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1055(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1055_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1056(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1056_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1057(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1057_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1058(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1058_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1059(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1059_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1060(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1060_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1061(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1061_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1062(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaInfo_info1062_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo0_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo0_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr0_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_logon_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_other_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_other_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr1_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr_user0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr_user0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr_user1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersCtr_user1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsersInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int wkssvc_dissect_element_NetWkstaEnumUsersInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1101_other_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo1101_other_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo_info1101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserInfo_info1101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_quality_of_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_vc_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo0_wan_link(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int wkssvc_dissect_element_NetWkstaTransportInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int wkssvc_dissect_element_NetrUseInfo3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo3_unknown1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo3_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_local_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_remote_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_asg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_ref_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_use_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_local_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_remote_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_asg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_ref_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo1_use_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo0_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo0_local_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo0_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseInfo0_remote_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfoCtr_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnumInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int wkssvc_dissect_element_NetrUseEnumInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown15(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown19(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown22(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown27(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown29(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown30(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown31(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown33(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown34(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown35(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown36(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown37(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown38(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown39(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatistics_unknown40(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string wkssvc_renameflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE_tfs = {
+   "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE is SET",
+   "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE is NOT SET",
+};
+const value_string wkssvc_wkssvc_NetValidateNameType_vals[] = {
+       { NetSetupUnknown, "NetSetupUnknown" },
+       { NetSetupMachine, "NetSetupMachine" },
+       { NetSetupWorkgroup, "NetSetupWorkgroup" },
+       { NetSetupDomain, "NetSetupDomain" },
+       { NetSetupNonExistentDomain, "NetSetupNonExistentDomain" },
+       { NetSetupDnsMachine, "NetSetupDnsMachine" },
+{ 0, NULL }
+};
+const value_string wkssvc_wkssvc_NetJoinStatus_vals[] = {
+       { NET_SETUP_UNKNOWN_STATUS, "NET_SETUP_UNKNOWN_STATUS" },
+       { NET_SETUP_UNJOINED, "NET_SETUP_UNJOINED" },
+       { NET_SETUP_WORKGROUP_NAME, "NET_SETUP_WORKGROUP_NAME" },
+       { NET_SETUP_DOMAIN_NAME, "NET_SETUP_DOMAIN_NAME" },
+{ 0, NULL }
+};
+static int wkssvc_dissect_element_PasswordBuffer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_PasswordBuffer_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS_tfs = {
+   "WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS is SET",
+   "WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME_tfs = {
+   "WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME is SET",
+   "WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT_tfs = {
+   "WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT is SET",
+   "WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DEFER_SPN_tfs = {
+   "WKSSVC_JOIN_FLAGS_DEFER_SPN is SET",
+   "WKSSVC_JOIN_FLAGS_DEFER_SPN is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED_tfs = {
+   "WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED is SET",
+   "WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_UNSECURE_tfs = {
+   "WKSSVC_JOIN_FLAGS_JOIN_UNSECURE is SET",
+   "WKSSVC_JOIN_FLAGS_JOIN_UNSECURE is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED_tfs = {
+   "WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED is SET",
+   "WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE_tfs = {
+   "WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE is SET",
+   "WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE_tfs = {
+   "WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE is SET",
+   "WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE_tfs = {
+   "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE is SET",
+   "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE is NOT SET",
+};
+static const true_false_string wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_TYPE_tfs = {
+   "WKSSVC_JOIN_FLAGS_JOIN_TYPE is SET",
+   "WKSSVC_JOIN_FLAGS_JOIN_TYPE is NOT SET",
+};
+const value_string wkssvc_wkssvc_ComputerNameType_vals[] = {
+       { NetPrimaryComputerName, "NetPrimaryComputerName" },
+       { NetAlternateComputerNames, "NetAlternateComputerNames" },
+       { NetAllComputerNames, "NetAllComputerNames" },
+       { NetComputerNameTypeMax, "NetComputerNameTypeMax" },
+{ 0, NULL }
+};
+static int wkssvc_dissect_element_ComputerNamesCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_ComputerNamesCtr_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_ComputerNamesCtr_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_ComputerNamesCtr_computer_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaGetInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaGetInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_prefmaxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_entries_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserGetInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserGetInfo_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportDel_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportDel_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportDel_transport_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportDel_transport_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWkstaTransportDel_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_parm_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseAdd_parm_err_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_use_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_use_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseGetInfo_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseDel_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseDel_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseDel_use_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseDel_use_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseDel_force_cond(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_prefmaxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_entries_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUseEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrMessageBufferSend_message_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrWorkstationStatisticsGet_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrLogonDomainNameAdd_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrLogonDomainNameAdd_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrLogonDomainNameDel_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrLogonDomainNameDel_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_account_ou(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_account_ou_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain_join_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain_unjoin_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_NewMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_NewMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain_RenameOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_Password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_name_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_name_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_name_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinInformation_name_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_num_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_num_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_ous__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_ous___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus_ous____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_account_ou(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_account_ou_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_admin_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_admin_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_encrypted_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_encrypted_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrJoinDomain2_join_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_encrypted_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_encrypted_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrUnjoinDomain2_unjoin_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_NewMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_NewMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRenameMachineInDomain2_RenameOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrValidateName2_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_num_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_num_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_ous__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_ous___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrGetJoinableOus2_ous____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_NewAlternateMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_NewAlternateMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrAddAlternateComputerName_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrRemoveAlternateComputerName_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_primary_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_primary_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrSetPrimaryComputername_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int wkssvc_dissect_element_NetrEnumerateComputerNames_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: enum { */
+/* IDL: } */
+
+int
+wkssvc_dissect_enum_srvsvc_PlatformId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint32 parameter=0;
+       if(param){
+               parameter=(guint32)*param;
+       }
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        srvsvc_PlatformId platform_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_name; */
+/* IDL:        uint32 version_major; */
+/* IDL:        uint32 version_minor; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_srvsvc_PlatformId(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo100_platform_id, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo100_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo100_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo100_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo100_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo100_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo100_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo100_version_major, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo100_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo100_version_minor, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo100);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo100_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo100_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo100_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo100_version_major(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo100_version_minor(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        srvsvc_PlatformId platform_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_name; */
+/* IDL:        uint32 version_major; */
+/* IDL:        uint32 version_minor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *lan_root; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_srvsvc_PlatformId(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo101_platform_id, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo101_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo101_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo101_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo101_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo101_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo101_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo101_version_major, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo101_version_minor, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_lan_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo101_lan_root_, NDR_POINTER_UNIQUE, "Pointer to Lan Root (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo101_lan_root);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo101_lan_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo101_lan_root, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo101);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo101_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo101_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo101_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo101_version_major(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo101_version_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo101_lan_root(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        srvsvc_PlatformId platform_id; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *server_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_name; */
+/* IDL:        uint32 version_major; */
+/* IDL:        uint32 version_minor; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *lan_root; */
+/* IDL:        uint32 logged_on_users; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_platform_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_srvsvc_PlatformId(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo102_platform_id, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo102_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo102_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo102_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo102_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo102_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo102_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_version_major(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo102_version_major, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_version_minor(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo102_version_minor, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_lan_root(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo102_lan_root_, NDR_POINTER_UNIQUE, "Pointer to Lan Root (uint16)",hf_wkssvc_wkssvc_NetWkstaInfo102_lan_root);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_lan_root_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaInfo102_lan_root, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo102_logged_on_users(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo102_logged_on_users, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo102);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo102_platform_id(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo102_server_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo102_domain_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo102_version_major(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo102_version_minor(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo102_lan_root(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo102_logged_on_users(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 char_wait; */
+/* IDL:        uint32 collection_time; */
+/* IDL:        uint32 maximum_collection_count; */
+/* IDL:        uint32 keep_connection; */
+/* IDL:        uint32 max_commands; */
+/* IDL:        uint32 session_timeout; */
+/* IDL:        uint32 size_char_buf; */
+/* IDL:        uint32 max_threads; */
+/* IDL:        uint32 lock_quota; */
+/* IDL:        uint32 lock_increment; */
+/* IDL:        uint32 lock_maximum; */
+/* IDL:        uint32 pipe_increment; */
+/* IDL:        uint32 pipe_maximum; */
+/* IDL:        uint32 cache_file_timeout; */
+/* IDL:        uint32 dormant_file_limit; */
+/* IDL:        uint32 read_ahead_throughput; */
+/* IDL:        uint32 num_mailslot_buffers; */
+/* IDL:        uint32 num_srv_announce_buffers; */
+/* IDL:        uint32 max_illegal_dgram_events; */
+/* IDL:        uint32 dgram_event_reset_freq; */
+/* IDL:        uint32 log_election_packets; */
+/* IDL:        uint32 use_opportunistic_locking; */
+/* IDL:        uint32 use_unlock_behind; */
+/* IDL:        uint32 use_close_behind; */
+/* IDL:        uint32 buf_named_pipes; */
+/* IDL:        uint32 use_lock_read_unlock; */
+/* IDL:        uint32 utilize_nt_caching; */
+/* IDL:        uint32 use_raw_read; */
+/* IDL:        uint32 use_raw_write; */
+/* IDL:        uint32 use_write_raw_data; */
+/* IDL:        uint32 use_encryption; */
+/* IDL:        uint32 buf_files_deny_write; */
+/* IDL:        uint32 buf_read_only_files; */
+/* IDL:        uint32 force_core_create_mode; */
+/* IDL:        uint32 use_512_byte_max_transfer; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_char_wait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_char_wait, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_collection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_collection_time, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_maximum_collection_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_maximum_collection_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_keep_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_keep_connection, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_max_commands(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_max_commands, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_session_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_session_timeout, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_size_char_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_size_char_buf, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_max_threads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_max_threads, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_lock_quota(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_lock_quota, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_lock_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_lock_increment, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_lock_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_lock_maximum, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_pipe_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_pipe_increment, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_pipe_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_pipe_maximum, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_cache_file_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_cache_file_timeout, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_dormant_file_limit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_dormant_file_limit, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_read_ahead_throughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_read_ahead_throughput, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_num_mailslot_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_num_mailslot_buffers, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_num_srv_announce_buffers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_num_srv_announce_buffers, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_max_illegal_dgram_events(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_max_illegal_dgram_events, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_dgram_event_reset_freq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_dgram_event_reset_freq, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_log_election_packets(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_log_election_packets, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_opportunistic_locking(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_opportunistic_locking, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_unlock_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_unlock_behind, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_close_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_close_behind, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_buf_named_pipes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_buf_named_pipes, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_lock_read_unlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_lock_read_unlock, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_utilize_nt_caching(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_utilize_nt_caching, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_raw_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_raw_read, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_raw_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_raw_write, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_write_raw_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_write_raw_data, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_encryption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_encryption, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_buf_files_deny_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_buf_files_deny_write, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_buf_read_only_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_buf_read_only_files, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_force_core_create_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_force_core_create_mode, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo502_use_512_byte_max_transfer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo502_use_512_byte_max_transfer, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo502);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo502_char_wait(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_collection_time(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_maximum_collection_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_keep_connection(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_max_commands(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_session_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_size_char_buf(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_max_threads(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_lock_quota(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_lock_increment(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_lock_maximum(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_pipe_increment(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_pipe_maximum(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_cache_file_timeout(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_dormant_file_limit(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_read_ahead_throughput(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_num_mailslot_buffers(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_num_srv_announce_buffers(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_max_illegal_dgram_events(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_dgram_event_reset_freq(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_log_election_packets(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_opportunistic_locking(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_unlock_behind(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_close_behind(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_buf_named_pipes(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_lock_read_unlock(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_utilize_nt_caching(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_raw_read(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_raw_write(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_write_raw_data(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_encryption(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_buf_files_deny_write(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_buf_read_only_files(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_force_core_create_mode(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaInfo502_use_512_byte_max_transfer(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 char_wait; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1010_char_wait(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1010_char_wait, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1010);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1010_char_wait(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 collection_time; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1011_collection_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1011_collection_time, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1011(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1011);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1011_collection_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 maximum_collection_count; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1012_maximum_collection_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1012_maximum_collection_count, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1012(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1012);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1012_maximum_collection_count(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 keep_connection; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1013_keep_connection(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1013_keep_connection, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1013(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1013);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1013_keep_connection(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 session_timeout; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1018_session_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1018_session_timeout, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1018);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1018_session_timeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 size_char_buf; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1023_size_char_buf(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1023_size_char_buf, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1023(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1023);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1023_size_char_buf(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 errorlog_sz; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1027_errorlog_sz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1027_errorlog_sz, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1027(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1027);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1027_errorlog_sz(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 print_buf_time; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1028_print_buf_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1028_print_buf_time, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1028(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1028);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1028_print_buf_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 wrk_heuristics; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1032_wrk_heuristics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1032_wrk_heuristics, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1032(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1032);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1032_wrk_heuristics(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 max_threads; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1033_max_threads(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1033_max_threads, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1033(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1033);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1033_max_threads(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 lock_quota; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1041_lock_quota(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1041_lock_quota, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1041(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1041);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1041_lock_quota(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 lock_increment; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1042_lock_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1042_lock_increment, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1042(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1042);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1042_lock_increment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 lock_maximum; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1043_lock_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1043_lock_maximum, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1043(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1043);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1043_lock_maximum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 pipe_increment; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1044_pipe_increment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1044_pipe_increment, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1044(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1044);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1044_pipe_increment(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 pipe_maximum; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1045_pipe_maximum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1045_pipe_maximum, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1045(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1045);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1045_pipe_maximum(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 dormant_file_limit; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1046_dormant_file_limit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1046_dormant_file_limit, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1046(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1046);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1046_dormant_file_limit(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 cache_file_timeout; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1047_cache_file_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1047_cache_file_timeout, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1047(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1047);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1047_cache_file_timeout(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_opportunistic_locking; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1048_use_opportunistic_locking(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1048_use_opportunistic_locking, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1048(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1048);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1048_use_opportunistic_locking(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_unlock_behind; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1049_use_unlock_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1049_use_unlock_behind, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1049(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1049);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1049_use_unlock_behind(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_close_behind; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1050_use_close_behind(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1050_use_close_behind, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1050(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1050);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1050_use_close_behind(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 buf_named_pipes; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1051_buf_named_pipes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1051_buf_named_pipes, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1051(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1051);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1051_buf_named_pipes(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_lock_read_unlock; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1052_use_lock_read_unlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1052_use_lock_read_unlock, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1052(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1052);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1052_use_lock_read_unlock(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 utilize_nt_caching; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1053_utilize_nt_caching(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1053_utilize_nt_caching, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1053(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1053);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1053_utilize_nt_caching(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_raw_read; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1054_use_raw_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1054_use_raw_read, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1054(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1054);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1054_use_raw_read(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_raw_write; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1055_use_raw_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1055_use_raw_write, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1055(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1055);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1055_use_raw_write(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_write_raw_data; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1056_use_write_raw_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1056_use_write_raw_data, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1056(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1056);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1056_use_write_raw_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_encryption; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1057_use_encryption(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1057_use_encryption, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1057(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1057);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1057_use_encryption(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 buf_files_deny_write; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1058_buf_files_deny_write(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1058_buf_files_deny_write, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1058(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1058);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1058_buf_files_deny_write(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 buf_read_only_files; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1059_buf_read_only_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1059_buf_read_only_files, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1059(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1059);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1059_buf_read_only_files(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 force_core_create_mode; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1060_force_core_create_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1060_force_core_create_mode, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1060(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1060);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1060_force_core_create_mode(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 use_512_byte_max_transfer; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1061_use_512_byte_max_transfer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1061_use_512_byte_max_transfer, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1061(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1061);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1061_use_512_byte_max_transfer(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 read_ahead_throughput; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo1062_read_ahead_throughput(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaInfo1062_read_ahead_throughput, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaInfo1062(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo1062);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaInfo1062_read_ahead_throughput(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(100)] [unique(1)] [case(100)] wkssvc_NetWkstaInfo100 *info100; */
+/* IDL: [case(101)] [unique(1)] [case(101)] wkssvc_NetWkstaInfo101 *info101; */
+/* IDL: [case(102)] [unique(1)] [case(102)] wkssvc_NetWkstaInfo102 *info102; */
+/* IDL: [case(502)] [unique(1)] [case(502)] wkssvc_NetWkstaInfo502 *info502; */
+/* IDL: [case(1010)] [unique(1)] [case(1010)] wkssvc_NetWkstaInfo1010 *info1010; */
+/* IDL: [case(1011)] [unique(1)] [case(1011)] wkssvc_NetWkstaInfo1011 *info1011; */
+/* IDL: [case(1012)] [unique(1)] [case(1012)] wkssvc_NetWkstaInfo1012 *info1012; */
+/* IDL: [case(1013)] [unique(1)] [case(1013)] wkssvc_NetWkstaInfo1013 *info1013; */
+/* IDL: [case(1018)] [unique(1)] [case(1018)] wkssvc_NetWkstaInfo1018 *info1018; */
+/* IDL: [case(1023)] [unique(1)] [case(1023)] wkssvc_NetWkstaInfo1023 *info1023; */
+/* IDL: [case(1027)] [unique(1)] [case(1027)] wkssvc_NetWkstaInfo1027 *info1027; */
+/* IDL: [case(1028)] [unique(1)] [case(1028)] wkssvc_NetWkstaInfo1028 *info1028; */
+/* IDL: [case(1032)] [unique(1)] [case(1032)] wkssvc_NetWkstaInfo1032 *info1032; */
+/* IDL: [case(1033)] [unique(1)] [case(1033)] wkssvc_NetWkstaInfo1033 *info1033; */
+/* IDL: [case(1041)] [unique(1)] [case(1041)] wkssvc_NetWkstaInfo1041 *info1041; */
+/* IDL: [case(1042)] [unique(1)] [case(1042)] wkssvc_NetWkstaInfo1042 *info1042; */
+/* IDL: [case(1043)] [unique(1)] [case(1043)] wkssvc_NetWkstaInfo1043 *info1043; */
+/* IDL: [case(1044)] [unique(1)] [case(1044)] wkssvc_NetWkstaInfo1044 *info1044; */
+/* IDL: [case(1045)] [unique(1)] [case(1045)] wkssvc_NetWkstaInfo1045 *info1045; */
+/* IDL: [case(1046)] [unique(1)] [case(1046)] wkssvc_NetWkstaInfo1046 *info1046; */
+/* IDL: [case(1047)] [unique(1)] [case(1047)] wkssvc_NetWkstaInfo1047 *info1047; */
+/* IDL: [case(1048)] [unique(1)] [case(1048)] wkssvc_NetWkstaInfo1048 *info1048; */
+/* IDL: [case(1049)] [unique(1)] [case(1049)] wkssvc_NetWkstaInfo1049 *info1049; */
+/* IDL: [case(1050)] [unique(1)] [case(1050)] wkssvc_NetWkstaInfo1050 *info1050; */
+/* IDL: [case(1051)] [unique(1)] [case(1051)] wkssvc_NetWkstaInfo1051 *info1051; */
+/* IDL: [case(1052)] [unique(1)] [case(1052)] wkssvc_NetWkstaInfo1052 *info1052; */
+/* IDL: [case(1053)] [unique(1)] [case(1053)] wkssvc_NetWkstaInfo1053 *info1053; */
+/* IDL: [case(1054)] [unique(1)] [case(1054)] wkssvc_NetWkstaInfo1054 *info1054; */
+/* IDL: [case(1055)] [unique(1)] [case(1055)] wkssvc_NetWkstaInfo1055 *info1055; */
+/* IDL: [case(1056)] [unique(1)] [case(1056)] wkssvc_NetWkstaInfo1056 *info1056; */
+/* IDL: [case(1057)] [unique(1)] [case(1057)] wkssvc_NetWkstaInfo1057 *info1057; */
+/* IDL: [case(1058)] [unique(1)] [case(1058)] wkssvc_NetWkstaInfo1058 *info1058; */
+/* IDL: [case(1059)] [unique(1)] [case(1059)] wkssvc_NetWkstaInfo1059 *info1059; */
+/* IDL: [case(1060)] [unique(1)] [case(1060)] wkssvc_NetWkstaInfo1060 *info1060; */
+/* IDL: [case(1061)] [unique(1)] [case(1061)] wkssvc_NetWkstaInfo1061 *info1061; */
+/* IDL: [case(1062)] [unique(1)] [case(1062)] wkssvc_NetWkstaInfo1062 *info1062; */
+/* IDL: [default] ; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info100_, NDR_POINTER_UNIQUE, "Pointer to Info100 (wkssvc_NetWkstaInfo100)",hf_wkssvc_wkssvc_NetWkstaInfo_info100);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info100_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo100(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info100,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info101_, NDR_POINTER_UNIQUE, "Pointer to Info101 (wkssvc_NetWkstaInfo101)",hf_wkssvc_wkssvc_NetWkstaInfo_info101);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo101(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info101,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info102_, NDR_POINTER_UNIQUE, "Pointer to Info102 (wkssvc_NetWkstaInfo102)",hf_wkssvc_wkssvc_NetWkstaInfo_info102);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info102_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo102(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info102,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info502_, NDR_POINTER_UNIQUE, "Pointer to Info502 (wkssvc_NetWkstaInfo502)",hf_wkssvc_wkssvc_NetWkstaInfo_info502);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info502_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo502(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info502,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1010_, NDR_POINTER_UNIQUE, "Pointer to Info1010 (wkssvc_NetWkstaInfo1010)",hf_wkssvc_wkssvc_NetWkstaInfo_info1010);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1010_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1010(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1010,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1011(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1011_, NDR_POINTER_UNIQUE, "Pointer to Info1011 (wkssvc_NetWkstaInfo1011)",hf_wkssvc_wkssvc_NetWkstaInfo_info1011);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1011_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1011(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1011,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1012(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1012_, NDR_POINTER_UNIQUE, "Pointer to Info1012 (wkssvc_NetWkstaInfo1012)",hf_wkssvc_wkssvc_NetWkstaInfo_info1012);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1012_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1012(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1012,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1013(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1013_, NDR_POINTER_UNIQUE, "Pointer to Info1013 (wkssvc_NetWkstaInfo1013)",hf_wkssvc_wkssvc_NetWkstaInfo_info1013);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1013_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1013(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1013,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1018_, NDR_POINTER_UNIQUE, "Pointer to Info1018 (wkssvc_NetWkstaInfo1018)",hf_wkssvc_wkssvc_NetWkstaInfo_info1018);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1018_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1018(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1018,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1023(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1023_, NDR_POINTER_UNIQUE, "Pointer to Info1023 (wkssvc_NetWkstaInfo1023)",hf_wkssvc_wkssvc_NetWkstaInfo_info1023);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1023_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1023(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1023,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1027(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1027_, NDR_POINTER_UNIQUE, "Pointer to Info1027 (wkssvc_NetWkstaInfo1027)",hf_wkssvc_wkssvc_NetWkstaInfo_info1027);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1027_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1027(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1027,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1028(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1028_, NDR_POINTER_UNIQUE, "Pointer to Info1028 (wkssvc_NetWkstaInfo1028)",hf_wkssvc_wkssvc_NetWkstaInfo_info1028);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1028_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1028(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1028,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1032(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1032_, NDR_POINTER_UNIQUE, "Pointer to Info1032 (wkssvc_NetWkstaInfo1032)",hf_wkssvc_wkssvc_NetWkstaInfo_info1032);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1032_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1032(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1032,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1033(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1033_, NDR_POINTER_UNIQUE, "Pointer to Info1033 (wkssvc_NetWkstaInfo1033)",hf_wkssvc_wkssvc_NetWkstaInfo_info1033);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1033_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1033(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1033,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1041(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1041_, NDR_POINTER_UNIQUE, "Pointer to Info1041 (wkssvc_NetWkstaInfo1041)",hf_wkssvc_wkssvc_NetWkstaInfo_info1041);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1041_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1041(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1041,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1042(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1042_, NDR_POINTER_UNIQUE, "Pointer to Info1042 (wkssvc_NetWkstaInfo1042)",hf_wkssvc_wkssvc_NetWkstaInfo_info1042);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1042_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1042(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1042,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1043(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1043_, NDR_POINTER_UNIQUE, "Pointer to Info1043 (wkssvc_NetWkstaInfo1043)",hf_wkssvc_wkssvc_NetWkstaInfo_info1043);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1043_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1043(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1043,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1044(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1044_, NDR_POINTER_UNIQUE, "Pointer to Info1044 (wkssvc_NetWkstaInfo1044)",hf_wkssvc_wkssvc_NetWkstaInfo_info1044);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1044_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1044(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1044,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1045(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1045_, NDR_POINTER_UNIQUE, "Pointer to Info1045 (wkssvc_NetWkstaInfo1045)",hf_wkssvc_wkssvc_NetWkstaInfo_info1045);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1045_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1045(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1045,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1046(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1046_, NDR_POINTER_UNIQUE, "Pointer to Info1046 (wkssvc_NetWkstaInfo1046)",hf_wkssvc_wkssvc_NetWkstaInfo_info1046);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1046_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1046(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1046,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1047(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1047_, NDR_POINTER_UNIQUE, "Pointer to Info1047 (wkssvc_NetWkstaInfo1047)",hf_wkssvc_wkssvc_NetWkstaInfo_info1047);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1047_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1047(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1047,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1048(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1048_, NDR_POINTER_UNIQUE, "Pointer to Info1048 (wkssvc_NetWkstaInfo1048)",hf_wkssvc_wkssvc_NetWkstaInfo_info1048);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1048_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1048(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1048,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1049(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1049_, NDR_POINTER_UNIQUE, "Pointer to Info1049 (wkssvc_NetWkstaInfo1049)",hf_wkssvc_wkssvc_NetWkstaInfo_info1049);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1049_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1049(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1049,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1050(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1050_, NDR_POINTER_UNIQUE, "Pointer to Info1050 (wkssvc_NetWkstaInfo1050)",hf_wkssvc_wkssvc_NetWkstaInfo_info1050);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1050_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1050(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1050,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1051(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1051_, NDR_POINTER_UNIQUE, "Pointer to Info1051 (wkssvc_NetWkstaInfo1051)",hf_wkssvc_wkssvc_NetWkstaInfo_info1051);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1051_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1051(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1051,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1052(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1052_, NDR_POINTER_UNIQUE, "Pointer to Info1052 (wkssvc_NetWkstaInfo1052)",hf_wkssvc_wkssvc_NetWkstaInfo_info1052);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1052_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1052(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1052,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1053(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1053_, NDR_POINTER_UNIQUE, "Pointer to Info1053 (wkssvc_NetWkstaInfo1053)",hf_wkssvc_wkssvc_NetWkstaInfo_info1053);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1053_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1053(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1053,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1054(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1054_, NDR_POINTER_UNIQUE, "Pointer to Info1054 (wkssvc_NetWkstaInfo1054)",hf_wkssvc_wkssvc_NetWkstaInfo_info1054);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1054_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1054(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1054,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1055(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1055_, NDR_POINTER_UNIQUE, "Pointer to Info1055 (wkssvc_NetWkstaInfo1055)",hf_wkssvc_wkssvc_NetWkstaInfo_info1055);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1055_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1055(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1055,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1056(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1056_, NDR_POINTER_UNIQUE, "Pointer to Info1056 (wkssvc_NetWkstaInfo1056)",hf_wkssvc_wkssvc_NetWkstaInfo_info1056);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1056_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1056(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1056,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1057(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1057_, NDR_POINTER_UNIQUE, "Pointer to Info1057 (wkssvc_NetWkstaInfo1057)",hf_wkssvc_wkssvc_NetWkstaInfo_info1057);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1057_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1057(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1057,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1058(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1058_, NDR_POINTER_UNIQUE, "Pointer to Info1058 (wkssvc_NetWkstaInfo1058)",hf_wkssvc_wkssvc_NetWkstaInfo_info1058);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1058_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1058(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1058,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1059(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1059_, NDR_POINTER_UNIQUE, "Pointer to Info1059 (wkssvc_NetWkstaInfo1059)",hf_wkssvc_wkssvc_NetWkstaInfo_info1059);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1059_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1059(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1059,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1060(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1060_, NDR_POINTER_UNIQUE, "Pointer to Info1060 (wkssvc_NetWkstaInfo1060)",hf_wkssvc_wkssvc_NetWkstaInfo_info1060);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1060_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1060(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1060,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1061(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1061_, NDR_POINTER_UNIQUE, "Pointer to Info1061 (wkssvc_NetWkstaInfo1061)",hf_wkssvc_wkssvc_NetWkstaInfo_info1061);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1061_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1061(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1061,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1062(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaInfo_info1062_, NDR_POINTER_UNIQUE, "Pointer to Info1062 (wkssvc_NetWkstaInfo1062)",hf_wkssvc_wkssvc_NetWkstaInfo_info1062);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaInfo_info1062_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaInfo1062(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaInfo_info1062,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "wkssvc_NetWkstaInfo");
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 100:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info100(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 101:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info101(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 102:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info102(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 502:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info502(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1010:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1010(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1011:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1011(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1012:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1012(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1013:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1013(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1018:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1018(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1023:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1023(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1027:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1027(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1028:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1028(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1032:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1032(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1033:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1033(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1041:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1041(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1042:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1042(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1043:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1043(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1044:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1044(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1045:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1045(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1046:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1046(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1047:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1047(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1048:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1048(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1049:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1049(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1050:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1050(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1051:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1051(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1052:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1052(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1053:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1053(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1054:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1054(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1055:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1055(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1056:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1056(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1057:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1057(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1058:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1058(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1059:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1059(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1060:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1060(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1061:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1061(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1062:
+                       offset = wkssvc_dissect_element_NetWkstaInfo_info1062(tvb, offset, pinfo, tree, drep);
+               break;
+
+               default:
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user_name; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo0_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo0_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserInfo0_user_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo0_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserInfo0_user_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrWkstaUserInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrWkstaUserInfo0);
+       }
+       
+       offset = wkssvc_dissect_element_NetrWkstaUserInfo0_user_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 entries_read; */
+/* IDL:        [unique(1)] [size_is(entries_read)] wkssvc_NetrWkstaUserInfo0 *user0; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr0_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_entries_read, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0_, NDR_POINTER_UNIQUE, "Pointer to User0 (wkssvc_NetrWkstaUserInfo0)",hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_user0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrWkstaUserInfo0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_user0,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaEnumUsersCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr0);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaEnumUsersCtr0_entries_read(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaEnumUsersCtr0_user0(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *logon_domain; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *other_domains; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *logon_server; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo1_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserInfo1_user_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserInfo1_user_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_logon_domain(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo1_logon_domain_, NDR_POINTER_UNIQUE, "Pointer to Logon Domain (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_domain);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_logon_domain_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_domain, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_other_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo1_other_domains_, NDR_POINTER_UNIQUE, "Pointer to Other Domains (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserInfo1_other_domains);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_other_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserInfo1_other_domains, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_logon_server(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo1_logon_server_, NDR_POINTER_UNIQUE, "Pointer to Logon Server (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_server);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1_logon_server_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_server, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrWkstaUserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrWkstaUserInfo1);
+       }
+       
+       offset = wkssvc_dissect_element_NetrWkstaUserInfo1_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWkstaUserInfo1_logon_domain(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWkstaUserInfo1_other_domains(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWkstaUserInfo1_logon_server(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 entries_read; */
+/* IDL:        [unique(1)] [size_is(entries_read)] wkssvc_NetrWkstaUserInfo1 *user1; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr1_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_entries_read, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1_, NDR_POINTER_UNIQUE, "Pointer to User1 (wkssvc_NetrWkstaUserInfo1)",hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_user1);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrWkstaUserInfo1(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_user1,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaEnumUsersCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr1);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaEnumUsersCtr1_entries_read(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaEnumUsersCtr1_user1(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] wkssvc_NetWkstaEnumUsersCtr0 *user0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] wkssvc_NetWkstaEnumUsersCtr1 *user1; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr_user0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsersCtr_user0_, NDR_POINTER_UNIQUE, "Pointer to User0 (wkssvc_NetWkstaEnumUsersCtr0)",hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr_user0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaEnumUsersCtr0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user0,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr_user1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsersCtr_user1_, NDR_POINTER_UNIQUE, "Pointer to User1 (wkssvc_NetWkstaEnumUsersCtr1)",hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user1);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersCtr_user1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaEnumUsersCtr1(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user1,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaEnumUsersCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "wkssvc_NetWkstaEnumUsersCtr");
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = wkssvc_dissect_element_NetWkstaEnumUsersCtr_user0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = wkssvc_dissect_element_NetWkstaEnumUsersCtr_user1(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] wkssvc_NetWkstaEnumUsersCtr ctr; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsersInfo_level, level);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsersInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = wkssvc_dissect_NetWkstaEnumUsersCtr(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsersInfo_ctr, *level);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaEnumUsersInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaEnumUsersInfo);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaEnumUsersInfo_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = wkssvc_dissect_element_NetWkstaEnumUsersInfo_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *other_domains; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1101_other_domains(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo1101_other_domains_, NDR_POINTER_UNIQUE, "Pointer to Other Domains (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserInfo1101_other_domains);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo1101_other_domains_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserInfo1101_other_domains, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrWkstaUserInfo1101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrWkstaUserInfo1101);
+       }
+       
+       offset = wkssvc_dissect_element_NetrWkstaUserInfo1101_other_domains(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] wkssvc_NetrWkstaUserInfo0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] wkssvc_NetrWkstaUserInfo1 *info1; */
+/* IDL: [case(1101)] [unique(1)] [case(1101)] wkssvc_NetrWkstaUserInfo1101 *info1101; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (wkssvc_NetrWkstaUserInfo0)",hf_wkssvc_wkssvc_NetrWkstaUserInfo_info0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrWkstaUserInfo0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrWkstaUserInfo_info0,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (wkssvc_NetrWkstaUserInfo1)",hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrWkstaUserInfo1(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo_info1101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserInfo_info1101_, NDR_POINTER_UNIQUE, "Pointer to Info1101 (wkssvc_NetrWkstaUserInfo1101)",hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1101);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserInfo_info1101_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrWkstaUserInfo1101(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1101,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrWkstaUserInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "wkssvc_NetrWkstaUserInfo");
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrWkstaUserInfo);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = wkssvc_dissect_element_NetrWkstaUserInfo_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = wkssvc_dissect_element_NetrWkstaUserInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1101:
+                       offset = wkssvc_dissect_element_NetrWkstaUserInfo_info1101(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 quality_of_service; */
+/* IDL:        uint32 vc_count; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *address; */
+/* IDL:        uint32 wan_link; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_quality_of_service(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportInfo0_quality_of_service, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_vc_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportInfo0_vc_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportInfo0_name_, NDR_POINTER_UNIQUE, "Pointer to Name (uint16)",hf_wkssvc_wkssvc_NetWkstaTransportInfo0_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaTransportInfo0_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_address(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportInfo0_address_, NDR_POINTER_UNIQUE, "Pointer to Address (uint16)",hf_wkssvc_wkssvc_NetWkstaTransportInfo0_address);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_address_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaTransportInfo0_address, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo0_wan_link(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportInfo0_wan_link, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaTransportInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaTransportInfo0);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo0_quality_of_service(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo0_vc_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo0_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo0_address(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo0_wan_link(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] wkssvc_NetWkstaTransportInfo0 *array; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaTransportCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (wkssvc_NetWkstaTransportInfo0)",hf_wkssvc_wkssvc_NetWkstaTransportCtr0_array);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportCtr0_array__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaTransportInfo0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaTransportCtr0_array,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaTransportCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaTransportCtr0);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaTransportCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] wkssvc_NetWkstaTransportCtr0 *ctr0; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaTransportCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (wkssvc_NetWkstaTransportCtr0)",hf_wkssvc_wkssvc_NetWkstaTransportCtr_ctr0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaTransportCtr0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaTransportCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaTransportCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "wkssvc_NetWkstaTransportCtr");
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaTransportCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = wkssvc_dissect_element_NetWkstaTransportCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] wkssvc_NetWkstaTransportCtr ctr; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportInfo_level, level);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = wkssvc_dissect_NetWkstaTransportCtr(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportInfo_ctr, *level);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetWkstaTransportInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetWkstaTransportInfo);
+       }
+       
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportInfo_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *unknown1; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *unknown2; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseInfo3_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo3_unknown1_, NDR_POINTER_UNIQUE, "Pointer to Unknown1 (uint16)",hf_wkssvc_wkssvc_NetrUseInfo3_unknown1);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo3_unknown1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo3_unknown1, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo3_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo3_unknown2_, NDR_POINTER_UNIQUE, "Pointer to Unknown2 (uint16)",hf_wkssvc_wkssvc_NetrUseInfo3_unknown2);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo3_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo3_unknown2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseInfo3);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseInfo3_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo3_unknown2(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *local; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *remote; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *password; */
+/* IDL:        uint32 status; */
+/* IDL:        uint32 asg_type; */
+/* IDL:        uint32 ref_count; */
+/* IDL:        uint32 use_count; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *user_name; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *domain_name; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo2_local_, NDR_POINTER_UNIQUE, "Pointer to Local (uint16)",hf_wkssvc_wkssvc_NetrUseInfo2_local);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_local_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo2_local, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo2_remote_, NDR_POINTER_UNIQUE, "Pointer to Remote (uint16)",hf_wkssvc_wkssvc_NetrUseInfo2_remote);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_remote_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo2_remote, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo2_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_wkssvc_wkssvc_NetrUseInfo2_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo2_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo2_status, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_asg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo2_asg_type, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_ref_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo2_ref_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_use_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo2_use_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_user_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo2_user_name_, NDR_POINTER_UNIQUE, "Pointer to User Name (uint16)",hf_wkssvc_wkssvc_NetrUseInfo2_user_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_user_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo2_user_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo2_domain_name_, NDR_POINTER_UNIQUE, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrUseInfo2_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo2_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseInfo2);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseInfo2_local(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_remote(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_password(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_status(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_asg_type(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_ref_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_use_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_user_name(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo2_domain_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *local; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *remote; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *password; */
+/* IDL:        uint32 status; */
+/* IDL:        uint32 asg_type; */
+/* IDL:        uint32 ref_count; */
+/* IDL:        uint32 use_count; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo1_local_, NDR_POINTER_UNIQUE, "Pointer to Local (uint16)",hf_wkssvc_wkssvc_NetrUseInfo1_local);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_local_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo1_local, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo1_remote_, NDR_POINTER_UNIQUE, "Pointer to Remote (uint16)",hf_wkssvc_wkssvc_NetrUseInfo1_remote);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_remote_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo1_remote, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo1_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_wkssvc_wkssvc_NetrUseInfo1_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo1_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo1_status, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_asg_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo1_asg_type, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_ref_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo1_ref_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo1_use_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseInfo1_use_count, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseInfo1);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseInfo1_local(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo1_remote(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo1_password(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo1_status(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo1_asg_type(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo1_ref_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo1_use_count(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *local; */
+/* IDL:        [unique(1)] [charset(UTF16)] uint16 *remote; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseInfo0_local(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo0_local_, NDR_POINTER_UNIQUE, "Pointer to Local (uint16)",hf_wkssvc_wkssvc_NetrUseInfo0_local);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo0_local_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo0_local, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo0_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseInfo0_remote_, NDR_POINTER_UNIQUE, "Pointer to Remote (uint16)",hf_wkssvc_wkssvc_NetrUseInfo0_remote);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseInfo0_remote_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseInfo0_remote, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseInfo0);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseInfo0_local(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseInfo0_remote(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] wkssvc_NetrUseInfo0 *info0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] wkssvc_NetrUseInfo1 *info1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] wkssvc_NetrUseInfo2 *info2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] wkssvc_NetrUseInfo3 *info3; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfoCtr_info0_, NDR_POINTER_UNIQUE, "Pointer to Info0 (wkssvc_NetrUseInfo0)",hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info0,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfoCtr_info1_, NDR_POINTER_UNIQUE, "Pointer to Info1 (wkssvc_NetrUseInfo1)",hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info1);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo1(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info1,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfoCtr_info2_, NDR_POINTER_UNIQUE, "Pointer to Info2 (wkssvc_NetrUseInfo2)",hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info2);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo2(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info2,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfoCtr_info3_, NDR_POINTER_UNIQUE, "Pointer to Info3 (wkssvc_NetrUseInfo3)",hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info3);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfoCtr_info3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo3(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info3,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUseGetInfoCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "wkssvc_NetrUseGetInfoCtr");
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseGetInfoCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = wkssvc_dissect_element_NetrUseGetInfoCtr_info0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = wkssvc_dissect_element_NetrUseGetInfoCtr_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = wkssvc_dissect_element_NetrUseGetInfoCtr_info2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = wkssvc_dissect_element_NetrUseGetInfoCtr_info3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] wkssvc_NetrUseInfo2 *array; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr2_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnumCtr2_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr2_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr2_array_, NDR_POINTER_UNIQUE, "Pointer to Array (wkssvc_NetrUseInfo2)",hf_wkssvc_wkssvc_NetrUseEnumCtr2_array);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr2_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr2_array__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr2_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo2(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnumCtr2_array,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseEnumCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseEnumCtr2);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseEnumCtr2_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseEnumCtr2_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] wkssvc_NetrUseInfo1 *array; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr1_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnumCtr1_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr1_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr1_array_, NDR_POINTER_UNIQUE, "Pointer to Array (wkssvc_NetrUseInfo1)",hf_wkssvc_wkssvc_NetrUseEnumCtr1_array);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr1_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr1_array__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr1_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo1(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnumCtr1_array,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseEnumCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseEnumCtr1);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseEnumCtr1_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseEnumCtr1_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] wkssvc_NetrUseInfo0 *array; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr0_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnumCtr0_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr0_array(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr0_array_, NDR_POINTER_UNIQUE, "Pointer to Array (wkssvc_NetrUseInfo0)",hf_wkssvc_wkssvc_NetrUseEnumCtr0_array);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr0_array_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr0_array__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr0_array__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseInfo0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnumCtr0_array,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseEnumCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseEnumCtr0);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseEnumCtr0_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrUseEnumCtr0_array(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint32)] union { */
+/* IDL: [case(0)] [unique(1)] [case(0)] wkssvc_NetrUseEnumCtr0 *ctr0; */
+/* IDL: [case(1)] [unique(1)] [case(1)] wkssvc_NetrUseEnumCtr1 *ctr1; */
+/* IDL: [case(2)] [unique(1)] [case(2)] wkssvc_NetrUseEnumCtr2 *ctr2; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr_ctr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr_ctr0_, NDR_POINTER_UNIQUE, "Pointer to Ctr0 (wkssvc_NetrUseEnumCtr0)",hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr_ctr0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseEnumCtr0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr0,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr_ctr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr_ctr1_, NDR_POINTER_UNIQUE, "Pointer to Ctr1 (wkssvc_NetrUseEnumCtr1)",hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr1);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr_ctr1_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseEnumCtr1(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr1,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr_ctr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnumCtr_ctr2_, NDR_POINTER_UNIQUE, "Pointer to Ctr2 (wkssvc_NetrUseEnumCtr2)",hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr2);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumCtr_ctr2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseEnumCtr2(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr2,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUseEnumCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint32 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "wkssvc_NetrUseEnumCtr");
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseEnumCtr);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 0:
+                       offset = wkssvc_dissect_element_NetrUseEnumCtr_ctr0(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = wkssvc_dissect_element_NetrUseEnumCtr_ctr1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = wkssvc_dissect_element_NetrUseEnumCtr_ctr2(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint32 level; */
+/* IDL:        [switch_is(level)] wkssvc_NetrUseEnumCtr ctr; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrUseEnumInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnumInfo_level, level);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnumInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *level)
+{
+       offset = wkssvc_dissect_NetrUseEnumCtr(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnumInfo_ctr, *level);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrUseEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g level;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrUseEnumInfo);
+       }
+       
+       offset = wkssvc_dissect_element_NetrUseEnumInfo_level(tvb, offset, pinfo, tree, drep, &level);
+
+       offset = wkssvc_dissect_element_NetrUseEnumInfo_ctr(tvb, offset, pinfo, tree, drep, &level);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        hyper unknown1; */
+/* IDL:        hyper unknown2; */
+/* IDL:        hyper unknown3; */
+/* IDL:        hyper unknown4; */
+/* IDL:        hyper unknown5; */
+/* IDL:        hyper unknown6; */
+/* IDL:        hyper unknown7; */
+/* IDL:        hyper unknown8; */
+/* IDL:        hyper unknown9; */
+/* IDL:        hyper unknown10; */
+/* IDL:        hyper unknown11; */
+/* IDL:        hyper unknown12; */
+/* IDL:        hyper unknown13; */
+/* IDL:        uint32 unknown14; */
+/* IDL:        uint32 unknown15; */
+/* IDL:        uint32 unknown16; */
+/* IDL:        uint32 unknown17; */
+/* IDL:        uint32 unknown18; */
+/* IDL:        uint32 unknown19; */
+/* IDL:        uint32 unknown20; */
+/* IDL:        uint32 unknown21; */
+/* IDL:        uint32 unknown22; */
+/* IDL:        uint32 unknown23; */
+/* IDL:        uint32 unknown24; */
+/* IDL:        uint32 unknown25; */
+/* IDL:        uint32 unknown26; */
+/* IDL:        uint32 unknown27; */
+/* IDL:        uint32 unknown28; */
+/* IDL:        uint32 unknown29; */
+/* IDL:        uint32 unknown30; */
+/* IDL:        uint32 unknown31; */
+/* IDL:        uint32 unknown32; */
+/* IDL:        uint32 unknown33; */
+/* IDL:        uint32 unknown34; */
+/* IDL:        uint32 unknown35; */
+/* IDL:        uint32 unknown36; */
+/* IDL:        uint32 unknown37; */
+/* IDL:        uint32 unknown38; */
+/* IDL:        uint32 unknown39; */
+/* IDL:        uint32 unknown40; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown1, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown2, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown3, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown4, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown5, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown6, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown7, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown8, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown9, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown10, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown11, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown12(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown12, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown13(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_uint64(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown13, NULL);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown14(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown14, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown15(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown15, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown16(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown16, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown17(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown17, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown18(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown18, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown19(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown19, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown20(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown20, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown21(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown21, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown22(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown22, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown23(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown23, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown24(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown24, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown25(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown25, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown26(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown26, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown27(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown27, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown28(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown28, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown29(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown29, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown30(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown30, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown31(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown31, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown32(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown32, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown33(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown33, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown34(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown34, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown35(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown35, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown36(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown36, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown37(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown37, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown38(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown38, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown39(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown39, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatistics_unknown40(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown40, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_NetrWorkstationStatistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_NetrWorkstationStatistics);
+       }
+       
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown1(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown2(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown3(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown4(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown5(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown6(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown7(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown8(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown9(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown10(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown11(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown12(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown13(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown14(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown15(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown16(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown17(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown18(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown19(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown20(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown21(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown22(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown23(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown24(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown25(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown26(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown27(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown28(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown29(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown30(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown31(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown32(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown33(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown34(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown35(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown36(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown37(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown38(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown39(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_NetrWorkstationStatistics_unknown40(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE =  0x00000002 , */
+/* IDL: } */
+
+int
+wkssvc_dissect_bitmap_renameflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_wkssvc_wkssvc_renameflags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_renameflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NetSetupUnknown=0, */
+/* IDL:        NetSetupMachine=1, */
+/* IDL:        NetSetupWorkgroup=2, */
+/* IDL:        NetSetupDomain=3, */
+/* IDL:        NetSetupNonExistentDomain=4, */
+/* IDL:        NetSetupDnsMachine=5, */
+/* IDL: } */
+
+int
+wkssvc_dissect_enum_NetValidateNameType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NET_SETUP_UNKNOWN_STATUS=0, */
+/* IDL:        NET_SETUP_UNJOINED=1, */
+/* IDL:        NET_SETUP_WORKGROUP_NAME=2, */
+/* IDL:        NET_SETUP_DOMAIN_NAME=3, */
+/* IDL: } */
+
+int
+wkssvc_dissect_enum_NetJoinStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint8 data[524]; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_PasswordBuffer_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 524; i++)
+               offset = wkssvc_dissect_element_PasswordBuffer_data_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_PasswordBuffer_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_PasswordBuffer_data, 0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_PasswordBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_PasswordBuffer);
+       }
+       
+       offset = wkssvc_dissect_element_PasswordBuffer_data(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS =  0x10000000 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME =  0x00000400 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT =  0x00000200 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_DEFER_SPN =  0x00000100 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED =  0x00000080 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_JOIN_UNSECURE =  0x00000040 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED =  0x00000020 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE =  0x00000010 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE =  0x00000004 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE =  0x00000002 , */
+/* IDL:        WKSSVC_JOIN_FLAGS_JOIN_TYPE =  0x00000001 , */
+/* IDL: } */
+
+int
+wkssvc_dissect_bitmap_joinflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_wkssvc_wkssvc_joinflags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS, tvb, offset-4, 4, flags);
+       if (flags&( 0x10000000 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS");
+               if (flags & (~( 0x10000000 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x10000000 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000400 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME");
+               if (flags & (~( 0x00000400 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000400 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000200 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT");
+               if (flags & (~( 0x00000200 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000200 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DEFER_SPN, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000100 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_DEFER_SPN");
+               if (flags & (~( 0x00000100 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000100 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000080 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED");
+               if (flags & (~( 0x00000080 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000080 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_UNSECURE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000040 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_JOIN_UNSECURE");
+               if (flags & (~( 0x00000040 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000040 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_TYPE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "WKSSVC_JOIN_FLAGS_JOIN_TYPE");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: enum { */
+/* IDL:        NetPrimaryComputerName=0, */
+/* IDL:        NetAlternateComputerNames=1, */
+/* IDL:        NetAllComputerNames=2, */
+/* IDL:        NetComputerNameTypeMax=3, */
+/* IDL: } */
+
+int
+wkssvc_dissect_enum_ComputerNameType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)
+{
+       guint1632 parameter=0;
+       if(param){
+               parameter=(guint1632)*param;
+       }
+       offset = dissect_ndr_uint1632(tvb, offset, pinfo, tree, drep, hf_index, &parameter);
+       if(param){
+               *param=(guint32)parameter;
+       }
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 count; */
+/* IDL:        [unique(1)] [size_is(count)] lsa_String *computer_name; */
+/* IDL: } */
+
+static int
+wkssvc_dissect_element_ComputerNamesCtr_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_ComputerNamesCtr_count, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_ComputerNamesCtr_computer_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_ComputerNamesCtr_computer_name_, NDR_POINTER_UNIQUE, "Pointer to Computer Name (lsa_String)",hf_wkssvc_wkssvc_ComputerNamesCtr_computer_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_ComputerNamesCtr_computer_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_ComputerNamesCtr_computer_name__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_ComputerNamesCtr_computer_name__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_lsa_String(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_ComputerNamesCtr_computer_name,0);
+
+       return offset;
+}
+
+int
+wkssvc_dissect_struct_ComputerNamesCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_wkssvc_wkssvc_ComputerNamesCtr);
+       }
+       
+       offset = wkssvc_dissect_element_ComputerNamesCtr_count(tvb, offset, pinfo, tree, drep);
+
+       offset = wkssvc_dissect_element_ComputerNamesCtr_computer_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaGetInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaGetInfo_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaGetInfo_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaGetInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaGetInfo_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetWkstaInfo)",hf_wkssvc_wkssvc_NetWkstaGetInfo_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_NetWkstaInfo(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetWkstaGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] wkssvc_NetWkstaInfo *info */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetWkstaGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetWkstaGetInfo";
+       offset = wkssvc_dissect_element_NetWkstaGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetWkstaGetInfo";
+       offset = wkssvc_dissect_element_NetWkstaGetInfo_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaSetInfo_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaSetInfo_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaSetInfo_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaSetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaSetInfo_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetWkstaInfo)",hf_wkssvc_wkssvc_NetWkstaSetInfo_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_NetWkstaInfo(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaSetInfo_info, *0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_parm_error(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaSetInfo_parm_error_, NDR_POINTER_REF, "Pointer to Parm Error (uint32)",hf_wkssvc_wkssvc_NetWkstaSetInfo_parm_error);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaSetInfo_parm_error_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaSetInfo_parm_error, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetWkstaSetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [ref] [switch_is(level)] wkssvc_NetWkstaInfo *info, */
+/* IDL: [out] [in] [ref] uint32 *parm_error */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetWkstaSetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetWkstaSetInfo";
+       offset = wkssvc_dissect_element_NetWkstaSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaSetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetWkstaSetInfo";
+       offset = wkssvc_dissect_element_NetWkstaSetInfo_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaSetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaSetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaSetInfo_parm_error(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsers_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaEnumUsers_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaEnumUsers_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsers_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetWkstaEnumUsersInfo)",hf_wkssvc_wkssvc_NetWkstaEnumUsers_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaEnumUsersInfo(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaEnumUsers_info,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_prefmaxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsers_prefmaxlen, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsers_entries_read_, NDR_POINTER_REF, "Pointer to Entries Read (uint32)",hf_wkssvc_wkssvc_NetWkstaEnumUsers_entries_read);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_entries_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsers_entries_read, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_wkssvc_wkssvc_NetWkstaEnumUsers_resume_handle);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaEnumUsers_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetWkstaEnumUsers( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [in] [ref] wkssvc_NetWkstaEnumUsersInfo *info, */
+/* IDL: [in] uint32 prefmaxlen, */
+/* IDL: [out] [ref] uint32 *entries_read, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetWkstaEnumUsers_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetWkstaEnumUsers";
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_entries_read(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaEnumUsers_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetWkstaEnumUsers";
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_prefmaxlen(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaEnumUsers_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserGetInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserGetInfo_unknown_, NDR_POINTER_UNIQUE, "Pointer to Unknown (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_unknown);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserGetInfo_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_unknown, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserGetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserGetInfo_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetrWkstaUserInfo)",hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserGetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_NetrWkstaUserInfo(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_info, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrWkstaUserGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *unknown, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrWkstaUserGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrWkstaUserGetInfo";
+       offset = wkssvc_dissect_element_NetrWkstaUserGetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrWkstaUserGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrWkstaUserGetInfo";
+       offset = wkssvc_dissect_element_NetrWkstaUserGetInfo_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaUserGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserSetInfo_unknown_, NDR_POINTER_UNIQUE, "Pointer to Unknown (uint16)",hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_unknown);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_unknown, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserSetInfo_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetrWkstaUserInfo)",hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_NetrWkstaUserInfo(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_info, *0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err_, NDR_POINTER_UNIQUE, "Pointer to Parm Err (uint32)",hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_parm_err);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_parm_err, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrWkstaUserSetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *unknown, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] wkssvc_NetrWkstaUserInfo *info, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_err */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrWkstaUserSetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrWkstaUserSetInfo";
+       offset = wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrWkstaUserSetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrWkstaUserSetInfo";
+       offset = wkssvc_dissect_element_NetrWkstaUserSetInfo_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaUserSetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaUserSetInfo_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaUserSetInfo_parm_err(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportEnum_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetWkstaTransportEnum_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetWkstaTransportEnum_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportEnum_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetWkstaTransportInfo)",hf_wkssvc_wkssvc_NetWkstaTransportEnum_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaTransportInfo(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetWkstaTransportEnum_info,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_max_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportEnum_max_buffer, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_total_entries(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportEnum_total_entries_, NDR_POINTER_REF, "Pointer to Total Entries (uint32)",hf_wkssvc_wkssvc_NetWkstaTransportEnum_total_entries);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_total_entries_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportEnum_total_entries, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_wkssvc_wkssvc_NetWkstaTransportEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetWkstaTransportEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetWkstaTransportEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [in] [ref] wkssvc_NetWkstaTransportInfo *info, */
+/* IDL: [in] uint32 max_buffer, */
+/* IDL: [out] [ref] uint32 *total_entries, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetWkstaTransportEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetWkstaTransportEnum";
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_total_entries(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetWkstaTransportEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetWkstaTransportEnum";
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_max_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetWkstaTransportEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaTransportAdd_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrWkstaTransportAdd_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaTransportAdd_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaTransportAdd_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_info0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaTransportAdd_info0_, NDR_POINTER_REF, "Pointer to Info0 (wkssvc_NetWkstaTransportInfo0)",hf_wkssvc_wkssvc_NetrWkstaTransportAdd_info0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_info0_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetWkstaTransportInfo0(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrWkstaTransportAdd_info0,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err_, NDR_POINTER_UNIQUE, "Pointer to Parm Err (uint32)",hf_wkssvc_wkssvc_NetrWkstaTransportAdd_parm_err);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaTransportAdd_parm_err, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrWkstaTransportAdd( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [in] [ref] wkssvc_NetWkstaTransportInfo0 *info0, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_err */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrWkstaTransportAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrWkstaTransportAdd";
+       offset = wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrWkstaTransportAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrWkstaTransportAdd";
+       offset = wkssvc_dissect_element_NetrWkstaTransportAdd_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaTransportAdd_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaTransportAdd_info0(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaTransportAdd_parm_err(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportDel_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaTransportDel_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrWkstaTransportDel_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportDel_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaTransportDel_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportDel_transport_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWkstaTransportDel_transport_name_, NDR_POINTER_UNIQUE, "Pointer to Transport Name (uint16)",hf_wkssvc_wkssvc_NetrWkstaTransportDel_transport_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportDel_transport_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWkstaTransportDel_transport_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWkstaTransportDel_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWkstaTransportDel_unknown3, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrWkstaTransportDel( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *transport_name, */
+/* IDL: [in] uint32 unknown3 */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrWkstaTransportDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrWkstaTransportDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrWkstaTransportDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrWkstaTransportDel";
+       offset = wkssvc_dissect_element_NetrWkstaTransportDel_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaTransportDel_transport_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWkstaTransportDel_unknown3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseAdd_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrUseAdd_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseAdd_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseAdd_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseAdd_ctr_, NDR_POINTER_REF, "Pointer to Ctr (wkssvc_NetrUseGetInfoCtr)",hf_wkssvc_wkssvc_NetrUseAdd_ctr);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_NetrUseGetInfoCtr(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseAdd_ctr, *0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_parm_err(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseAdd_parm_err_, NDR_POINTER_UNIQUE, "Pointer to Parm Err (uint32)",hf_wkssvc_wkssvc_NetrUseAdd_parm_err);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseAdd_parm_err_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseAdd_parm_err, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrUseAdd( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [ref] [in] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr, */
+/* IDL: [out] [unique(1)] [in] uint32 *parm_err */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrUseAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrUseAdd";
+       offset = wkssvc_dissect_element_NetrUseAdd_parm_err(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUseAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrUseAdd";
+       offset = wkssvc_dissect_element_NetrUseAdd_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseAdd_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseAdd_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseAdd_parm_err(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfo_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrUseGetInfo_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseGetInfo_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_use_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfo_use_name_, NDR_POINTER_REF, "Pointer to Use Name (uint16)",hf_wkssvc_wkssvc_NetrUseGetInfo_use_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_use_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseGetInfo_use_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_level(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseGetInfo_level, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseGetInfo_ctr_, NDR_POINTER_REF, "Pointer to Ctr (wkssvc_NetrUseGetInfoCtr)",hf_wkssvc_wkssvc_NetrUseGetInfo_ctr);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseGetInfo_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_NetrUseGetInfoCtr(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseGetInfo_ctr, *0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrUseGetInfo( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *use_name, */
+/* IDL: [in] uint32 level, */
+/* IDL: [out] [ref] [switch_is(level)] wkssvc_NetrUseGetInfoCtr *ctr */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrUseGetInfo_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrUseGetInfo";
+       offset = wkssvc_dissect_element_NetrUseGetInfo_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUseGetInfo_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrUseGetInfo";
+       offset = wkssvc_dissect_element_NetrUseGetInfo_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseGetInfo_use_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseGetInfo_level(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseDel_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseDel_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrUseDel_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseDel_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseDel_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseDel_use_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseDel_use_name_, NDR_POINTER_REF, "Pointer to Use Name (uint16)",hf_wkssvc_wkssvc_NetrUseDel_use_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseDel_use_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseDel_use_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseDel_force_cond(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseDel_force_cond, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrUseDel( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *use_name, */
+/* IDL: [in] uint32 force_cond */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrUseDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrUseDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUseDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrUseDel";
+       offset = wkssvc_dissect_element_NetrUseDel_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseDel_use_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseDel_force_cond(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnum_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrUseEnum_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUseEnum_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnum_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetrUseEnumInfo)",hf_wkssvc_wkssvc_NetrUseEnum_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrUseEnumInfo(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUseEnum_info,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_prefmaxlen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnum_prefmaxlen, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_entries_read(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnum_entries_read_, NDR_POINTER_REF, "Pointer to Entries Read (uint32)",hf_wkssvc_wkssvc_NetrUseEnum_entries_read);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_entries_read_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnum_entries_read, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_resume_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUseEnum_resume_handle_, NDR_POINTER_UNIQUE, "Pointer to Resume Handle (uint32)",hf_wkssvc_wkssvc_NetrUseEnum_resume_handle);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUseEnum_resume_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUseEnum_resume_handle, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrUseEnum( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [in] [ref] wkssvc_NetrUseEnumInfo *info, */
+/* IDL: [in] uint32 prefmaxlen, */
+/* IDL: [out] [ref] uint32 *entries_read, */
+/* IDL: [out] [unique(1)] [in] uint32 *resume_handle */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrUseEnum_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrUseEnum";
+       offset = wkssvc_dissect_element_NetrUseEnum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetrUseEnum_entries_read(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetrUseEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUseEnum_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrUseEnum";
+       offset = wkssvc_dissect_element_NetrUseEnum_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseEnum_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseEnum_prefmaxlen(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUseEnum_resume_handle(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrMessageBufferSend_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrMessageBufferSend_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_message_name_, NDR_POINTER_REF, "Pointer to Message Name (uint16)",hf_wkssvc_wkssvc_NetrMessageBufferSend_message_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrMessageBufferSend_message_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name_, NDR_POINTER_UNIQUE, "Pointer to Message Sender Name (uint16)",hf_wkssvc_wkssvc_NetrMessageBufferSend_message_sender_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrMessageBufferSend_message_sender_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_message_buffer_, NDR_POINTER_REF, "Pointer to Message Buffer (uint8)",hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrMessageBufferSend_message_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrMessageBufferSend_message_size, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrMessageBufferSend( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *message_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *message_sender_name, */
+/* IDL: [ref] [in] [size_is(message_size)] uint8 *message_buffer, */
+/* IDL: [in] uint32 message_size */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrMessageBufferSend_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrMessageBufferSend";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrMessageBufferSend_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrMessageBufferSend";
+       offset = wkssvc_dissect_element_NetrMessageBufferSend_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrMessageBufferSend_message_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrMessageBufferSend_message_sender_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrMessageBufferSend_message_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrMessageBufferSend_message_size(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown2_, NDR_POINTER_UNIQUE, "Pointer to Unknown2 (uint16)",hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown2);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown2, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown3, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown4, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWorkstationStatisticsGet_info_, NDR_POINTER_REF, "Pointer to Info (wkssvc_NetrWorkstationStatistics)",hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_info_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrWorkstationStatisticsGet_info__, NDR_POINTER_UNIQUE, "Pointer to Info (wkssvc_NetrWorkstationStatistics)",hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_info);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrWorkstationStatisticsGet_info__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_NetrWorkstationStatistics(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_info,0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrWorkstationStatisticsGet( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *unknown2, */
+/* IDL: [in] uint32 unknown3, */
+/* IDL: [in] uint32 unknown4, */
+/* IDL: [out] [ref] wkssvc_NetrWorkstationStatistics **info */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrWorkstationStatisticsGet_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrWorkstationStatisticsGet";
+       offset = wkssvc_dissect_element_NetrWorkstationStatisticsGet_info(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrWorkstationStatisticsGet_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrWorkstationStatisticsGet";
+       offset = wkssvc_dissect_element_NetrWorkstationStatisticsGet_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown2(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown3(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrWorkstationStatisticsGet_unknown4(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrLogonDomainNameAdd_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrLogonDomainNameAdd_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrLogonDomainNameAdd_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrLogonDomainNameAdd_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrLogonDomainNameAdd_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrLogonDomainNameAdd( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *domain_name */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrLogonDomainNameAdd_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrLogonDomainNameAdd";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrLogonDomainNameAdd_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrLogonDomainNameAdd";
+       offset = wkssvc_dissect_element_NetrLogonDomainNameAdd_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrLogonDomainNameDel_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrLogonDomainNameDel_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrLogonDomainNameDel_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrLogonDomainNameDel_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrLogonDomainNameDel_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrLogonDomainNameDel( */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *domain_name */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrLogonDomainNameDel_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrLogonDomainNameDel";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrLogonDomainNameDel_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrLogonDomainNameDel";
+       offset = wkssvc_dissect_element_NetrLogonDomainNameDel_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_account_ou(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain_account_ou_, NDR_POINTER_UNIQUE, "Pointer to Account Ou (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain_account_ou);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_account_ou_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain_account_ou, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain_join_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_bitmap_joinflags(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrJoinDomain_join_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrJoinDomain( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *account_ou, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *password, */
+/* IDL: [in] wkssvc_joinflags join_flags */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrJoinDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrJoinDomain";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrJoinDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrJoinDomain";
+       offset = wkssvc_dissect_element_NetrJoinDomain_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain_account_ou(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain_join_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUnjoinDomain_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrUnjoinDomain_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUnjoinDomain_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUnjoinDomain_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrUnjoinDomain_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUnjoinDomain_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUnjoinDomain_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_wkssvc_wkssvc_NetrUnjoinDomain_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUnjoinDomain_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain_unjoin_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_bitmap_joinflags(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUnjoinDomain_unjoin_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrUnjoinDomain( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *password, */
+/* IDL: [in] wkssvc_joinflags unjoin_flags */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrUnjoinDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrUnjoinDomain";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUnjoinDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrUnjoinDomain";
+       offset = wkssvc_dissect_element_NetrUnjoinDomain_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUnjoinDomain_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUnjoinDomain_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUnjoinDomain_unjoin_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_NewMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain_NewMachineName_, NDR_POINTER_UNIQUE, "Pointer to Newmachinename (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain_NewMachineName);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_NewMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain_NewMachineName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain_password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain_password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain_RenameOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_bitmap_renameflags(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrRenameMachineInDomain_RenameOptions, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrRenameMachineInDomain( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *NewMachineName, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *password, */
+/* IDL: [in] wkssvc_renameflags RenameOptions */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrRenameMachineInDomain_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrRenameMachineInDomain";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrRenameMachineInDomain_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrRenameMachineInDomain";
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain_NewMachineName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain_RenameOptions(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrValidateName_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName_name_, NDR_POINTER_REF, "Pointer to Name (uint16)",hf_wkssvc_wkssvc_NetrValidateName_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrValidateName_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_Password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName_Password_, NDR_POINTER_UNIQUE, "Pointer to Password (uint16)",hf_wkssvc_wkssvc_NetrValidateName_Password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_Password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName_Password, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_NetValidateNameType(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrValidateName_name_type, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrValidateName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Password, */
+/* IDL: [in] wkssvc_NetValidateNameType name_type */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrValidateName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrValidateName";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrValidateName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrValidateName";
+       offset = wkssvc_dissect_element_NetrValidateName_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName_Password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName_name_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinInformation_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrGetJoinInformation_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinInformation_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_name_buffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinInformation_name_buffer_, NDR_POINTER_REF, "Pointer to Name Buffer (uint16)",hf_wkssvc_wkssvc_NetrGetJoinInformation_name_buffer);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_name_buffer_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinInformation_name_buffer__, NDR_POINTER_UNIQUE, "Pointer to Name Buffer (uint16)",hf_wkssvc_wkssvc_NetrGetJoinInformation_name_buffer);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_name_buffer__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinInformation_name_buffer, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinInformation_name_type_, NDR_POINTER_REF, "Pointer to Name Type (wkssvc_NetJoinStatus)",hf_wkssvc_wkssvc_NetrGetJoinInformation_name_type);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinInformation_name_type_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_NetJoinStatus(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrGetJoinInformation_name_type, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrGetJoinInformation( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [out] [ref] [in] [charset(UTF16)] uint16 **name_buffer, */
+/* IDL: [out] [ref] wkssvc_NetJoinStatus *name_type */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrGetJoinInformation_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrGetJoinInformation";
+       offset = wkssvc_dissect_element_NetrGetJoinInformation_name_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetrGetJoinInformation_name_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrGetJoinInformation_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrGetJoinInformation";
+       offset = wkssvc_dissect_element_NetrGetJoinInformation_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinInformation_name_buffer(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_unknown(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_unknown_, NDR_POINTER_UNIQUE, "Pointer to Unknown (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_unknown);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_unknown_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus_unknown, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_num_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_num_ous_, NDR_POINTER_REF, "Pointer to Num Ous (uint32)",hf_wkssvc_wkssvc_NetrGetJoinableOus_num_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_num_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrGetJoinableOus_num_ous, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_ous_, NDR_POINTER_REF, "Pointer to Ous (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_ous__, NDR_POINTER_UNIQUE, "Pointer to Ous (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_ous__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_ous___);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_ous___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus_ous____, NDR_POINTER_UNIQUE, "Pointer to Ous (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus_ous____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus_ous, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrGetJoinableOus( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *unknown, */
+/* IDL: [out] [in] [ref] uint32 *num_ous, */
+/* IDL: [out] [ref] [charset(UTF16)] [size_is(,*num_ous)] uint16 ***ous */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrGetJoinableOus_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrGetJoinableOus";
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_num_ous(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_ous(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrGetJoinableOus_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrGetJoinableOus";
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_unknown(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus_num_ous(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain2_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain2_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain2_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain2_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_account_ou(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain2_account_ou_, NDR_POINTER_UNIQUE, "Pointer to Account Ou (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain2_account_ou);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_account_ou_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain2_account_ou, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_admin_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain2_admin_account_, NDR_POINTER_UNIQUE, "Pointer to Admin Account (uint16)",hf_wkssvc_wkssvc_NetrJoinDomain2_admin_account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_admin_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrJoinDomain2_admin_account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_encrypted_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrJoinDomain2_encrypted_password_, NDR_POINTER_UNIQUE, "Pointer to Encrypted Password (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrJoinDomain2_encrypted_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_encrypted_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrJoinDomain2_encrypted_password,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrJoinDomain2_join_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_bitmap_joinflags(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrJoinDomain2_join_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrJoinDomain2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *account_ou, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *admin_account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *encrypted_password, */
+/* IDL: [in] wkssvc_joinflags join_flags */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrJoinDomain2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrJoinDomain2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrJoinDomain2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrJoinDomain2";
+       offset = wkssvc_dissect_element_NetrJoinDomain2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain2_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain2_account_ou(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain2_admin_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain2_encrypted_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrJoinDomain2_join_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUnjoinDomain2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrUnjoinDomain2_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUnjoinDomain2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUnjoinDomain2_account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrUnjoinDomain2_account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrUnjoinDomain2_account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_encrypted_password(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrUnjoinDomain2_encrypted_password_, NDR_POINTER_UNIQUE, "Pointer to Encrypted Password (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrUnjoinDomain2_encrypted_password);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_encrypted_password_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrUnjoinDomain2_encrypted_password,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrUnjoinDomain2_unjoin_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_bitmap_joinflags(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrUnjoinDomain2_unjoin_flags, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrUnjoinDomain2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *encrypted_password, */
+/* IDL: [in] wkssvc_joinflags unjoin_flags */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrUnjoinDomain2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrUnjoinDomain2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrUnjoinDomain2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrUnjoinDomain2";
+       offset = wkssvc_dissect_element_NetrUnjoinDomain2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUnjoinDomain2_account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUnjoinDomain2_encrypted_password(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrUnjoinDomain2_unjoin_flags(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_NewMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain2_NewMachineName_, NDR_POINTER_UNIQUE, "Pointer to Newmachinename (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_NewMachineName);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_NewMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_NewMachineName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain2_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRenameMachineInDomain2_EncryptedPassword_, NDR_POINTER_UNIQUE, "Pointer to Encryptedpassword (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_EncryptedPassword);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_EncryptedPassword,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRenameMachineInDomain2_RenameOptions(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_bitmap_renameflags(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_RenameOptions, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrRenameMachineInDomain2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *NewMachineName, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *EncryptedPassword, */
+/* IDL: [in] wkssvc_renameflags RenameOptions */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrRenameMachineInDomain2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrRenameMachineInDomain2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrRenameMachineInDomain2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrRenameMachineInDomain2";
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain2_NewMachineName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain2_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain2_EncryptedPassword(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRenameMachineInDomain2_RenameOptions(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrValidateName2_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName2_name_, NDR_POINTER_REF, "Pointer to Name (uint16)",hf_wkssvc_wkssvc_NetrValidateName2_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName2_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName2_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrValidateName2_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrValidateName2_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrValidateName2_EncryptedPassword_, NDR_POINTER_UNIQUE, "Pointer to Encryptedpassword (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrValidateName2_EncryptedPassword);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrValidateName2_EncryptedPassword,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrValidateName2_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_NetValidateNameType(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrValidateName2_name_type, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrValidateName2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *EncryptedPassword, */
+/* IDL: [in] wkssvc_NetValidateNameType name_type */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrValidateName2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrValidateName2";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrValidateName2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrValidateName2";
+       offset = wkssvc_dissect_element_NetrValidateName2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName2_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName2_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName2_EncryptedPassword(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrValidateName2_name_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus2_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_domain_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_domain_name_, NDR_POINTER_REF, "Pointer to Domain Name (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_domain_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_domain_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus2_domain_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus2_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_EncryptedPassword_, NDR_POINTER_UNIQUE, "Pointer to Encryptedpassword (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_EncryptedPassword);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrGetJoinableOus2_EncryptedPassword,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_num_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_num_ous_, NDR_POINTER_REF, "Pointer to Num Ous (uint32)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_num_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_num_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrGetJoinableOus2_num_ous, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_ous(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_ous_, NDR_POINTER_REF, "Pointer to Ous (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_ous_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_ous__, NDR_POINTER_UNIQUE, "Pointer to Ous (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_ous__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_ous___);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_ous___(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrGetJoinableOus2_ous____, NDR_POINTER_UNIQUE, "Pointer to Ous (uint16)",hf_wkssvc_wkssvc_NetrGetJoinableOus2_ous);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrGetJoinableOus2_ous____(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrGetJoinableOus2_ous, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrGetJoinableOus2( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [ref] [in] [charset(UTF16)] uint16 *domain_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *EncryptedPassword, */
+/* IDL: [out] [in] [ref] uint32 *num_ous, */
+/* IDL: [out] [ref] [charset(UTF16)] [size_is(,*num_ous)] uint16 ***ous */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrGetJoinableOus2_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrGetJoinableOus2";
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_num_ous(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_ous(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrGetJoinableOus2_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrGetJoinableOus2";
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_domain_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_EncryptedPassword(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrGetJoinableOus2_num_ous(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrAddAlternateComputerName_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrAddAlternateComputerName_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrAddAlternateComputerName_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_NewAlternateMachineName(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrAddAlternateComputerName_NewAlternateMachineName_, NDR_POINTER_UNIQUE, "Pointer to Newalternatemachinename (uint16)",hf_wkssvc_wkssvc_NetrAddAlternateComputerName_NewAlternateMachineName);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_NewAlternateMachineName_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrAddAlternateComputerName_NewAlternateMachineName, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrAddAlternateComputerName_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrAddAlternateComputerName_EncryptedPassword_, NDR_POINTER_UNIQUE, "Pointer to Encryptedpassword (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrAddAlternateComputerName_EncryptedPassword);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrAddAlternateComputerName_EncryptedPassword,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrAddAlternateComputerName_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrAddAlternateComputerName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *NewAlternateMachineName, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *EncryptedPassword, */
+/* IDL: [in] uint32 Reserved */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrAddAlternateComputerName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrAddAlternateComputerName";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrAddAlternateComputerName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrAddAlternateComputerName";
+       offset = wkssvc_dissect_element_NetrAddAlternateComputerName_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrAddAlternateComputerName_NewAlternateMachineName(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrAddAlternateComputerName_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrAddAlternateComputerName_EncryptedPassword(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrAddAlternateComputerName_Reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRemoveAlternateComputerName_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove_, NDR_POINTER_UNIQUE, "Pointer to Alternatemachinenametoremove (uint16)",hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRemoveAlternateComputerName_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrRemoveAlternateComputerName_EncryptedPassword_, NDR_POINTER_UNIQUE, "Pointer to Encryptedpassword (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_EncryptedPassword);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_EncryptedPassword,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrRemoveAlternateComputerName_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrRemoveAlternateComputerName( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *AlternateMachineNameToRemove, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *EncryptedPassword, */
+/* IDL: [in] uint32 Reserved */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrRemoveAlternateComputerName_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrRemoveAlternateComputerName";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrRemoveAlternateComputerName_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrRemoveAlternateComputerName";
+       offset = wkssvc_dissect_element_NetrRemoveAlternateComputerName_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRemoveAlternateComputerName_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRemoveAlternateComputerName_EncryptedPassword(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrRemoveAlternateComputerName_Reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrSetPrimaryComputername_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrSetPrimaryComputername_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrSetPrimaryComputername_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_primary_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrSetPrimaryComputername_primary_name_, NDR_POINTER_UNIQUE, "Pointer to Primary Name (uint16)",hf_wkssvc_wkssvc_NetrSetPrimaryComputername_primary_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_primary_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrSetPrimaryComputername_primary_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_Account(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrSetPrimaryComputername_Account_, NDR_POINTER_UNIQUE, "Pointer to Account (uint16)",hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Account);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_Account_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Account, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_EncryptedPassword(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrSetPrimaryComputername_EncryptedPassword_, NDR_POINTER_UNIQUE, "Pointer to Encryptedpassword (wkssvc_PasswordBuffer)",hf_wkssvc_wkssvc_NetrSetPrimaryComputername_EncryptedPassword);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_EncryptedPassword_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_PasswordBuffer(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrSetPrimaryComputername_EncryptedPassword,0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrSetPrimaryComputername_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Reserved, 0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrSetPrimaryComputername( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *primary_name, */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *Account, */
+/* IDL: [unique(1)] [in] wkssvc_PasswordBuffer *EncryptedPassword, */
+/* IDL: [in] uint32 Reserved */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrSetPrimaryComputername_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrSetPrimaryComputername";
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrSetPrimaryComputername_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrSetPrimaryComputername";
+       offset = wkssvc_dissect_element_NetrSetPrimaryComputername_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrSetPrimaryComputername_primary_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrSetPrimaryComputername_Account(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrSetPrimaryComputername_EncryptedPassword(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrSetPrimaryComputername_Reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_server_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrEnumerateComputerNames_server_name_, NDR_POINTER_UNIQUE, "Pointer to Server Name (uint16)",hf_wkssvc_wkssvc_NetrEnumerateComputerNames_server_name);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_server_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       char *data;
+
+       offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, drep, sizeof(guint16), hf_wkssvc_wkssvc_NetrEnumerateComputerNames_server_name, FALSE, &data);
+       proto_item_append_text(tree, ": %s", data);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_name_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_enum_ComputerNameType(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrEnumerateComputerNames_name_type, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_Reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_wkssvc_NetrEnumerateComputerNames_Reserved, 0);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_ctr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_toplevel_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrEnumerateComputerNames_ctr_, NDR_POINTER_REF, "Pointer to Ctr (wkssvc_ComputerNamesCtr)",hf_wkssvc_wkssvc_NetrEnumerateComputerNames_ctr);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_ctr_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, wkssvc_dissect_element_NetrEnumerateComputerNames_ctr__, NDR_POINTER_UNIQUE, "Pointer to Ctr (wkssvc_ComputerNamesCtr)",hf_wkssvc_wkssvc_NetrEnumerateComputerNames_ctr);
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_element_NetrEnumerateComputerNames_ctr__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = wkssvc_dissect_struct_ComputerNamesCtr(tvb,offset,pinfo,tree,drep,hf_wkssvc_wkssvc_NetrEnumerateComputerNames_ctr,0);
+
+       return offset;
+}
+
+/* IDL: WERROR wkssvc_NetrEnumerateComputerNames( */
+/* IDL: [unique(1)] [in] [charset(UTF16)] uint16 *server_name, */
+/* IDL: [in] wkssvc_ComputerNameType name_type, */
+/* IDL: [in] uint32 Reserved, */
+/* IDL: [out] [ref] wkssvc_ComputerNamesCtr **ctr */
+/* IDL: ); */
+
+static int
+wkssvc_dissect_NetrEnumerateComputerNames_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       guint32 status;
+
+       pinfo->dcerpc_procedure_name="NetrEnumerateComputerNames";
+       offset = wkssvc_dissect_element_NetrEnumerateComputerNames_ctr(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_wkssvc_werror, &status);
+
+       if (status != 0)
+               col_append_fstr(pinfo->cinfo, COL_INFO, ", Error: %s", val_to_str(status, WERR_errors, "Unknown DOS error 0x%08x"));
+
+       return offset;
+}
+
+static int
+wkssvc_dissect_NetrEnumerateComputerNames_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="NetrEnumerateComputerNames";
+       offset = wkssvc_dissect_element_NetrEnumerateComputerNames_server_name(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrEnumerateComputerNames_name_type(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       offset = wkssvc_dissect_element_NetrEnumerateComputerNames_Reserved(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector wkssvc_dissectors[] = {
+       { 0, "NetWkstaGetInfo",
+          wkssvc_dissect_NetWkstaGetInfo_request, wkssvc_dissect_NetWkstaGetInfo_response},
+       { 1, "NetWkstaSetInfo",
+          wkssvc_dissect_NetWkstaSetInfo_request, wkssvc_dissect_NetWkstaSetInfo_response},
+       { 2, "NetWkstaEnumUsers",
+          wkssvc_dissect_NetWkstaEnumUsers_request, wkssvc_dissect_NetWkstaEnumUsers_response},
+       { 3, "NetrWkstaUserGetInfo",
+          wkssvc_dissect_NetrWkstaUserGetInfo_request, wkssvc_dissect_NetrWkstaUserGetInfo_response},
+       { 4, "NetrWkstaUserSetInfo",
+          wkssvc_dissect_NetrWkstaUserSetInfo_request, wkssvc_dissect_NetrWkstaUserSetInfo_response},
+       { 5, "NetWkstaTransportEnum",
+          wkssvc_dissect_NetWkstaTransportEnum_request, wkssvc_dissect_NetWkstaTransportEnum_response},
+       { 6, "NetrWkstaTransportAdd",
+          wkssvc_dissect_NetrWkstaTransportAdd_request, wkssvc_dissect_NetrWkstaTransportAdd_response},
+       { 7, "NetrWkstaTransportDel",
+          wkssvc_dissect_NetrWkstaTransportDel_request, wkssvc_dissect_NetrWkstaTransportDel_response},
+       { 8, "NetrUseAdd",
+          wkssvc_dissect_NetrUseAdd_request, wkssvc_dissect_NetrUseAdd_response},
+       { 9, "NetrUseGetInfo",
+          wkssvc_dissect_NetrUseGetInfo_request, wkssvc_dissect_NetrUseGetInfo_response},
+       { 10, "NetrUseDel",
+          wkssvc_dissect_NetrUseDel_request, wkssvc_dissect_NetrUseDel_response},
+       { 11, "NetrUseEnum",
+          wkssvc_dissect_NetrUseEnum_request, wkssvc_dissect_NetrUseEnum_response},
+       { 12, "NetrMessageBufferSend",
+          wkssvc_dissect_NetrMessageBufferSend_request, wkssvc_dissect_NetrMessageBufferSend_response},
+       { 13, "NetrWorkstationStatisticsGet",
+          wkssvc_dissect_NetrWorkstationStatisticsGet_request, wkssvc_dissect_NetrWorkstationStatisticsGet_response},
+       { 14, "NetrLogonDomainNameAdd",
+          wkssvc_dissect_NetrLogonDomainNameAdd_request, wkssvc_dissect_NetrLogonDomainNameAdd_response},
+       { 15, "NetrLogonDomainNameDel",
+          wkssvc_dissect_NetrLogonDomainNameDel_request, wkssvc_dissect_NetrLogonDomainNameDel_response},
+       { 16, "NetrJoinDomain",
+          wkssvc_dissect_NetrJoinDomain_request, wkssvc_dissect_NetrJoinDomain_response},
+       { 17, "NetrUnjoinDomain",
+          wkssvc_dissect_NetrUnjoinDomain_request, wkssvc_dissect_NetrUnjoinDomain_response},
+       { 18, "NetrRenameMachineInDomain",
+          wkssvc_dissect_NetrRenameMachineInDomain_request, wkssvc_dissect_NetrRenameMachineInDomain_response},
+       { 19, "NetrValidateName",
+          wkssvc_dissect_NetrValidateName_request, wkssvc_dissect_NetrValidateName_response},
+       { 20, "NetrGetJoinInformation",
+          wkssvc_dissect_NetrGetJoinInformation_request, wkssvc_dissect_NetrGetJoinInformation_response},
+       { 21, "NetrGetJoinableOus",
+          wkssvc_dissect_NetrGetJoinableOus_request, wkssvc_dissect_NetrGetJoinableOus_response},
+       { 22, "NetrJoinDomain2",
+          wkssvc_dissect_NetrJoinDomain2_request, wkssvc_dissect_NetrJoinDomain2_response},
+       { 23, "NetrUnjoinDomain2",
+          wkssvc_dissect_NetrUnjoinDomain2_request, wkssvc_dissect_NetrUnjoinDomain2_response},
+       { 24, "NetrRenameMachineInDomain2",
+          wkssvc_dissect_NetrRenameMachineInDomain2_request, wkssvc_dissect_NetrRenameMachineInDomain2_response},
+       { 25, "NetrValidateName2",
+          wkssvc_dissect_NetrValidateName2_request, wkssvc_dissect_NetrValidateName2_response},
+       { 26, "NetrGetJoinableOus2",
+          wkssvc_dissect_NetrGetJoinableOus2_request, wkssvc_dissect_NetrGetJoinableOus2_response},
+       { 27, "NetrAddAlternateComputerName",
+          wkssvc_dissect_NetrAddAlternateComputerName_request, wkssvc_dissect_NetrAddAlternateComputerName_response},
+       { 28, "NetrRemoveAlternateComputerName",
+          wkssvc_dissect_NetrRemoveAlternateComputerName_request, wkssvc_dissect_NetrRemoveAlternateComputerName_response},
+       { 29, "NetrSetPrimaryComputername",
+          wkssvc_dissect_NetrSetPrimaryComputername_request, wkssvc_dissect_NetrSetPrimaryComputername_response},
+       { 30, "NetrEnumerateComputerNames",
+          wkssvc_dissect_NetrEnumerateComputerNames_request, wkssvc_dissect_NetrEnumerateComputerNames_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_wkssvc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_use_count,
+         { "Use Count", "wkssvc.wkssvc_NetrUseInfo2.use_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo0_quality_of_service,
+         { "Quality Of Service", "wkssvc.wkssvc_NetWkstaTransportInfo0.quality_of_service", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1045_pipe_maximum,
+         { "Pipe Maximum", "wkssvc.wkssvc_NetWkstaInfo1045.pipe_maximum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_password,
+         { "Password", "wkssvc.wkssvc_NetrUseInfo2.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain2_join_flags,
+         { "Join Flags", "wkssvc.wkssvc_NetrJoinDomain2.join_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr1,
+         { "Ctr1", "wkssvc.wkssvc_NetrUseEnumCtr.ctr1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_level,
+         { "Level", "wkssvc.wkssvc_NetrWkstaUserSetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnum_entries_read,
+         { "Entries Read", "wkssvc.wkssvc_NetrUseEnum.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrSetPrimaryComputername_EncryptedPassword,
+         { "Encryptedpassword", "wkssvc.wkssvc_NetrSetPrimaryComputername.EncryptedPassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_parm_err,
+         { "Parm Err", "wkssvc.wkssvc_NetrWkstaUserSetInfo.parm_err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnum_info,
+         { "Info", "wkssvc.wkssvc_NetrUseEnum.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Account,
+         { "Account", "wkssvc.wkssvc_NetrSetPrimaryComputername.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown14,
+         { "Unknown14", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown14", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user0,
+         { "User0", "wkssvc.wkssvc_NetWkstaEnumUsersCtr.user0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrGetJoinableOus.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_user_name,
+         { "User Name", "wkssvc.wkssvc_NetrUseInfo2.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo101_version_major,
+         { "Version Major", "wkssvc.wkssvc_NetWkstaInfo101.version_major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo1_other_domains,
+         { "Other Domains", "wkssvc.wkssvc_NetrWkstaUserInfo1.other_domains", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus_Account,
+         { "Account", "wkssvc.wkssvc_NetrGetJoinableOus.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportCtr_ctr0,
+         { "Ctr0", "wkssvc.wkssvc_NetWkstaTransportCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_dgram_event_reset_freq,
+         { "Dgram Event Reset Freq", "wkssvc.wkssvc_NetWkstaInfo502.dgram_event_reset_freq", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_lan_root,
+         { "Lan Root", "wkssvc.wkssvc_NetWkstaInfo102.lan_root", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo1_user_name,
+         { "User Name", "wkssvc.wkssvc_NetrWkstaUserInfo1.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info502,
+         { "Info502", "wkssvc.wkssvc_NetWkstaInfo.info502", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown32,
+         { "Unknown32", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown32", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown29,
+         { "Unknown29", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown29", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1055_use_raw_write,
+         { "Use Raw Write", "wkssvc.wkssvc_NetWkstaInfo1055.use_raw_write", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1051,
+         { "Info1051", "wkssvc.wkssvc_NetWkstaInfo.info1051", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName2_name,
+         { "Name", "wkssvc.wkssvc_NetrValidateName2.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_dormant_file_limit,
+         { "Dormant File Limit", "wkssvc.wkssvc_NetWkstaInfo502.dormant_file_limit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_maximum_collection_count,
+         { "Maximum Collection Count", "wkssvc.wkssvc_NetWkstaInfo502.maximum_collection_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrMessageBufferSend_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrMessageBufferSend.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_write_raw_data,
+         { "Use Write Raw Data", "wkssvc.wkssvc_NetWkstaInfo502.use_write_raw_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrEnumerateComputerNames_Reserved,
+         { "Reserved", "wkssvc.wkssvc_NetrEnumerateComputerNames.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_size_char_buf,
+         { "Size Char Buf", "wkssvc.wkssvc_NetWkstaInfo502.size_char_buf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportCtr0_array,
+         { "Array", "wkssvc.wkssvc_NetWkstaTransportCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrEnumerateComputerNames_name_type,
+         { "Name Type", "wkssvc.wkssvc_NetrEnumerateComputerNames.name_type", FT_UINT1632, BASE_DEC, VALS(wkssvc_wkssvc_ComputerNameType_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseAdd_parm_err,
+         { "Parm Err", "wkssvc.wkssvc_NetrUseAdd.parm_err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown9,
+         { "Unknown9", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown9", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus2_num_ous,
+         { "Num Ous", "wkssvc.wkssvc_NetrGetJoinableOus2.num_ous", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrRenameMachineInDomain.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown38,
+         { "Unknown38", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown38", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo1101_other_domains,
+         { "Other Domains", "wkssvc.wkssvc_NetrWkstaUserInfo1101.other_domains", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaGetInfo_level,
+         { "Level", "wkssvc.wkssvc_NetWkstaGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_ref_count,
+         { "Ref Count", "wkssvc.wkssvc_NetrUseInfo1.ref_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown4,
+         { "Unknown4", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown4", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain2_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrJoinDomain2.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr2,
+         { "Ctr2", "wkssvc.wkssvc_NetrUseEnumCtr.ctr2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown3,
+         { "Unknown3", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown3", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain_join_flags,
+         { "Join Flags", "wkssvc.wkssvc_NetrJoinDomain.join_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseDel_use_name,
+         { "Use Name", "wkssvc.wkssvc_NetrUseDel.use_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_buf_files_deny_write,
+         { "Buf Files Deny Write", "wkssvc.wkssvc_NetWkstaInfo502.buf_files_deny_write", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfo_use_name,
+         { "Use Name", "wkssvc.wkssvc_NetrUseGetInfo.use_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1060,
+         { "Info1060", "wkssvc.wkssvc_NetWkstaInfo.info1060", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown4,
+         { "Unknown4", "wkssvc.wkssvc_NetrWorkstationStatisticsGet.unknown4", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1057,
+         { "Info1057", "wkssvc.wkssvc_NetWkstaInfo.info1057", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo_level,
+         { "Level", "wkssvc.wkssvc_NetWkstaTransportInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo0_name,
+         { "Name", "wkssvc.wkssvc_NetWkstaTransportInfo0.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr1_array,
+         { "Array", "wkssvc.wkssvc_NetrUseEnumCtr1.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown20,
+         { "Unknown20", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown20", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnum_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrUseEnum.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_entries_read,
+         { "Entries Read", "wkssvc.wkssvc_NetWkstaEnumUsersCtr1.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown37,
+         { "Unknown37", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown37", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1058,
+         { "Info1058", "wkssvc.wkssvc_NetWkstaInfo.info1058", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfo_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrUseGetInfo.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE,
+         { "Wkssvc Join Flags Account Delete", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_DELETE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1043_lock_maximum,
+         { "Lock Maximum", "wkssvc.wkssvc_NetWkstaInfo1043.lock_maximum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown24,
+         { "Unknown24", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown24", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetWkstaInfo102.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseDel_force_cond,
+         { "Force Cond", "wkssvc.wkssvc_NetrUseDel.force_cond", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsers_resume_handle,
+         { "Resume Handle", "wkssvc.wkssvc_NetWkstaEnumUsers.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr0_count,
+         { "Count", "wkssvc.wkssvc_NetrUseEnumCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1053_utilize_nt_caching,
+         { "Utilize Nt Caching", "wkssvc.wkssvc_NetWkstaInfo1053.utilize_nt_caching", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_num_srv_announce_buffers,
+         { "Num Srv Announce Buffers", "wkssvc.wkssvc_NetWkstaInfo502.num_srv_announce_buffers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo100_platform_id,
+         { "Platform Id", "wkssvc.wkssvc_NetWkstaInfo100.platform_id", FT_UINT32, BASE_DEC, VALS(wkssvc_srvsvc_PlatformId_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrSetPrimaryComputername_primary_name,
+         { "Primary Name", "wkssvc.wkssvc_NetrSetPrimaryComputername.primary_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown36,
+         { "Unknown36", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown36", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info0,
+         { "Info0", "wkssvc.wkssvc_NetrUseGetInfoCtr.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfo_ctr,
+         { "Ctr", "wkssvc.wkssvc_NetrUseGetInfo.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo3_unknown2,
+         { "Unknown2", "wkssvc.wkssvc_NetrUseInfo3.unknown2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1,
+         { "Info1", "wkssvc.wkssvc_NetrWkstaUserInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1048_use_opportunistic_locking,
+         { "Use Opportunistic Locking", "wkssvc.wkssvc_NetWkstaInfo1048.use_opportunistic_locking", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown27,
+         { "Unknown27", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown27", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo0_vc_count,
+         { "Vc Count", "wkssvc.wkssvc_NetWkstaTransportInfo0.vc_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_EncryptedPassword,
+         { "Encryptedpassword", "wkssvc.wkssvc_NetrRemoveAlternateComputerName.EncryptedPassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Account,
+         { "Account", "wkssvc.wkssvc_NetrAddAlternateComputerName.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_info,
+         { "Info", "wkssvc.wkssvc_NetrWkstaUserGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsers_entries_read,
+         { "Entries Read", "wkssvc.wkssvc_NetWkstaEnumUsers.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsers_prefmaxlen,
+         { "Prefmaxlen", "wkssvc.wkssvc_NetWkstaEnumUsers.prefmaxlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_domain,
+         { "Logon Domain", "wkssvc.wkssvc_NetrWkstaUserInfo1.logon_domain", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown16,
+         { "Unknown16", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown16", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_log_election_packets,
+         { "Log Election Packets", "wkssvc.wkssvc_NetWkstaInfo502.log_election_packets", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_raw_read,
+         { "Use Raw Read", "wkssvc.wkssvc_NetWkstaInfo502.use_raw_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus_unknown,
+         { "Unknown", "wkssvc.wkssvc_NetrGetJoinableOus.unknown", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrSetPrimaryComputername_Reserved,
+         { "Reserved", "wkssvc.wkssvc_NetrSetPrimaryComputername.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1027_errorlog_sz,
+         { "Errorlog Sz", "wkssvc.wkssvc_NetWkstaInfo1027.errorlog_sz", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1052,
+         { "Info1052", "wkssvc.wkssvc_NetWkstaInfo.info1052", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1012_maximum_collection_count,
+         { "Maximum Collection Count", "wkssvc.wkssvc_NetWkstaInfo1012.maximum_collection_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain2_admin_account,
+         { "Admin Account", "wkssvc.wkssvc_NetrJoinDomain2.admin_account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr_ctr0,
+         { "Ctr0", "wkssvc.wkssvc_NetrUseEnumCtr.ctr0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1050_use_close_behind,
+         { "Use Close Behind", "wkssvc.wkssvc_NetWkstaInfo1050.use_close_behind", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_unlock_behind,
+         { "Use Unlock Behind", "wkssvc.wkssvc_NetWkstaInfo502.use_unlock_behind", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr_user1,
+         { "User1", "wkssvc.wkssvc_NetWkstaEnumUsersCtr.user1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_version_minor,
+         { "Version Minor", "wkssvc.wkssvc_NetWkstaInfo102.version_minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_ComputerNamesCtr_count,
+         { "Count", "wkssvc.wkssvc_ComputerNamesCtr.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1048,
+         { "Info1048", "wkssvc.wkssvc_NetWkstaInfo.info1048", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1018_session_timeout,
+         { "Session Timeout", "wkssvc.wkssvc_NetWkstaInfo1018.session_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_keep_connection,
+         { "Keep Connection", "wkssvc.wkssvc_NetWkstaInfo502.keep_connection", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown31,
+         { "Unknown31", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown31", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_max_commands,
+         { "Max Commands", "wkssvc.wkssvc_NetWkstaInfo502.max_commands", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_lock_quota,
+         { "Lock Quota", "wkssvc.wkssvc_NetWkstaInfo502.lock_quota", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown40,
+         { "Unknown40", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown40", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1033_max_threads,
+         { "Max Threads", "wkssvc.wkssvc_NetWkstaInfo1033.max_threads", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseAdd_level,
+         { "Level", "wkssvc.wkssvc_NetrUseAdd.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_renameflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE,
+         { "Wkssvc Join Flags Account Create", "wkssvc.wkssvc_renameflags.WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE", FT_BOOLEAN, 32, TFS(&wkssvc_renameflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown25,
+         { "Unknown25", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown25", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseDel_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrUseDel.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo1_logon_server,
+         { "Logon Server", "wkssvc.wkssvc_NetrWkstaUserInfo1.logon_server", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_PasswordBuffer_data,
+         { "Data", "wkssvc.wkssvc_PasswordBuffer.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo3_unknown1,
+         { "Unknown1", "wkssvc.wkssvc_NetrUseInfo3.unknown1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_cache_file_timeout,
+         { "Cache File Timeout", "wkssvc.wkssvc_NetWkstaInfo502.cache_file_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_num_mailslot_buffers,
+         { "Num Mailslot Buffers", "wkssvc.wkssvc_NetWkstaInfo502.num_mailslot_buffers", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1055,
+         { "Info1055", "wkssvc.wkssvc_NetWkstaInfo.info1055", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain_password,
+         { "Password", "wkssvc.wkssvc_NetrRenameMachineInDomain.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown13,
+         { "Unknown13", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown13", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_utilize_nt_caching,
+         { "Utilize Nt Caching", "wkssvc.wkssvc_NetWkstaInfo502.utilize_nt_caching", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1061_use_512_byte_max_transfer,
+         { "Use 512 Byte Max Transfer", "wkssvc.wkssvc_NetWkstaInfo1061.use_512_byte_max_transfer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_info,
+         { "Info", "wkssvc.wkssvc_NetrWorkstationStatisticsGet.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaSetInfo_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaSetInfo.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain2_encrypted_password,
+         { "Encrypted Password", "wkssvc.wkssvc_NetrJoinDomain2.encrypted_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnum_prefmaxlen,
+         { "Prefmaxlen", "wkssvc.wkssvc_NetrUseEnum.prefmaxlen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown2,
+         { "Unknown2", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown2", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrWorkstationStatisticsGet.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportDel_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrWkstaTransportDel.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain2_account_ou,
+         { "Account Ou", "wkssvc.wkssvc_NetrJoinDomain2.account_ou", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DEFER_SPN,
+         { "Wkssvc Join Flags Defer Spn", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_DEFER_SPN", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DEFER_SPN_tfs), ( 0x00000100 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1010_char_wait,
+         { "Char Wait", "wkssvc.wkssvc_NetWkstaInfo1010.char_wait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain_RenameOptions,
+         { "Renameoptions", "wkssvc.wkssvc_NetrRenameMachineInDomain.RenameOptions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsers_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaEnumUsers.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain_Account,
+         { "Account", "wkssvc.wkssvc_NetrRenameMachineInDomain.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown23,
+         { "Unknown23", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown23", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumInfo_ctr,
+         { "Ctr", "wkssvc.wkssvc_NetrUseEnumInfo.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersInfo_ctr,
+         { "Ctr", "wkssvc.wkssvc_NetWkstaEnumUsersInfo.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_user0,
+         { "User0", "wkssvc.wkssvc_NetWkstaEnumUsersCtr0.user0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_buf_read_only_files,
+         { "Buf Read Only Files", "wkssvc.wkssvc_NetWkstaInfo502.buf_read_only_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrUnjoinDomain.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo101_lan_root,
+         { "Lan Root", "wkssvc.wkssvc_NetWkstaInfo101.lan_root", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_TYPE,
+         { "Wkssvc Join Flags Join Type", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_JOIN_TYPE", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_TYPE_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_buf_named_pipes,
+         { "Buf Named Pipes", "wkssvc.wkssvc_NetWkstaInfo502.buf_named_pipes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_ref_count,
+         { "Ref Count", "wkssvc.wkssvc_NetrUseInfo2.ref_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1044_pipe_increment,
+         { "Pipe Increment", "wkssvc.wkssvc_NetWkstaInfo1044.pipe_increment", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED,
+         { "Wkssvc Join Flags Domain Join If Joined", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_DOMAIN_JOIN_IF_JOINED_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_AlternateMachineNameToRemove,
+         { "Alternatemachinenametoremove", "wkssvc.wkssvc_NetrRemoveAlternateComputerName.AlternateMachineNameToRemove", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr2_array,
+         { "Array", "wkssvc.wkssvc_NetrUseEnumCtr2.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaGetInfo_info,
+         { "Info", "wkssvc.wkssvc_NetWkstaGetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_max_illegal_dgram_events,
+         { "Max Illegal Dgram Events", "wkssvc.wkssvc_NetWkstaInfo502.max_illegal_dgram_events", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1047,
+         { "Info1047", "wkssvc.wkssvc_NetWkstaInfo.info1047", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName_Password,
+         { "Password", "wkssvc.wkssvc_NetrValidateName.Password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1028_print_buf_time,
+         { "Print Buf Time", "wkssvc.wkssvc_NetWkstaInfo1028.print_buf_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info3,
+         { "Info3", "wkssvc.wkssvc_NetrUseGetInfoCtr.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus2_Account,
+         { "Account", "wkssvc.wkssvc_NetrGetJoinableOus2.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_RenameOptions,
+         { "Renameoptions", "wkssvc.wkssvc_NetrRenameMachineInDomain2.RenameOptions", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo_info1101,
+         { "Info1101", "wkssvc.wkssvc_NetrWkstaUserInfo.info1101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown17,
+         { "Unknown17", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown17", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1013,
+         { "Info1013", "wkssvc.wkssvc_NetWkstaInfo.info1013", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName2_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrValidateName2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown34,
+         { "Unknown34", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown34", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1018,
+         { "Info1018", "wkssvc.wkssvc_NetWkstaInfo.info1018", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr0_entries_read,
+         { "Entries Read", "wkssvc.wkssvc_NetWkstaEnumUsersCtr0.entries_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1057_use_encryption,
+         { "Use Encryption", "wkssvc.wkssvc_NetWkstaInfo1057.use_encryption", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_status,
+         { "Status", "wkssvc.wkssvc_NetrUseInfo1.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo0_wan_link,
+         { "Wan Link", "wkssvc.wkssvc_NetWkstaTransportInfo0.wan_link", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown35,
+         { "Unknown35", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown35", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown7,
+         { "Unknown7", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown7", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaSetInfo_parm_error,
+         { "Parm Error", "wkssvc.wkssvc_NetWkstaSetInfo.parm_error", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo0_remote,
+         { "Remote", "wkssvc.wkssvc_NetrUseInfo0.remote", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo_info0,
+         { "Info0", "wkssvc.wkssvc_NetrWkstaUserInfo.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1060_force_core_create_mode,
+         { "Force Core Create Mode", "wkssvc.wkssvc_NetWkstaInfo1060.force_core_create_mode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserInfo0_user_name,
+         { "User Name", "wkssvc.wkssvc_NetrWkstaUserInfo0.user_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info101,
+         { "Info101", "wkssvc.wkssvc_NetWkstaInfo.info101", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo0_address,
+         { "Address", "wkssvc.wkssvc_NetWkstaTransportInfo0.address", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown39,
+         { "Unknown39", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown39", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr2_count,
+         { "Count", "wkssvc.wkssvc_NetrUseEnumCtr2.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinInformation_name_buffer,
+         { "Name Buffer", "wkssvc.wkssvc_NetrGetJoinInformation.name_buffer", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain_NewMachineName,
+         { "Newmachinename", "wkssvc.wkssvc_NetrRenameMachineInDomain.NewMachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_lock_maximum,
+         { "Lock Maximum", "wkssvc.wkssvc_NetWkstaInfo502.lock_maximum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain_Account,
+         { "Account", "wkssvc.wkssvc_NetrUnjoinDomain.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_level,
+         { "Level", "wkssvc.wkssvc_NetrWkstaUserGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1049,
+         { "Info1049", "wkssvc.wkssvc_NetWkstaInfo.info1049", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus_num_ous,
+         { "Num Ous", "wkssvc.wkssvc_NetrGetJoinableOus.num_ous", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_asg_type,
+         { "Asg Type", "wkssvc.wkssvc_NetrUseInfo2.asg_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_password,
+         { "Password", "wkssvc.wkssvc_NetrUseInfo1.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_local,
+         { "Local", "wkssvc.wkssvc_NetrUseInfo1.local", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1054_use_raw_read,
+         { "Use Raw Read", "wkssvc.wkssvc_NetWkstaInfo1054.use_raw_read", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrRenameMachineInDomain2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1023_size_char_buf,
+         { "Size Char Buf", "wkssvc.wkssvc_NetWkstaInfo1023.size_char_buf", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo100_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetWkstaInfo100.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportEnum_max_buffer,
+         { "Max Buffer", "wkssvc.wkssvc_NetWkstaTransportEnum.max_buffer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT,
+         { "Wkssvc Join Flags Join Dc Account", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_DC_ACCOUNT_tfs), ( 0x00000200 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1042,
+         { "Info1042", "wkssvc.wkssvc_NetWkstaInfo.info1042", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1045,
+         { "Info1045", "wkssvc.wkssvc_NetWkstaInfo.info1045", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_unknown,
+         { "Unknown", "wkssvc.wkssvc_NetrWkstaUserSetInfo.unknown", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1011,
+         { "Info1011", "wkssvc.wkssvc_NetWkstaInfo.info1011", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1049_use_unlock_behind,
+         { "Use Unlock Behind", "wkssvc.wkssvc_NetWkstaInfo1049.use_unlock_behind", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1062_read_ahead_throughput,
+         { "Read Ahead Throughput", "wkssvc.wkssvc_NetWkstaInfo1062.read_ahead_throughput", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1056_use_write_raw_data,
+         { "Use Write Raw Data", "wkssvc.wkssvc_NetWkstaInfo1056.use_write_raw_data", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportAdd_info0,
+         { "Info0", "wkssvc.wkssvc_NetrWkstaTransportAdd.info0", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName_name,
+         { "Name", "wkssvc.wkssvc_NetrValidateName.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown18,
+         { "Unknown18", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown18", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrMessageBufferSend_message_size,
+         { "Message Size", "wkssvc.wkssvc_NetrMessageBufferSend.message_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_UNSECURE,
+         { "Wkssvc Join Flags Join Unsecure", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_JOIN_UNSECURE", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_UNSECURE_tfs), ( 0x00000040 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_ComputerNamesCtr_computer_name,
+         { "Computer Name", "wkssvc.wkssvc_ComputerNamesCtr.computer_name", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName2_name_type,
+         { "Name Type", "wkssvc.wkssvc_NetrValidateName2.name_type", FT_UINT1632, BASE_DEC, VALS(wkssvc_wkssvc_NetValidateNameType_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName2_Account,
+         { "Account", "wkssvc.wkssvc_NetrValidateName2.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrGetJoinableOus.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportEnum_total_entries,
+         { "Total Entries", "wkssvc.wkssvc_NetWkstaTransportEnum.total_entries", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE,
+         { "Wkssvc Join Flags Win9x Upgrade", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_WIN9X_UPGRADE_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName2_EncryptedPassword,
+         { "Encryptedpassword", "wkssvc.wkssvc_NetrValidateName2.EncryptedPassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportDel_unknown3,
+         { "Unknown3", "wkssvc.wkssvc_NetrWkstaTransportDel.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1062,
+         { "Info1062", "wkssvc.wkssvc_NetWkstaInfo.info1062", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserGetInfo_unknown,
+         { "Unknown", "wkssvc.wkssvc_NetrWkstaUserGetInfo.unknown", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrAddAlternateComputerName_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrAddAlternateComputerName.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain2_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrJoinDomain2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info102,
+         { "Info102", "wkssvc.wkssvc_NetWkstaInfo.info102", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain_Account,
+         { "Account", "wkssvc.wkssvc_NetrJoinDomain.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1046_dormant_file_limit,
+         { "Dormant File Limit", "wkssvc.wkssvc_NetWkstaInfo1046.dormant_file_limit", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportAdd_parm_err,
+         { "Parm Err", "wkssvc.wkssvc_NetrWkstaTransportAdd.parm_err", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_version_major,
+         { "Version Major", "wkssvc.wkssvc_NetWkstaInfo102.version_major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown22,
+         { "Unknown22", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown22", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_use_count,
+         { "Use Count", "wkssvc.wkssvc_NetrUseInfo1.use_count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain2_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrUnjoinDomain2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_512_byte_max_transfer,
+         { "Use 512 Byte Max Transfer", "wkssvc.wkssvc_NetWkstaInfo502.use_512_byte_max_transfer", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportEnum_info,
+         { "Info", "wkssvc.wkssvc_NetWkstaTransportEnum.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1033,
+         { "Info1033", "wkssvc.wkssvc_NetWkstaInfo.info1033", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1046,
+         { "Info1046", "wkssvc.wkssvc_NetWkstaInfo.info1046", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaSetInfo_info,
+         { "Info", "wkssvc.wkssvc_NetWkstaSetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrMessageBufferSend_message_sender_name,
+         { "Message Sender Name", "wkssvc.wkssvc_NetrMessageBufferSend.message_sender_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_remote,
+         { "Remote", "wkssvc.wkssvc_NetrUseInfo1.remote", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrUseInfo2.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr1_count,
+         { "Count", "wkssvc.wkssvc_NetrUseEnumCtr1.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1047_cache_file_timeout,
+         { "Cache File Timeout", "wkssvc.wkssvc_NetWkstaInfo1047.cache_file_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info2,
+         { "Info2", "wkssvc.wkssvc_NetrUseGetInfoCtr.info2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown30,
+         { "Unknown30", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown30", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1028,
+         { "Info1028", "wkssvc.wkssvc_NetWkstaInfo.info1028", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info100,
+         { "Info100", "wkssvc.wkssvc_NetWkstaInfo.info100", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrLogonDomainNameDel_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrLogonDomainNameDel.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1013_keep_connection,
+         { "Keep Connection", "wkssvc.wkssvc_NetWkstaInfo1013.keep_connection", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrEnumerateComputerNames_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrEnumerateComputerNames.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaUserSetInfo_info,
+         { "Info", "wkssvc.wkssvc_NetrWkstaUserSetInfo.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrMessageBufferSend_message_name,
+         { "Message Name", "wkssvc.wkssvc_NetrMessageBufferSend.message_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_session_timeout,
+         { "Session Timeout", "wkssvc.wkssvc_NetWkstaInfo502.session_timeout", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumCtr0_array,
+         { "Array", "wkssvc.wkssvc_NetrUseEnumCtr0.array", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown6,
+         { "Unknown6", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown6", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportInfo_ctr,
+         { "Ctr", "wkssvc.wkssvc_NetWkstaTransportInfo.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_collection_time,
+         { "Collection Time", "wkssvc.wkssvc_NetWkstaInfo502.collection_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS,
+         { "Wkssvc Join Flags Ignore Unsupported Flags", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_IGNORE_UNSUPPORTED_FLAGS_tfs), ( 0x10000000 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1054,
+         { "Info1054", "wkssvc.wkssvc_NetWkstaInfo.info1054", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown10,
+         { "Unknown10", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown10", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1032_wrk_heuristics,
+         { "Wrk Heuristics", "wkssvc.wkssvc_NetWkstaInfo1032.wrk_heuristics", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo101_version_minor,
+         { "Version Minor", "wkssvc.wkssvc_NetWkstaInfo101.version_minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED,
+         { "Wkssvc Join Flags Machine Pwd Passed", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_MACHINE_PWD_PASSED_tfs), ( 0x00000080 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportAdd_level,
+         { "Level", "wkssvc.wkssvc_NetrWkstaTransportAdd.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown33,
+         { "Unknown33", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown33", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrEnumerateComputerNames_ctr,
+         { "Ctr", "wkssvc.wkssvc_NetrEnumerateComputerNames.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportEnum_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaTransportEnum.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_max_threads,
+         { "Max Threads", "wkssvc.wkssvc_NetWkstaInfo502.max_threads", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1042_lock_increment,
+         { "Lock Increment", "wkssvc.wkssvc_NetWkstaInfo1042.lock_increment", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfo_level,
+         { "Level", "wkssvc.wkssvc_NetrUseGetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1050,
+         { "Info1050", "wkssvc.wkssvc_NetWkstaInfo.info1050", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_lock_increment,
+         { "Lock Increment", "wkssvc.wkssvc_NetWkstaInfo502.lock_increment", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_local,
+         { "Local", "wkssvc.wkssvc_NetrUseInfo2.local", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrValidateName.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1041,
+         { "Info1041", "wkssvc.wkssvc_NetWkstaInfo.info1041", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_status,
+         { "Status", "wkssvc.wkssvc_NetrUseInfo2.status", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown12,
+         { "Unknown12", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown12", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain_account_ou,
+         { "Account Ou", "wkssvc.wkssvc_NetrJoinDomain.account_ou", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown3,
+         { "Unknown3", "wkssvc.wkssvc_NetrWorkstationStatisticsGet.unknown3", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown19,
+         { "Unknown19", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown19", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrAddAlternateComputerName_EncryptedPassword,
+         { "Encryptedpassword", "wkssvc.wkssvc_NetrAddAlternateComputerName.EncryptedPassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1058_buf_files_deny_write,
+         { "Buf Files Deny Write", "wkssvc.wkssvc_NetWkstaInfo1058.buf_files_deny_write", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain2_account,
+         { "Account", "wkssvc.wkssvc_NetrUnjoinDomain2.account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatisticsGet_unknown2,
+         { "Unknown2", "wkssvc.wkssvc_NetrWorkstationStatisticsGet.unknown2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1043,
+         { "Info1043", "wkssvc.wkssvc_NetWkstaInfo.info1043", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown21,
+         { "Unknown21", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown21", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaInfo102.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_encryption,
+         { "Use Encryption", "wkssvc.wkssvc_NetWkstaInfo502.use_encryption", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1059,
+         { "Info1059", "wkssvc.wkssvc_NetWkstaInfo.info1059", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName_name_type,
+         { "Name Type", "wkssvc.wkssvc_NetrValidateName.name_type", FT_UINT1632, BASE_DEC, VALS(wkssvc_wkssvc_NetValidateNameType_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrMessageBufferSend_message_buffer,
+         { "Message Buffer", "wkssvc.wkssvc_NetrMessageBufferSend.message_buffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportCtr0_count,
+         { "Count", "wkssvc.wkssvc_NetWkstaTransportCtr0.count", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnumInfo_level,
+         { "Level", "wkssvc.wkssvc_NetrUseEnumInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1041_lock_quota,
+         { "Lock Quota", "wkssvc.wkssvc_NetWkstaInfo1041.lock_quota", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseAdd_ctr,
+         { "Ctr", "wkssvc.wkssvc_NetrUseAdd.ctr", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseEnum_resume_handle,
+         { "Resume Handle", "wkssvc.wkssvc_NetrUseEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo100_version_major,
+         { "Version Major", "wkssvc.wkssvc_NetWkstaInfo100.version_major", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Reserved,
+         { "Reserved", "wkssvc.wkssvc_NetrRemoveAlternateComputerName.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseAdd_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrUseAdd.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown11,
+         { "Unknown11", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown11", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1012,
+         { "Info1012", "wkssvc.wkssvc_NetWkstaInfo.info1012", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain_password,
+         { "Password", "wkssvc.wkssvc_NetrUnjoinDomain.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain_password,
+         { "Password", "wkssvc.wkssvc_NetrJoinDomain.password", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_werror,
+         { "Windows Error", "wkssvc.werror", FT_UINT32, BASE_HEX, VALS(WERR_errors), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus2_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrGetJoinableOus2.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_pipe_increment,
+         { "Pipe Increment", "wkssvc.wkssvc_NetWkstaInfo502.pipe_increment", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1044,
+         { "Info1044", "wkssvc.wkssvc_NetWkstaInfo.info1044", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus2_EncryptedPassword,
+         { "Encryptedpassword", "wkssvc.wkssvc_NetrGetJoinableOus2.EncryptedPassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1010,
+         { "Info1010", "wkssvc.wkssvc_NetWkstaInfo.info1010", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1051_buf_named_pipes,
+         { "Buf Named Pipes", "wkssvc.wkssvc_NetWkstaInfo1051.buf_named_pipes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_read_ahead_throughput,
+         { "Read Ahead Throughput", "wkssvc.wkssvc_NetWkstaInfo502.read_ahead_throughput", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus_ous,
+         { "Ous", "wkssvc.wkssvc_NetrGetJoinableOus.ous", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown5,
+         { "Unknown5", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown5", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_NewMachineName,
+         { "Newmachinename", "wkssvc.wkssvc_NetrRenameMachineInDomain2.NewMachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportDel_transport_name,
+         { "Transport Name", "wkssvc.wkssvc_NetrWkstaTransportDel.transport_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo0_local,
+         { "Local", "wkssvc.wkssvc_NetrUseInfo0.local", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_raw_write,
+         { "Use Raw Write", "wkssvc.wkssvc_NetWkstaInfo502.use_raw_write", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus2_ous,
+         { "Ous", "wkssvc.wkssvc_NetrGetJoinableOus2.ous", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo101_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaInfo101.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinableOus2_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrGetJoinableOus2.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1059_buf_read_only_files,
+         { "Buf Read Only Files", "wkssvc.wkssvc_NetWkstaInfo1059.buf_read_only_files", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo100_version_minor,
+         { "Version Minor", "wkssvc.wkssvc_NetWkstaInfo100.version_minor", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE,
+         { "Wkssvc Join Flags Account Create", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_ACCOUNT_CREATE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_close_behind,
+         { "Use Close Behind", "wkssvc.wkssvc_NetWkstaInfo502.use_close_behind", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_opnum,
+         { "Operation", "wkssvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_force_core_create_mode,
+         { "Force Core Create Mode", "wkssvc.wkssvc_NetWkstaInfo502.force_core_create_mode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1011_collection_time,
+         { "Collection Time", "wkssvc.wkssvc_NetWkstaInfo1011.collection_time", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinInformation_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrGetJoinInformation.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo101_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetWkstaInfo101.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1061,
+         { "Info1061", "wkssvc.wkssvc_NetWkstaInfo.info1061", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseGetInfoCtr_info1,
+         { "Info1", "wkssvc.wkssvc_NetrUseGetInfoCtr.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersInfo_level,
+         { "Level", "wkssvc.wkssvc_NetWkstaEnumUsersInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrSetPrimaryComputername_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrSetPrimaryComputername.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain_unjoin_flags,
+         { "Unjoin Flags", "wkssvc.wkssvc_NetrUnjoinDomain.unjoin_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaTransportEnum_resume_handle,
+         { "Resume Handle", "wkssvc.wkssvc_NetWkstaTransportEnum.resume_handle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrJoinDomain.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_platform_id,
+         { "Platform Id", "wkssvc.wkssvc_NetWkstaInfo102.platform_id", FT_UINT32, BASE_DEC, VALS(wkssvc_srvsvc_PlatformId_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown8,
+         { "Unknown8", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown8", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrAddAlternateComputerName_Reserved,
+         { "Reserved", "wkssvc.wkssvc_NetrAddAlternateComputerName.Reserved", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME,
+         { "Wkssvc Join Flags Join With New Name", "wkssvc.wkssvc_joinflags.WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME", FT_BOOLEAN, 32, TFS(&wkssvc_joinflags_WKSSVC_JOIN_FLAGS_JOIN_WITH_NEW_NAME_tfs), ( 0x00000400 ), NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWkstaTransportAdd_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrWkstaTransportAdd.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetrRemoveAlternateComputerName.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo101_platform_id,
+         { "Platform Id", "wkssvc.wkssvc_NetWkstaInfo101.platform_id", FT_UINT32, BASE_DEC, VALS(wkssvc_srvsvc_PlatformId_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_opportunistic_locking,
+         { "Use Opportunistic Locking", "wkssvc.wkssvc_NetWkstaInfo502.use_opportunistic_locking", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo100_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaInfo100.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown28,
+         { "Unknown28", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown28", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsersCtr1_user1,
+         { "User1", "wkssvc.wkssvc_NetWkstaEnumUsersCtr1.user1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaGetInfo_server_name,
+         { "Server Name", "wkssvc.wkssvc_NetWkstaGetInfo.server_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1023,
+         { "Info1023", "wkssvc.wkssvc_NetWkstaInfo.info1023", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown15,
+         { "Unknown15", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown15", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_use_lock_read_unlock,
+         { "Use Lock Read Unlock", "wkssvc.wkssvc_NetWkstaInfo502.use_lock_read_unlock", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo1_asg_type,
+         { "Asg Type", "wkssvc.wkssvc_NetrUseInfo1.asg_type", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain2_unjoin_flags,
+         { "Unjoin Flags", "wkssvc.wkssvc_NetrUnjoinDomain2.unjoin_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown1,
+         { "Unknown1", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown1", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrLogonDomainNameAdd_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrLogonDomainNameAdd.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrWorkstationStatistics_unknown26,
+         { "Unknown26", "wkssvc.wkssvc_NetrWorkstationStatistics.unknown26", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_Account,
+         { "Account", "wkssvc.wkssvc_NetrRenameMachineInDomain2.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaEnumUsers_info,
+         { "Info", "wkssvc.wkssvc_NetWkstaEnumUsers.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrGetJoinInformation_name_type,
+         { "Name Type", "wkssvc.wkssvc_NetrGetJoinInformation.name_type", FT_UINT1632, BASE_DEC, VALS(wkssvc_wkssvc_NetJoinStatus_vals), 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrAddAlternateComputerName_NewAlternateMachineName,
+         { "Newalternatemachinename", "wkssvc.wkssvc_NetrAddAlternateComputerName.NewAlternateMachineName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUnjoinDomain2_encrypted_password,
+         { "Encrypted Password", "wkssvc.wkssvc_NetrUnjoinDomain2.encrypted_password", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_pipe_maximum,
+         { "Pipe Maximum", "wkssvc.wkssvc_NetWkstaInfo502.pipe_maximum", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo502_char_wait,
+         { "Char Wait", "wkssvc.wkssvc_NetWkstaInfo502.char_wait", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1027,
+         { "Info1027", "wkssvc.wkssvc_NetWkstaInfo.info1027", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo1052_use_lock_read_unlock,
+         { "Use Lock Read Unlock", "wkssvc.wkssvc_NetWkstaInfo1052.use_lock_read_unlock", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1056,
+         { "Info1056", "wkssvc.wkssvc_NetWkstaInfo.info1056", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrValidateName_Account,
+         { "Account", "wkssvc.wkssvc_NetrValidateName.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1032,
+         { "Info1032", "wkssvc.wkssvc_NetWkstaInfo.info1032", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRemoveAlternateComputerName_Account,
+         { "Account", "wkssvc.wkssvc_NetrRemoveAlternateComputerName.Account", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo_info1053,
+         { "Info1053", "wkssvc.wkssvc_NetWkstaInfo.info1053", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrRenameMachineInDomain2_EncryptedPassword,
+         { "Encryptedpassword", "wkssvc.wkssvc_NetrRenameMachineInDomain2.EncryptedPassword", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaSetInfo_level,
+         { "Level", "wkssvc.wkssvc_NetWkstaSetInfo.level", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrJoinDomain_domain_name,
+         { "Domain Name", "wkssvc.wkssvc_NetrJoinDomain.domain_name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetWkstaInfo102_logged_on_users,
+         { "Logged On Users", "wkssvc.wkssvc_NetWkstaInfo102.logged_on_users", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_wkssvc_wkssvc_NetrUseInfo2_remote,
+         { "Remote", "wkssvc.wkssvc_NetrUseInfo2.remote", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_wkssvc,
+               &ett_wkssvc_wkssvc_NetWkstaInfo100,
+               &ett_wkssvc_wkssvc_NetWkstaInfo101,
+               &ett_wkssvc_wkssvc_NetWkstaInfo102,
+               &ett_wkssvc_wkssvc_NetWkstaInfo502,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1010,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1011,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1012,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1013,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1018,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1023,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1027,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1028,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1032,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1033,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1041,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1042,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1043,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1044,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1045,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1046,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1047,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1048,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1049,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1050,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1051,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1052,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1053,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1054,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1055,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1056,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1057,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1058,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1059,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1060,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1061,
+               &ett_wkssvc_wkssvc_NetWkstaInfo1062,
+               &ett_wkssvc_wkssvc_NetWkstaInfo,
+               &ett_wkssvc_wkssvc_NetrWkstaUserInfo0,
+               &ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr0,
+               &ett_wkssvc_wkssvc_NetrWkstaUserInfo1,
+               &ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr1,
+               &ett_wkssvc_wkssvc_NetWkstaEnumUsersCtr,
+               &ett_wkssvc_wkssvc_NetWkstaEnumUsersInfo,
+               &ett_wkssvc_wkssvc_NetrWkstaUserInfo1101,
+               &ett_wkssvc_wkssvc_NetrWkstaUserInfo,
+               &ett_wkssvc_wkssvc_NetWkstaTransportInfo0,
+               &ett_wkssvc_wkssvc_NetWkstaTransportCtr0,
+               &ett_wkssvc_wkssvc_NetWkstaTransportCtr,
+               &ett_wkssvc_wkssvc_NetWkstaTransportInfo,
+               &ett_wkssvc_wkssvc_NetrUseInfo3,
+               &ett_wkssvc_wkssvc_NetrUseInfo2,
+               &ett_wkssvc_wkssvc_NetrUseInfo1,
+               &ett_wkssvc_wkssvc_NetrUseInfo0,
+               &ett_wkssvc_wkssvc_NetrUseGetInfoCtr,
+               &ett_wkssvc_wkssvc_NetrUseEnumCtr2,
+               &ett_wkssvc_wkssvc_NetrUseEnumCtr1,
+               &ett_wkssvc_wkssvc_NetrUseEnumCtr0,
+               &ett_wkssvc_wkssvc_NetrUseEnumCtr,
+               &ett_wkssvc_wkssvc_NetrUseEnumInfo,
+               &ett_wkssvc_wkssvc_NetrWorkstationStatistics,
+               &ett_wkssvc_wkssvc_renameflags,
+               &ett_wkssvc_wkssvc_PasswordBuffer,
+               &ett_wkssvc_wkssvc_joinflags,
+               &ett_wkssvc_wkssvc_ComputerNamesCtr,
+       };
+
+       proto_dcerpc_wkssvc = proto_register_protocol("Workstation Service", "WKSSVC", "wkssvc");
+       proto_register_field_array(proto_dcerpc_wkssvc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_wkssvc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_wkssvc, ett_dcerpc_wkssvc,
+               &uuid_dcerpc_wkssvc, ver_dcerpc_wkssvc,
+               wkssvc_dissectors, hf_wkssvc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-wkssvc.h
new file mode 100644 (file)
index 0000000..fc0211c
--- /dev/null
@@ -0,0 +1,102 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wkssvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wkssvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-srvsvc.h"
+#include "packet-dcerpc-lsa.h"
+
+#ifndef __PACKET_DCERPC_WKSSVC_H
+#define __PACKET_DCERPC_WKSSVC_H
+
+extern const value_string wkssvc_srvsvc_PlatformId_vals[];
+int wkssvc_dissect_enum_srvsvc_PlatformId(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo100(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo102(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo502(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1010(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1011(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1012(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1013(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1018(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1023(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1027(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1028(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1032(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1033(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1041(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1042(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1043(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1044(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1045(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1046(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1047(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1048(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1049(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1050(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1051(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1052(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1053(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1054(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1055(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1056(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1057(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1058(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1059(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1060(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1061(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaInfo1062(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrWkstaUserInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaEnumUsersCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrWkstaUserInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaEnumUsersCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaEnumUsersInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrWkstaUserInfo1101(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaTransportInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaTransportCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetWkstaTransportInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseInfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseInfo0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseEnumCtr2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseEnumCtr1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseEnumCtr0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrUseEnumInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_struct_NetrWorkstationStatistics(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_bitmap_renameflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NetSetupUnknown (0)
+#define NetSetupMachine (1)
+#define NetSetupWorkgroup (2)
+#define NetSetupDomain (3)
+#define NetSetupNonExistentDomain (4)
+#define NetSetupDnsMachine (5)
+extern const value_string wkssvc_wkssvc_NetValidateNameType_vals[];
+int wkssvc_dissect_enum_NetValidateNameType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+#define NET_SETUP_UNKNOWN_STATUS (0)
+#define NET_SETUP_UNJOINED (1)
+#define NET_SETUP_WORKGROUP_NAME (2)
+#define NET_SETUP_DOMAIN_NAME (3)
+extern const value_string wkssvc_wkssvc_NetJoinStatus_vals[];
+int wkssvc_dissect_enum_NetJoinStatus(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int wkssvc_dissect_struct_PasswordBuffer(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int wkssvc_dissect_bitmap_joinflags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#define NetPrimaryComputerName (0)
+#define NetAlternateComputerNames (1)
+#define NetAllComputerNames (2)
+#define NetComputerNameTypeMax (3)
+extern const value_string wkssvc_wkssvc_ComputerNameType_vals[];
+int wkssvc_dissect_enum_ComputerNameType(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_);
+int wkssvc_dissect_struct_ComputerNamesCtr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_WKSSVC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-wzcsvc.c b/bin/default/librpc/gen_ndr/packet-dcerpc-wzcsvc.c
new file mode 100644 (file)
index 0000000..02338cb
--- /dev/null
@@ -0,0 +1,436 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wzcsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wzcsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-wzcsvc.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_wzcsvc = -1;
+
+
+/* Header field declarations */
+static gint hf_wzcsvc_opnum = -1;
+
+static gint proto_dcerpc_wzcsvc = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_wzcsvc = {
+       0x621dff68, 0x3c39, 0x4c6c,
+       { 0xaa, 0xe3, 0xe6, 0x8e, 0x2c, 0x65, 0x03, 0xad }
+};
+static guint16 ver_dcerpc_wzcsvc = 1;
+
+
+/* IDL: void wzcsvc_EnumInterfaces( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EnumInterfaces_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumInterfaces";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EnumInterfaces_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumInterfaces";
+       return offset;
+}
+
+/* IDL: void wzcsvc_QueryInterface( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_QueryInterface_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryInterface";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_QueryInterface_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryInterface";
+       return offset;
+}
+
+/* IDL: void wzcsvc_SetInterface( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_SetInterface_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetInterface";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_SetInterface_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetInterface";
+       return offset;
+}
+
+/* IDL: void wzcsvc_RefreshInterface( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_RefreshInterface_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RefreshInterface";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_RefreshInterface_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="RefreshInterface";
+       return offset;
+}
+
+/* IDL: void wzcsvc_QueryContext( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_QueryContext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryContext";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_QueryContext_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="QueryContext";
+       return offset;
+}
+
+/* IDL: void wzcsvc_SetContext( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_SetContext_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetContext";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_SetContext_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="SetContext";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolUIResponse( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolUIResponse_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolUIResponse";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolUIResponse_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolUIResponse";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolGetCustomAuthData( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolGetCustomAuthData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolGetCustomAuthData";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolGetCustomAuthData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolGetCustomAuthData";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolSetCustomAuthData( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolSetCustomAuthData_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolSetCustomAuthData";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolSetCustomAuthData_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolSetCustomAuthData";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolGetInterfaceParams( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolGetInterfaceParams_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolGetInterfaceParams";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolGetInterfaceParams_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolGetInterfaceParams";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolSetInterfaceParams( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolSetInterfaceParams_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolSetInterfaceParams";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolSetInterfaceParams_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolSetInterfaceParams";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolReAuthenticateInterface( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolReAuthenticateInterface_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolReAuthenticateInterface";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolReAuthenticateInterface_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolReAuthenticateInterface";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EapolQueryInterfaceState( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EapolQueryInterfaceState_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolQueryInterfaceState";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EapolQueryInterfaceState_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EapolQueryInterfaceState";
+       return offset;
+}
+
+/* IDL: void wzcsvc_OpenWZCDbLogSession( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_OpenWZCDbLogSession_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenWZCDbLogSession";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_OpenWZCDbLogSession_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="OpenWZCDbLogSession";
+       return offset;
+}
+
+/* IDL: void wzcsvc_CloseWZCDbLogSession( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_CloseWZCDbLogSession_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CloseWZCDbLogSession";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_CloseWZCDbLogSession_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="CloseWZCDbLogSession";
+       return offset;
+}
+
+/* IDL: void wzcsvc_EnumWZCDbLogRecords( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_EnumWZCDbLogRecords_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumWZCDbLogRecords";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_EnumWZCDbLogRecords_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="EnumWZCDbLogRecords";
+       return offset;
+}
+
+/* IDL: void wzcsvc_FlushWZCdbLog( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_FlushWZCdbLog_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FlushWZCdbLog";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_FlushWZCdbLog_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="FlushWZCdbLog";
+       return offset;
+}
+
+/* IDL: void wzcsvc_GetWZCDbLogRecord( */
+/* IDL:  */
+/* IDL: ); */
+
+static int
+wzcsvc_dissect_GetWZCDbLogRecord_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetWZCDbLogRecord";
+       return offset;
+}
+
+static int
+wzcsvc_dissect_GetWZCDbLogRecord_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="GetWZCDbLogRecord";
+       return offset;
+}
+
+
+static dcerpc_sub_dissector wzcsvc_dissectors[] = {
+       { 0, "EnumInterfaces",
+          wzcsvc_dissect_EnumInterfaces_request, wzcsvc_dissect_EnumInterfaces_response},
+       { 1, "QueryInterface",
+          wzcsvc_dissect_QueryInterface_request, wzcsvc_dissect_QueryInterface_response},
+       { 2, "SetInterface",
+          wzcsvc_dissect_SetInterface_request, wzcsvc_dissect_SetInterface_response},
+       { 3, "RefreshInterface",
+          wzcsvc_dissect_RefreshInterface_request, wzcsvc_dissect_RefreshInterface_response},
+       { 4, "QueryContext",
+          wzcsvc_dissect_QueryContext_request, wzcsvc_dissect_QueryContext_response},
+       { 5, "SetContext",
+          wzcsvc_dissect_SetContext_request, wzcsvc_dissect_SetContext_response},
+       { 6, "EapolUIResponse",
+          wzcsvc_dissect_EapolUIResponse_request, wzcsvc_dissect_EapolUIResponse_response},
+       { 7, "EapolGetCustomAuthData",
+          wzcsvc_dissect_EapolGetCustomAuthData_request, wzcsvc_dissect_EapolGetCustomAuthData_response},
+       { 8, "EapolSetCustomAuthData",
+          wzcsvc_dissect_EapolSetCustomAuthData_request, wzcsvc_dissect_EapolSetCustomAuthData_response},
+       { 9, "EapolGetInterfaceParams",
+          wzcsvc_dissect_EapolGetInterfaceParams_request, wzcsvc_dissect_EapolGetInterfaceParams_response},
+       { 10, "EapolSetInterfaceParams",
+          wzcsvc_dissect_EapolSetInterfaceParams_request, wzcsvc_dissect_EapolSetInterfaceParams_response},
+       { 11, "EapolReAuthenticateInterface",
+          wzcsvc_dissect_EapolReAuthenticateInterface_request, wzcsvc_dissect_EapolReAuthenticateInterface_response},
+       { 12, "EapolQueryInterfaceState",
+          wzcsvc_dissect_EapolQueryInterfaceState_request, wzcsvc_dissect_EapolQueryInterfaceState_response},
+       { 13, "OpenWZCDbLogSession",
+          wzcsvc_dissect_OpenWZCDbLogSession_request, wzcsvc_dissect_OpenWZCDbLogSession_response},
+       { 14, "CloseWZCDbLogSession",
+          wzcsvc_dissect_CloseWZCDbLogSession_request, wzcsvc_dissect_CloseWZCDbLogSession_response},
+       { 15, "EnumWZCDbLogRecords",
+          wzcsvc_dissect_EnumWZCDbLogRecords_request, wzcsvc_dissect_EnumWZCDbLogRecords_response},
+       { 16, "FlushWZCdbLog",
+          wzcsvc_dissect_FlushWZCdbLog_request, wzcsvc_dissect_FlushWZCdbLog_response},
+       { 17, "GetWZCDbLogRecord",
+          wzcsvc_dissect_GetWZCDbLogRecord_request, wzcsvc_dissect_GetWZCDbLogRecord_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_wzcsvc(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_wzcsvc_opnum,
+         { "Operation", "wzcsvc.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_wzcsvc,
+       };
+
+       proto_dcerpc_wzcsvc = proto_register_protocol("Wireless Configuration Service", "WZCSVC", "wzcsvc");
+       proto_register_field_array(proto_dcerpc_wzcsvc, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_wzcsvc(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_wzcsvc, ett_dcerpc_wzcsvc,
+               &uuid_dcerpc_wzcsvc, ver_dcerpc_wzcsvc,
+               wzcsvc_dissectors, hf_wzcsvc_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-wzcsvc.h b/bin/default/librpc/gen_ndr/packet-dcerpc-wzcsvc.h
new file mode 100644 (file)
index 0000000..3785e40
--- /dev/null
@@ -0,0 +1,19 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wzcsvc.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/wzcsvc.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#ifndef __PACKET_DCERPC_WZCSVC_H
+#define __PACKET_DCERPC_WZCSVC_H
+
+#endif /* __PACKET_DCERPC_WZCSVC_H */
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-xattr.c b/bin/default/librpc/gen_ndr/packet-dcerpc-xattr.c
new file mode 100644 (file)
index 0000000..1271477
--- /dev/null
@@ -0,0 +1,1986 @@
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/xattr.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/xattr.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-xattr.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_xattr = -1;
+static gint ett_xattr_xattr_DosInfoFFFFCompat = -1;
+static gint ett_xattr_xattr_DosInfo1 = -1;
+static gint ett_xattr_xattr_DosInfo2Old = -1;
+static gint ett_xattr_xattr_DosInfoValidFlags = -1;
+static gint ett_xattr_xattr_DosInfo3 = -1;
+static gint ett_xattr_xattr_DosInfo = -1;
+static gint ett_xattr_xattr_DosAttrib = -1;
+static gint ett_xattr_xattr_DOSATTRIB = -1;
+static gint ett_xattr_xattr_EA = -1;
+static gint ett_xattr_xattr_DosEAs = -1;
+static gint ett_xattr_tdb_xattrs = -1;
+static gint ett_xattr_xattr_DosStream = -1;
+static gint ett_xattr_xattr_DosStreams = -1;
+static gint ett_xattr_security_descriptor_hash_v2 = -1;
+static gint ett_xattr_security_descriptor_hash_v3 = -1;
+static gint ett_xattr_security_descriptor_hash_v4 = -1;
+static gint ett_xattr_xattr_NTACL_Info = -1;
+static gint ett_xattr_xattr_NTACL = -1;
+static gint ett_xattr_xattr_sys_acl_hash_wrapper = -1;
+
+
+/* Header field declarations */
+static gint hf_xattr_security_descriptor_hash_v4_sd = -1;
+static gint hf_xattr_security_descriptor_hash_v3_hash = -1;
+static gint hf_xattr_xattr_DOSATTRIB_info = -1;
+static gint hf_xattr_xattr_NTACL_Info_sd = -1;
+static gint hf_xattr_xattr_NTACL_Info_sd_hs3 = -1;
+static gint hf_xattr_xattr_DosInfo2Old_alloc_size = -1;
+static gint hf_xattr_xattr_DosInfo3_change_time = -1;
+static gint hf_xattr_xattr_DosInfo1_create_time = -1;
+static gint hf_xattr_xattr_DosInfo1_size = -1;
+static gint hf_xattr_xattr_DosInfo2Old_create_time = -1;
+static gint hf_xattr_xattr_DosInfo2Old_ea_size = -1;
+static gint hf_xattr_security_descriptor_hash_v4_hash = -1;
+static gint hf_xattr_xattr_DosInfo2Old_size = -1;
+static gint hf_xattr_xattr_DosInfo2Old_name = -1;
+static gint hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_SIZE = -1;
+static gint hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_CREATE_TIME = -1;
+static gint hf_xattr_xattr_sys_acl_hash_wrapper_owner = -1;
+static gint hf_xattr_xattr_DosInfo3_create_time = -1;
+static gint hf_xattr_xattr_DosStreams_num_streams = -1;
+static gint hf_xattr_xattr_DosStream_flags = -1;
+static gint hf_xattr_xattr_DosInfo1_change_time = -1;
+static gint hf_xattr_xattr_DosAttrib_info = -1;
+static gint hf_xattr_xattr_DosInfoFFFFCompat_attrib = -1;
+static gint hf_xattr_xattr_DosInfo_compatinfoFFFF = -1;
+static gint hf_xattr_xattr_DosAttrib_version = -1;
+static gint hf_xattr_xattr_DosStreams_streams = -1;
+static gint hf_xattr_xattr_DosInfo3_alloc_size = -1;
+static gint hf_xattr_xattr_sys_acl_hash_wrapper_acl_as_blob = -1;
+static gint hf_xattr_xattr_DosEAs_num_eas = -1;
+static gint hf_xattr_security_descriptor_hash_v4_sys_acl_hash = -1;
+static gint hf_xattr_opnum = -1;
+static gint hf_xattr_xattr_DosInfo2Old_attrib = -1;
+static gint hf_xattr_xattr_DosInfo1_alloc_size = -1;
+static gint hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_CHANGE_TIME = -1;
+static gint hf_xattr_tdb_xattrs_num_eas = -1;
+static gint hf_xattr_xattr_NTACL_Info_sd_hs2 = -1;
+static gint hf_xattr_xattr_DosInfo_info1 = -1;
+static gint hf_xattr_xattr_parse_DOSATTRIB_x = -1;
+static gint hf_xattr_xattr_DosInfo2Old_change_time = -1;
+static gint hf_xattr_xattr_NTACL_Info_sd_hs4 = -1;
+static gint hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_EA_SIZE = -1;
+static gint hf_xattr_security_descriptor_hash_v3_sd = -1;
+static gint hf_xattr_xattr_DosInfo1_attrib = -1;
+static gint hf_xattr_xattr_sys_acl_hash_wrapper_group = -1;
+static gint hf_xattr_security_descriptor_hash_v2_sd = -1;
+static gint hf_xattr_xattr_EA_value = -1;
+static gint hf_xattr_xattr_DosStream_size = -1;
+static gint hf_xattr_xattr_DOSATTRIB_version = -1;
+static gint hf_xattr_security_descriptor_hash_v4_time = -1;
+static gint hf_xattr_xattr_sys_acl_hash_wrapper_mode = -1;
+static gint hf_xattr_security_descriptor_hash_v4_description = -1;
+static gint hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_ATTRIB = -1;
+static gint hf_xattr_xattr_DosEAs_eas = -1;
+static gint hf_xattr_security_descriptor_hash_v3_hash_type = -1;
+static gint hf_xattr_xattr_DosInfo3_attrib = -1;
+static gint hf_xattr_xattr_DosInfo3_valid_flags = -1;
+static gint hf_xattr_xattr_DosInfo1_ea_size = -1;
+static gint hf_xattr_xattr_DosInfo_info3 = -1;
+static gint hf_xattr_security_descriptor_hash_v4_hash_type = -1;
+static gint hf_xattr_xattr_DosStream_alloc_size = -1;
+static gint hf_xattr_xattr_DOSATTRIB_attrib_hex = -1;
+static gint hf_xattr_xattr_EA_name = -1;
+static gint hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_ALLOC_SIZE = -1;
+static gint hf_xattr_xattr_DosInfo2Old_flags = -1;
+static gint hf_xattr_xattr_DosInfo_oldinfo2 = -1;
+static gint hf_xattr_xattr_DosStream_name = -1;
+static gint hf_xattr_xattr_NTACL_info = -1;
+static gint hf_xattr_xattr_DosInfo3_size = -1;
+static gint hf_xattr_security_descriptor_hash_v2_hash = -1;
+static gint hf_xattr_xattr_NTACL_version = -1;
+static gint hf_xattr_xattr_DosInfo3_ea_size = -1;
+static gint hf_xattr_tdb_xattrs_eas = -1;
+static gint hf_xattr_xattr_DosInfo2Old_write_time = -1;
+
+static gint proto_dcerpc_xattr = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_xattr = {
+       0x12345778, 0x1234, 0xabcd,
+       { 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x", 0x }
+};
+static guint16 ver_dcerpc_xattr = 0;
+
+static int xattr_dissect_element_DosInfoFFFFCompat_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo1_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo1_ea_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo1_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo1_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo1_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_ea_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_write_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo2Old_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static const true_false_string xattr_DosInfoValidFlags_XATTR_DOSINFO_ATTRIB_tfs = {
+   "XATTR_DOSINFO_ATTRIB is SET",
+   "XATTR_DOSINFO_ATTRIB is NOT SET",
+};
+static const true_false_string xattr_DosInfoValidFlags_XATTR_DOSINFO_EA_SIZE_tfs = {
+   "XATTR_DOSINFO_EA_SIZE is SET",
+   "XATTR_DOSINFO_EA_SIZE is NOT SET",
+};
+static const true_false_string xattr_DosInfoValidFlags_XATTR_DOSINFO_SIZE_tfs = {
+   "XATTR_DOSINFO_SIZE is SET",
+   "XATTR_DOSINFO_SIZE is NOT SET",
+};
+static const true_false_string xattr_DosInfoValidFlags_XATTR_DOSINFO_ALLOC_SIZE_tfs = {
+   "XATTR_DOSINFO_ALLOC_SIZE is SET",
+   "XATTR_DOSINFO_ALLOC_SIZE is NOT SET",
+};
+static const true_false_string xattr_DosInfoValidFlags_XATTR_DOSINFO_CREATE_TIME_tfs = {
+   "XATTR_DOSINFO_CREATE_TIME is SET",
+   "XATTR_DOSINFO_CREATE_TIME is NOT SET",
+};
+static const true_false_string xattr_DosInfoValidFlags_XATTR_DOSINFO_CHANGE_TIME_tfs = {
+   "XATTR_DOSINFO_CHANGE_TIME is SET",
+   "XATTR_DOSINFO_CHANGE_TIME is NOT SET",
+};
+static int xattr_dissect_element_DosInfo3_valid_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo3_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo3_ea_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo3_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo3_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo3_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo_compatinfoFFFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo_oldinfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosAttrib_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int xattr_dissect_element_DosAttrib_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int xattr_dissect_element_DOSATTRIB_attrib_hex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DOSATTRIB_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int xattr_dissect_element_DOSATTRIB_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int xattr_dissect_element_EA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_EA_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosEAs_num_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosEAs_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosEAs_eas_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosEAs_eas__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_tdb_xattrs_num_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_tdb_xattrs_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_tdb_xattrs_eas_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStream_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStream_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStream_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStream_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStreams_num_streams(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStreams_streams(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStreams_streams_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_DosStreams_streams__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v2_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v2_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v3_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v3_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v3_hash_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_hash_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_hs2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_hs2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_hs3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_hs3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_hs4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_Info_sd_hs4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_NTACL_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int xattr_dissect_element_NTACL_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version);
+static int xattr_dissect_element_sys_acl_hash_wrapper_acl_as_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_sys_acl_hash_wrapper_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_sys_acl_hash_wrapper_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_sys_acl_hash_wrapper_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int xattr_dissect_element_parse_DOSATTRIB_x(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL:        uint32 attrib; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosInfoFFFFCompat_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfoFFFFCompat_attrib, 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosInfoFFFFCompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosInfoFFFFCompat);
+       }
+       
+       offset = xattr_dissect_element_DosInfoFFFFCompat_attrib(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 attrib; */
+/* IDL:        uint32 ea_size; */
+/* IDL:        udlong size; */
+/* IDL:        udlong alloc_size; */
+/* IDL:        NTTIME create_time; */
+/* IDL:        NTTIME change_time; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosInfo1_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo1_attrib, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo1_ea_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo1_ea_size, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo1_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo1_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo1_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo1_alloc_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo1_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo1_create_time);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo1_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo1_change_time);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosInfo1);
+       }
+       
+       offset = xattr_dissect_element_DosInfo1_attrib(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo1_ea_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo1_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo1_alloc_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo1_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo1_change_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        uint32 attrib; */
+/* IDL:        uint32 ea_size; */
+/* IDL:        udlong size; */
+/* IDL:        udlong alloc_size; */
+/* IDL:        NTTIME create_time; */
+/* IDL:        NTTIME change_time; */
+/* IDL:        NTTIME write_time; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string name; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosInfo2Old_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_flags, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_attrib, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_ea_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_ea_size, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_alloc_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_create_time);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_change_time);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_write_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_write_time);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo2Old_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo2Old_name , 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosInfo2Old(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosInfo2Old);
+       }
+       
+       offset = xattr_dissect_element_DosInfo2Old_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_attrib(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_ea_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_alloc_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_change_time(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_write_time(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo2Old_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: bitmap { */
+/* IDL:        XATTR_DOSINFO_ATTRIB =  0x00000001 , */
+/* IDL:        XATTR_DOSINFO_EA_SIZE =  0x00000002 , */
+/* IDL:        XATTR_DOSINFO_SIZE =  0x00000004 , */
+/* IDL:        XATTR_DOSINFO_ALLOC_SIZE =  0x00000008 , */
+/* IDL:        XATTR_DOSINFO_CREATE_TIME =  0x00000010 , */
+/* IDL:        XATTR_DOSINFO_CHANGE_TIME =  0x00000020 , */
+/* IDL: } */
+
+int
+xattr_dissect_bitmap_DosInfoValidFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+
+       guint32 flags;
+       ALIGN_TO_4_BYTES;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 4, DREP_ENC_INTEGER(drep));
+               tree = proto_item_add_subtree(item,ett_xattr_xattr_DosInfoValidFlags);
+       }
+
+       offset = dissect_ndr_uint32(tvb, offset, pinfo, NULL, drep, -1, &flags);
+       proto_item_append_text(item, ": ");
+
+       if (!flags)
+               proto_item_append_text(item, "(No values set)");
+
+       proto_tree_add_boolean(tree, hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_ATTRIB, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000001 )){
+               proto_item_append_text(item, "XATTR_DOSINFO_ATTRIB");
+               if (flags & (~( 0x00000001 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000001 ));
+
+       proto_tree_add_boolean(tree, hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_EA_SIZE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000002 )){
+               proto_item_append_text(item, "XATTR_DOSINFO_EA_SIZE");
+               if (flags & (~( 0x00000002 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000002 ));
+
+       proto_tree_add_boolean(tree, hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_SIZE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000004 )){
+               proto_item_append_text(item, "XATTR_DOSINFO_SIZE");
+               if (flags & (~( 0x00000004 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000004 ));
+
+       proto_tree_add_boolean(tree, hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_ALLOC_SIZE, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000008 )){
+               proto_item_append_text(item, "XATTR_DOSINFO_ALLOC_SIZE");
+               if (flags & (~( 0x00000008 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000008 ));
+
+       proto_tree_add_boolean(tree, hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_CREATE_TIME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000010 )){
+               proto_item_append_text(item, "XATTR_DOSINFO_CREATE_TIME");
+               if (flags & (~( 0x00000010 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000010 ));
+
+       proto_tree_add_boolean(tree, hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_CHANGE_TIME, tvb, offset-4, 4, flags);
+       if (flags&( 0x00000020 )){
+               proto_item_append_text(item, "XATTR_DOSINFO_CHANGE_TIME");
+               if (flags & (~( 0x00000020 )))
+                       proto_item_append_text(item, ", ");
+       }
+       flags&=(~( 0x00000020 ));
+
+       if (flags) {
+               proto_item_append_text(item, "Unknown bitmap value 0x%x", flags);
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        xattr_DosInfoValidFlags valid_flags; */
+/* IDL:        uint32 attrib; */
+/* IDL:        uint32 ea_size; */
+/* IDL:        udlong size; */
+/* IDL:        udlong alloc_size; */
+/* IDL:        NTTIME create_time; */
+/* IDL:        NTTIME change_time; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosInfo3_valid_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_bitmap_DosInfoValidFlags(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_valid_flags, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo3_attrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_attrib, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo3_ea_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_ea_size, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo3_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo3_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_alloc_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo3_create_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_create_time);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo3_change_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosInfo3_change_time);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosInfo3);
+       }
+       
+       offset = xattr_dissect_element_DosInfo3_valid_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo3_attrib(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo3_ea_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo3_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo3_alloc_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo3_create_time(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosInfo3_change_time(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [public(1)] [switch_type(uint16)] union { */
+/* IDL: [case(0xFFFF)] [case(0xFFFF)] xattr_DosInfoFFFFCompat compatinfoFFFF; */
+/* IDL: [case(1)] [case(1)] xattr_DosInfo1 info1; */
+/* IDL: [case(2)] [case(2)] xattr_DosInfo2Old oldinfo2; */
+/* IDL: [case(3)] [case(3)] xattr_DosInfo3 info3; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosInfo_compatinfoFFFF(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_DosInfoFFFFCompat(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_DosInfo_compatinfoFFFF,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo_info1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_DosInfo1(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_DosInfo_info1,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo_oldinfo2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_DosInfo2Old(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_DosInfo_oldinfo2,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosInfo_info3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_DosInfo3(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_DosInfo_info3,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_DosInfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "xattr_DosInfo");
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosInfo);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_4_BYTES;
+
+       switch(level) {
+               case 0xFFFF:
+                       offset = xattr_dissect_element_DosInfo_compatinfoFFFF(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 1:
+                       offset = xattr_dissect_element_DosInfo_info1(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = xattr_dissect_element_DosInfo_oldinfo2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = xattr_dissect_element_DosInfo_info3(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 version; */
+/* IDL:        [switch_is(version)] xattr_DosInfo info; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosAttrib_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosAttrib_version, version);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosAttrib_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = xattr_dissect_DosInfo(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosAttrib_info, *version);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosAttrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosAttrib);
+       }
+       
+       offset = xattr_dissect_element_DosAttrib_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = xattr_dissect_element_DosAttrib_info(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] string attrib_hex; */
+/* IDL:        uint16 version; */
+/* IDL:        [switch_is(version)] xattr_DosInfo info; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DOSATTRIB_attrib_hex(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_string(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DOSATTRIB_attrib_hex , 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DOSATTRIB_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DOSATTRIB_version, version);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DOSATTRIB_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = xattr_dissect_DosInfo(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DOSATTRIB_info, *version);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DOSATTRIB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DOSATTRIB);
+       }
+       
+       offset = xattr_dissect_element_DOSATTRIB_attrib_hex(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DOSATTRIB_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = xattr_dissect_element_DOSATTRIB_info(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string name; */
+/* IDL:        DATA_BLOB value; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_EA_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_EA_name , 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_EA_value(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_EA_value, 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_EA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_EA);
+       }
+       
+       offset = xattr_dissect_element_EA_name(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_EA_value(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint16 num_eas; */
+/* IDL:        [unique(1)] [size_is(num_eas)] xattr_EA *eas; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosEAs_num_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosEAs_num_eas, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosEAs_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_DosEAs_eas_, NDR_POINTER_UNIQUE, "Pointer to Eas (xattr_EA)",hf_xattr_xattr_DosEAs_eas);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosEAs_eas_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, xattr_dissect_element_DosEAs_eas__);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosEAs_eas__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_EA(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_DosEAs_eas,0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosEAs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosEAs);
+       }
+       
+       offset = xattr_dissect_element_DosEAs_num_eas(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosEAs_eas(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_eas; */
+/* IDL:        xattr_EA eas[num_eas]; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_tdb_xattrs_num_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_tdb_xattrs_num_eas, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_tdb_xattrs_eas(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_tdb_xattrs_eas_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_EA(tvb,offset,pinfo,tree,drep,hf_xattr_tdb_xattrs_eas,0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_tdb_xattrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_tdb_xattrs);
+       }
+       
+       offset = xattr_dissect_element_tdb_xattrs_num_eas(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_tdb_xattrs_eas(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 flags; */
+/* IDL:        udlong size; */
+/* IDL:        udlong alloc_size; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string name; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosStream_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosStream_flags, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosStream_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosStream_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosStream_alloc_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_duint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosStream_alloc_size, NULL);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosStream_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosStream_name , 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_4_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosStream);
+       }
+       
+       offset = xattr_dissect_element_DosStream_flags(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosStream_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosStream_alloc_size(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosStream_name(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_4_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        uint32 num_streams; */
+/* IDL:        [unique(1)] [size_is(num_streams)] xattr_DosStream *streams; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_DosStreams_num_streams(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_DosStreams_num_streams, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosStreams_streams(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_DosStreams_streams_, NDR_POINTER_UNIQUE, "Pointer to Streams (xattr_DosStream)",hf_xattr_xattr_DosStreams_streams);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosStreams_streams_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, xattr_dissect_element_DosStreams_streams__);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_DosStreams_streams__(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_DosStream(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_DosStreams_streams,0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_DosStreams(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_DosStreams);
+       }
+       
+       offset = xattr_dissect_element_DosStreams_num_streams(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_DosStreams_streams(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] security_descriptor *sd; */
+/* IDL:        uint8 hash[16]; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_security_descriptor_hash_v2_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_security_descriptor_hash_v2_sd_, NDR_POINTER_UNIQUE, "Pointer to Sd (security_descriptor)",hf_xattr_security_descriptor_hash_v2_sd);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v2_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor(tvb,offset,pinfo,tree,drep,hf_xattr_security_descriptor_hash_v2_sd,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v2_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 16; i++)
+               offset = xattr_dissect_element_security_descriptor_hash_v2_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v2_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v2_hash, 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_security_descriptor_hash_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_security_descriptor_hash_v2);
+       }
+       
+       offset = xattr_dissect_element_security_descriptor_hash_v2_sd(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v2_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] security_descriptor *sd; */
+/* IDL:        uint16 hash_type; */
+/* IDL:        uint8 hash[64]; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_security_descriptor_hash_v3_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_security_descriptor_hash_v3_sd_, NDR_POINTER_UNIQUE, "Pointer to Sd (security_descriptor)",hf_xattr_security_descriptor_hash_v3_sd);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v3_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor(tvb,offset,pinfo,tree,drep,hf_xattr_security_descriptor_hash_v3_sd,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v3_hash_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v3_hash_type, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v3_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = xattr_dissect_element_security_descriptor_hash_v3_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v3_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v3_hash, 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_security_descriptor_hash_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_security_descriptor_hash_v3);
+       }
+       
+       offset = xattr_dissect_element_security_descriptor_hash_v3_sd(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v3_hash_type(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v3_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        [unique(1)] security_descriptor *sd; */
+/* IDL:        uint16 hash_type; */
+/* IDL:        uint8 hash[64]; */
+/* IDL:        [flag(LIBNDR_FLAG_STR_UTF8|LIBNDR_FLAG_STR_NULLTERM)] string description; */
+/* IDL:        NTTIME time; */
+/* IDL:        uint8 sys_acl_hash[64]; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_security_descriptor_hash_v4_sd_, NDR_POINTER_UNIQUE, "Pointer to Sd (security_descriptor)",hf_xattr_security_descriptor_hash_v4_sd);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor(tvb,offset,pinfo,tree,drep,hf_xattr_security_descriptor_hash_v4_sd,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_hash_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_hash_type, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = xattr_dissect_element_security_descriptor_hash_v4_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_hash, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_description(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_null_term_wstring(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_description , 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_time);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       int i;
+       for (i = 0; i < 64; i++)
+               offset = xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvb, offset, pinfo, tree, drep);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_xattr_security_descriptor_hash_v4_sys_acl_hash, 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_security_descriptor_hash_v4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_security_descriptor_hash_v4);
+       }
+       
+       offset = xattr_dissect_element_security_descriptor_hash_v4_sd(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v4_hash_type(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v4_hash(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v4_description(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v4_time(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_security_descriptor_hash_v4_sys_acl_hash(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: [switch_type(uint16)] union { */
+/* IDL: [case(1)] [unique(1)] [case(1)] security_descriptor *sd; */
+/* IDL: [case(2)] [unique(1)] [case(2)] security_descriptor_hash_v2 *sd_hs2; */
+/* IDL: [case(3)] [unique(1)] [case(3)] security_descriptor_hash_v3 *sd_hs3; */
+/* IDL: [case(4)] [unique(1)] [case(4)] security_descriptor_hash_v4 *sd_hs4; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_NTACL_Info_sd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_NTACL_Info_sd_, NDR_POINTER_UNIQUE, "Pointer to Sd (security_descriptor)",hf_xattr_xattr_NTACL_Info_sd);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_NTACL_Info_sd,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_hs2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_NTACL_Info_sd_hs2_, NDR_POINTER_UNIQUE, "Pointer to Sd Hs2 (security_descriptor_hash_v2)",hf_xattr_xattr_NTACL_Info_sd_hs2);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_hs2_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor_hash_v2(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_NTACL_Info_sd_hs2,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_hs3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_NTACL_Info_sd_hs3_, NDR_POINTER_UNIQUE, "Pointer to Sd Hs3 (security_descriptor_hash_v3)",hf_xattr_xattr_NTACL_Info_sd_hs3);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_hs3_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor_hash_v3(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_NTACL_Info_sd_hs3,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_hs4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, drep, xattr_dissect_element_NTACL_Info_sd_hs4_, NDR_POINTER_UNIQUE, "Pointer to Sd Hs4 (security_descriptor_hash_v4)",hf_xattr_xattr_NTACL_Info_sd_hs4);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_Info_sd_hs4_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_security_descriptor_hash_v4(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_NTACL_Info_sd_hs4,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_NTACL_Info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       int old_offset;
+       guint16 level;
+
+       old_offset = offset;
+       if (parent_tree) {
+               item = proto_tree_add_text(parent_tree, tvb, offset, -1, "xattr_NTACL_Info");
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_NTACL_Info);
+       }
+
+       offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, &level);
+       ALIGN_TO_5_BYTES;
+
+       switch(level) {
+               case 1:
+                       offset = xattr_dissect_element_NTACL_Info_sd(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 2:
+                       offset = xattr_dissect_element_NTACL_Info_sd_hs2(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 3:
+                       offset = xattr_dissect_element_NTACL_Info_sd_hs3(tvb, offset, pinfo, tree, drep);
+               break;
+
+               case 4:
+                       offset = xattr_dissect_element_NTACL_Info_sd_hs4(tvb, offset, pinfo, tree, drep);
+               break;
+       }
+       proto_item_set_len(item, offset-old_offset);
+
+
+       return offset;
+}
+
+/* IDL: struct { */
+/* IDL:        uint16 version; */
+/* IDL:        [switch_is(version)] xattr_NTACL_Info info; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_NTACL_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_NTACL_version, version);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_NTACL_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, g *version)
+{
+       offset = xattr_dissect_NTACL_Info(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_NTACL_info, *version);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_NTACL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       g version;
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_5_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_NTACL);
+       }
+       
+       offset = xattr_dissect_element_NTACL_version(tvb, offset, pinfo, tree, drep, &version);
+
+       offset = xattr_dissect_element_NTACL_info(tvb, offset, pinfo, tree, drep, &version);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_5_BYTES;
+       }
+
+       return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL:        DATA_BLOB acl_as_blob; */
+/* IDL:        uid_t owner; */
+/* IDL:        gid_t group; */
+/* IDL:        uint32 mode; */
+/* IDL: } */
+
+static int
+xattr_dissect_element_sys_acl_hash_wrapper_acl_as_blob(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = dissect_ndr_datablob(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_sys_acl_hash_wrapper_acl_as_blob, 0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_sys_acl_hash_wrapper_owner(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_uid_t(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_sys_acl_hash_wrapper_owner,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_sys_acl_hash_wrapper_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_gid_t(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_sys_acl_hash_wrapper_group,0);
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_sys_acl_hash_wrapper_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_xattr_xattr_sys_acl_hash_wrapper_mode, 0);
+
+       return offset;
+}
+
+int
+xattr_dissect_struct_sys_acl_hash_wrapper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+       proto_item *item = NULL;
+       proto_tree *tree = NULL;
+       dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+       int old_offset;
+
+       ALIGN_TO_8_BYTES;
+
+       old_offset = offset;
+
+       if (parent_tree) {
+               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+               tree = proto_item_add_subtree(item, ett_xattr_xattr_sys_acl_hash_wrapper);
+       }
+       
+       offset = xattr_dissect_element_sys_acl_hash_wrapper_acl_as_blob(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_sys_acl_hash_wrapper_owner(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_sys_acl_hash_wrapper_group(tvb, offset, pinfo, tree, drep);
+
+       offset = xattr_dissect_element_sys_acl_hash_wrapper_mode(tvb, offset, pinfo, tree, drep);
+
+
+       proto_item_set_len(item, offset-old_offset);
+
+
+       if (di->call_data->flags & DCERPC_IS_NDR64) {
+               ALIGN_TO_8_BYTES;
+       }
+
+       return offset;
+}
+
+static int
+xattr_dissect_element_parse_DOSATTRIB_x(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       offset = xattr_dissect_struct_DOSATTRIB(tvb,offset,pinfo,tree,drep,hf_xattr_xattr_parse_DOSATTRIB_x,0);
+
+       return offset;
+}
+
+/* IDL: void xattr_parse_DOSATTRIB( */
+/* IDL: [in] xattr_DOSATTRIB x */
+/* IDL: ); */
+
+static int
+xattr_dissect_parse_DOSATTRIB_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="parse_DOSATTRIB";
+       return offset;
+}
+
+static int
+xattr_dissect_parse_DOSATTRIB_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+       pinfo->dcerpc_procedure_name="parse_DOSATTRIB";
+       offset = xattr_dissect_element_parse_DOSATTRIB_x(tvb, offset, pinfo, tree, drep);
+       offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+       return offset;
+}
+
+
+static dcerpc_sub_dissector xattr_dissectors[] = {
+       { 0, "parse_DOSATTRIB",
+          xattr_dissect_parse_DOSATTRIB_request, xattr_dissect_parse_DOSATTRIB_response},
+       { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_xattr(void)
+{
+       static hf_register_info hf[] = {
+       { &hf_xattr_security_descriptor_hash_v4_sd,
+         { "Sd", "xattr.security_descriptor_hash_v4.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v3_hash,
+         { "Hash", "xattr.security_descriptor_hash_v3.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DOSATTRIB_info,
+         { "Info", "xattr.xattr_DOSATTRIB.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_NTACL_Info_sd,
+         { "Sd", "xattr.xattr_NTACL_Info.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_NTACL_Info_sd_hs3,
+         { "Sd Hs3", "xattr.xattr_NTACL_Info.sd_hs3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_alloc_size,
+         { "Alloc Size", "xattr.xattr_DosInfo2Old.alloc_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_change_time,
+         { "Change Time", "xattr.xattr_DosInfo3.change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo1_create_time,
+         { "Create Time", "xattr.xattr_DosInfo1.create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo1_size,
+         { "Size", "xattr.xattr_DosInfo1.size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_create_time,
+         { "Create Time", "xattr.xattr_DosInfo2Old.create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_ea_size,
+         { "Ea Size", "xattr.xattr_DosInfo2Old.ea_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v4_hash,
+         { "Hash", "xattr.security_descriptor_hash_v4.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_size,
+         { "Size", "xattr.xattr_DosInfo2Old.size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_name,
+         { "Name", "xattr.xattr_DosInfo2Old.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_SIZE,
+         { "Xattr Dosinfo Size", "xattr.xattr_DosInfoValidFlags.XATTR_DOSINFO_SIZE", FT_BOOLEAN, 32, TFS(&xattr_DosInfoValidFlags_XATTR_DOSINFO_SIZE_tfs), ( 0x00000004 ), NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_CREATE_TIME,
+         { "Xattr Dosinfo Create Time", "xattr.xattr_DosInfoValidFlags.XATTR_DOSINFO_CREATE_TIME", FT_BOOLEAN, 32, TFS(&xattr_DosInfoValidFlags_XATTR_DOSINFO_CREATE_TIME_tfs), ( 0x00000010 ), NULL, HFILL }},
+       { &hf_xattr_xattr_sys_acl_hash_wrapper_owner,
+         { "Owner", "xattr.xattr_sys_acl_hash_wrapper.owner", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_create_time,
+         { "Create Time", "xattr.xattr_DosInfo3.create_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosStreams_num_streams,
+         { "Num Streams", "xattr.xattr_DosStreams.num_streams", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosStream_flags,
+         { "Flags", "xattr.xattr_DosStream.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo1_change_time,
+         { "Change Time", "xattr.xattr_DosInfo1.change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosAttrib_info,
+         { "Info", "xattr.xattr_DosAttrib.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoFFFFCompat_attrib,
+         { "Attrib", "xattr.xattr_DosInfoFFFFCompat.attrib", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo_compatinfoFFFF,
+         { "Compatinfoffff", "xattr.xattr_DosInfo.compatinfoFFFF", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosAttrib_version,
+         { "Version", "xattr.xattr_DosAttrib.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosStreams_streams,
+         { "Streams", "xattr.xattr_DosStreams.streams", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_alloc_size,
+         { "Alloc Size", "xattr.xattr_DosInfo3.alloc_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_sys_acl_hash_wrapper_acl_as_blob,
+         { "Acl As Blob", "xattr.xattr_sys_acl_hash_wrapper.acl_as_blob", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosEAs_num_eas,
+         { "Num Eas", "xattr.xattr_DosEAs.num_eas", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v4_sys_acl_hash,
+         { "Sys Acl Hash", "xattr.security_descriptor_hash_v4.sys_acl_hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_opnum,
+         { "Operation", "xattr.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_attrib,
+         { "Attrib", "xattr.xattr_DosInfo2Old.attrib", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo1_alloc_size,
+         { "Alloc Size", "xattr.xattr_DosInfo1.alloc_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_CHANGE_TIME,
+         { "Xattr Dosinfo Change Time", "xattr.xattr_DosInfoValidFlags.XATTR_DOSINFO_CHANGE_TIME", FT_BOOLEAN, 32, TFS(&xattr_DosInfoValidFlags_XATTR_DOSINFO_CHANGE_TIME_tfs), ( 0x00000020 ), NULL, HFILL }},
+       { &hf_xattr_tdb_xattrs_num_eas,
+         { "Num Eas", "xattr.tdb_xattrs.num_eas", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_NTACL_Info_sd_hs2,
+         { "Sd Hs2", "xattr.xattr_NTACL_Info.sd_hs2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo_info1,
+         { "Info1", "xattr.xattr_DosInfo.info1", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_parse_DOSATTRIB_x,
+         { "X", "xattr.xattr_parse_DOSATTRIB.x", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_change_time,
+         { "Change Time", "xattr.xattr_DosInfo2Old.change_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_NTACL_Info_sd_hs4,
+         { "Sd Hs4", "xattr.xattr_NTACL_Info.sd_hs4", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_EA_SIZE,
+         { "Xattr Dosinfo Ea Size", "xattr.xattr_DosInfoValidFlags.XATTR_DOSINFO_EA_SIZE", FT_BOOLEAN, 32, TFS(&xattr_DosInfoValidFlags_XATTR_DOSINFO_EA_SIZE_tfs), ( 0x00000002 ), NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v3_sd,
+         { "Sd", "xattr.security_descriptor_hash_v3.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo1_attrib,
+         { "Attrib", "xattr.xattr_DosInfo1.attrib", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_sys_acl_hash_wrapper_group,
+         { "Group", "xattr.xattr_sys_acl_hash_wrapper.group", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v2_sd,
+         { "Sd", "xattr.security_descriptor_hash_v2.sd", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_EA_value,
+         { "Value", "xattr.xattr_EA.value", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosStream_size,
+         { "Size", "xattr.xattr_DosStream.size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DOSATTRIB_version,
+         { "Version", "xattr.xattr_DOSATTRIB.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v4_time,
+         { "Time", "xattr.security_descriptor_hash_v4.time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_sys_acl_hash_wrapper_mode,
+         { "Mode", "xattr.xattr_sys_acl_hash_wrapper.mode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v4_description,
+         { "Description", "xattr.security_descriptor_hash_v4.description", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_ATTRIB,
+         { "Xattr Dosinfo Attrib", "xattr.xattr_DosInfoValidFlags.XATTR_DOSINFO_ATTRIB", FT_BOOLEAN, 32, TFS(&xattr_DosInfoValidFlags_XATTR_DOSINFO_ATTRIB_tfs), ( 0x00000001 ), NULL, HFILL }},
+       { &hf_xattr_xattr_DosEAs_eas,
+         { "Eas", "xattr.xattr_DosEAs.eas", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v3_hash_type,
+         { "Hash Type", "xattr.security_descriptor_hash_v3.hash_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_attrib,
+         { "Attrib", "xattr.xattr_DosInfo3.attrib", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_valid_flags,
+         { "Valid Flags", "xattr.xattr_DosInfo3.valid_flags", FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo1_ea_size,
+         { "Ea Size", "xattr.xattr_DosInfo1.ea_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo_info3,
+         { "Info3", "xattr.xattr_DosInfo.info3", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v4_hash_type,
+         { "Hash Type", "xattr.security_descriptor_hash_v4.hash_type", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosStream_alloc_size,
+         { "Alloc Size", "xattr.xattr_DosStream.alloc_size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DOSATTRIB_attrib_hex,
+         { "Attrib Hex", "xattr.xattr_DOSATTRIB.attrib_hex", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_EA_name,
+         { "Name", "xattr.xattr_EA.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfoValidFlags_XATTR_DOSINFO_ALLOC_SIZE,
+         { "Xattr Dosinfo Alloc Size", "xattr.xattr_DosInfoValidFlags.XATTR_DOSINFO_ALLOC_SIZE", FT_BOOLEAN, 32, TFS(&xattr_DosInfoValidFlags_XATTR_DOSINFO_ALLOC_SIZE_tfs), ( 0x00000008 ), NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_flags,
+         { "Flags", "xattr.xattr_DosInfo2Old.flags", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo_oldinfo2,
+         { "Oldinfo2", "xattr.xattr_DosInfo.oldinfo2", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosStream_name,
+         { "Name", "xattr.xattr_DosStream.name", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_NTACL_info,
+         { "Info", "xattr.xattr_NTACL.info", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_size,
+         { "Size", "xattr.xattr_DosInfo3.size", FT_UINT64, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_security_descriptor_hash_v2_hash,
+         { "Hash", "xattr.security_descriptor_hash_v2.hash", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_NTACL_version,
+         { "Version", "xattr.xattr_NTACL.version", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo3_ea_size,
+         { "Ea Size", "xattr.xattr_DosInfo3.ea_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_tdb_xattrs_eas,
+         { "Eas", "xattr.tdb_xattrs.eas", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+       { &hf_xattr_xattr_DosInfo2Old_write_time,
+         { "Write Time", "xattr.xattr_DosInfo2Old.write_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, NULL, HFILL }},
+       };
+
+
+       static gint *ett[] = {
+               &ett_dcerpc_xattr,
+               &ett_xattr_xattr_DosInfoFFFFCompat,
+               &ett_xattr_xattr_DosInfo1,
+               &ett_xattr_xattr_DosInfo2Old,
+               &ett_xattr_xattr_DosInfoValidFlags,
+               &ett_xattr_xattr_DosInfo3,
+               &ett_xattr_xattr_DosInfo,
+               &ett_xattr_xattr_DosAttrib,
+               &ett_xattr_xattr_DOSATTRIB,
+               &ett_xattr_xattr_EA,
+               &ett_xattr_xattr_DosEAs,
+               &ett_xattr_tdb_xattrs,
+               &ett_xattr_xattr_DosStream,
+               &ett_xattr_xattr_DosStreams,
+               &ett_xattr_security_descriptor_hash_v2,
+               &ett_xattr_security_descriptor_hash_v3,
+               &ett_xattr_security_descriptor_hash_v4,
+               &ett_xattr_xattr_NTACL_Info,
+               &ett_xattr_xattr_NTACL,
+               &ett_xattr_xattr_sys_acl_hash_wrapper,
+       };
+
+       proto_dcerpc_xattr = proto_register_protocol("NULL", "XATTR", "xattr");
+       proto_register_field_array(proto_dcerpc_xattr, hf, array_length (hf));
+       proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_xattr(void)
+{
+       dcerpc_init_uuid(proto_dcerpc_xattr, ett_dcerpc_xattr,
+               &uuid_dcerpc_xattr, ver_dcerpc_xattr,
+               xattr_dissectors, hf_xattr_opnum);
+}
diff --git a/bin/default/librpc/gen_ndr/packet-dcerpc-xattr.h b/bin/default/librpc/gen_ndr/packet-dcerpc-xattr.h
new file mode 100644 (file)
index 0000000..cec443c
--- /dev/null
@@ -0,0 +1,62 @@
+/* autogenerated by pidl */
+
+/* DO NOT EDIT
+       This filter was automatically generated
+       from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/xattr.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/xattr.cnf.
+       
+       Pidl is a perl based IDL compiler for DCE/RPC idl files.
+       It is maintained by the Samba team, not the Wireshark team.
+       Instructions on how to download and install Pidl can be
+       found at http://wiki.wireshark.org/Pidl
+
+       $Id$
+*/
+
+
+#include "packet-dcerpc-security.h"
+
+#ifndef __PACKET_DCERPC_XATTR_H
+#define __PACKET_DCERPC_XATTR_H
+
+#define XATTR_DOSATTRIB_NAME   ( "user.DosAttrib" )
+
+#define XATTR_DOSATTRIB_ESTIMATED_SIZE ( 64 )
+
+#define XATTR_DOSEAS_NAME      ( "user.DosEAs" )
+
+#define XATTR_DOSSTREAMS_NAME  ( "user.DosStreams" )
+
+#define XATTR_STREAM_FLAG_INTERNAL     ( 0x00000001 )
+
+#define XATTR_DOSSTREAM_PREFIX ( "user.DosStream." )
+
+#define XATTR_MAX_STREAM_SIZE  ( 0x4000 )
+
+#define XATTR_MAX_STREAM_SIZE_TDB      ( 0x100000 )
+
+#define XATTR_NTACL_NAME       ( "security.NTACL" )
+
+#define XATTR_SD_HASH_SIZE     ( 64 )
+
+#define XATTR_SD_HASH_TYPE_NONE        ( 0x0 )
+
+#define XATTR_SD_HASH_TYPE_SHA256      ( 0x1 )
+
+int xattr_dissect_struct_DosInfoFFFFCompat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosInfo1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosInfo2Old(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_bitmap_DosInfoValidFlags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosInfo3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosAttrib(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DOSATTRIB(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_EA(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosEAs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_tdb_xattrs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosStream(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_DosStreams(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_security_descriptor_hash_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_security_descriptor_hash_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_security_descriptor_hash_v4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_NTACL(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+int xattr_dissect_struct_sys_acl_hash_wrapper(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_);
+#endif /* __PACKET_DCERPC_XATTR_H */